Great care is taken to ensure binary compatibility of foreign extensions between different Prolog versions. Only the much less frequently used stream interface has been responsible for binary incompatibilities.
Source code that relies on new
features of the foreign interface can use the macro
to find the version of
SWI-Prolog.h and PL_query()
using the option
PL_QUERY_VERSION to find the version of the attached Prolog
system. Both follow the same numbering schema explained with PL_query().