Version 2.5 is an intermediate release on the path from 2.1 to 3.0.
All changes are to the foreign-language interface, both to user- and
system-predicates implemented in the C-language. The aim is twofold.
First of all to make garbage-collection and stack-expansion
(stack-shifts) possible while foreign code is active without the
C-programmer having to worry about locking and unlocking C-variables
pointing to Prolog terms. The new approach is closely compatible to the
Quintus and SICStus Prolog foreign interface using the +term
argument specification (see their respective manuals). This allows for
writing foreign interfaces that are easily portable over these three
Prolog platforms.
According to the current plan, ISO compliant exception handling and hooks for source-code debugging will be added before the system will be called 3.0.
Apart from various bug fixes listed in the Changelog file, these are the main changes since 2.1.0: