---+ Upgrading applications from 5.6.64 to 5.8.0 Most of it should be pretty compatible. The main differences that are likely to affect people moving from 5.6.64 are: * 5.8.0 properly implements :- meta_predicate/1. Code relying on the old incomplete emulation must be updated. Code using :- module_transparent/1 still works, but both for better compatibility with the rest of the Prolog world and for better support from the environment, it is adviced to update code. * The initialization/1 directive is now ISO compliant, which means it is executed *after* loading the file in which it appears. This may cause problems with code doing == :- initalization(load_foreign_library(mylib)). == Such code should use == :- use_foreign_library(mylib). == * System libraries libraries no longer (auto-) import from 'user', but from `system'. * Operators follow the auto-import module relations, which means that system libraries only depend on operators declared by themselves or in the module `system'. * Preparing for 5.9.x, many foreign functions that used to be `void' now return an int (TRUE/FALSE). 5.8.x does nothing with this (they return TRUE or longjmp if an error happens). In 5.9.x they will return FALSE if an error happens.