swi-prolog ABI -------------- There are five virtual packages which reflect different ABI version of swi-prolog: - swi-prolog-abi-${swi-prolog:ABI}, - swi-prolog-abi-foreign-${swi-prolog:FABI}, - swi-prolog-abi-binary-${swi-prolog:BABI}, - swi-prolog-abi-qlf-${swi-prolog:QLF}, - swi-prolog-abi-states-${swi-prolog:SSTATES} These packages are Provided by swi-prolog-core. Each of these packages contains a more or less volatile part, represented by environment variables. These variables are set (via swipl --abi_version) after the build and before finalize packaging, so swi-prolog-core binary package Provides these virtual packages with some values substituted in place of the variables. In case your package depends on some particular ABI or on some particular ABI component, you may set your package dependency on the corresponding swi-prolog-abi virtual package. The swi-prolog-abi-${swi-prolog:ABI} contains the full ABI version which includes all the components. The swi-prolog-abi-foreign-${swi-prolog:FABI} contains foreign extensions ABI version. A compatible API allows distribution of foreign extensions in binary form. The swi-prolog-abi-binary-${swi-prolog:BABI} contains binary term ABI version. Terms may be represented in binary format, these formats are used for storing binary terms in databases or communicate terms between Prolog processes in binary form. The swi-prolog-abi-qlf-${swi-prolog:QLF} contains QLF files ABI version. These are binary representation of Prolog file or module. They represent clauses as sequences of virtual machine (VM) instructions. Their compatibility relies on the QLF file format and the ABI of the VM. The swi-prolog-abi-states-${swi-prolog:SSTATES} contains saved states ABI version. Saved state is a zip file that contains the entire Prolog database using the same representation as QLF files. A saved state may contain additional resources, such as foreign extensions, data files, etc. In addition to the dependency concerns of QLF files, built-in and core library predicates may call internal foreign predicates. The interface between the public built-ins and internal foreign predicates changes frequently. For additional information, see section "Binary compatibility" in the upstream documentation at https://www.swi-prolog.org/pldoc/man?section=abi-versions and Debian bug report #958419. swi-prolog source in Debian --------------------------- Directory bench/ is deleted from the source code since it contains several non-free files, and other files are under ambiguous or not-known licenses. Originally this directory contains benchmarks, which can be used with gcc profile based optimizations. These benchmarks were not used in producing binaries for Debian. Moreover these benchmarks are quite old, not using modern libraries, avoiding GC. Upstream authors plan to supply new and better benchmarks in the future. Also sourceless minified copy of jquery was deleted from the source. Debian's copy of jquery used to provide needed functionality (via depending on libjs-jquery and symlinking to jquery.min.js). -- Lev Lamberov , Tue, 9 Jun 2020 09:58:42 +0500