SWI-Prolog 和 32 位机器
如今的大多数平台原生就是 64 位,并且更推荐使用 64 位应用。当前版本的 SWI-Prolog 主要面向 64 位平台。32 位平台仍受支持,因为它们仍用于嵌入式设备,并且 WASM(Web Assembly,见 WASM 版本相关章节)对 64 位的支持仍然较弱。
虽然当前稳定的 9.2 系列仍有真正的 32 位版本,其中 Prolog 数据结构基于 32 位字(word)单元;但 9.3 开发系列会把所有 Prolog 数据都表示为 64 位单元,而不管硬件指针大小如何。这提供了更好的统一性,并避免了 32 位 9.2 系列的 128Mb 栈限制。
数据表示中的一些选择,例如标签(tag)位的位置和数量,仍然基于 32 位单元。预计这会在适当时候改变,从而简化代码并提升性能。