SWI-Prolog first of all attempts to maintain source code compatibility between versions. Data and programs can often be represented in binary form. This touches a number of interfaces with varying degrees of compatibility. The relevant version numbers and signatures are made available by PL_version_info(), the --abi-version and the Prolog flag abi_version.
libswipl
.
A compatible API allows distribution of foreign extensions in binary form, notably for platforms on which compilation is complicated (e.g., Windows). This compatibility is therefore high on the priority list, but must infrequently be compromised.
PL_version_info(): PL_VERSION_FLI
, abi_version
key:
foreign_interface
PL_version_info(): PL_VERSION_REC
, abi_version
key:
record
PL_version_info(): PL_VERSION_QLF
, PL_VERSION_QLF_LOAD
and
PL_VERSION_VM
, abi_version
key: qlf
,
qlf_min_load
, vmi
The relevant ABI version keys are the same as for QLF files with one
addition: PL_version_info(): PL_VERSION_BUILT_IN
, abi_version
key: built_in