Hi!
Logtalk 2.32.0 is now available for downloading. This release updates multi-threading features and examples, improves support for compiling and loading source files with a large number of entities, updates support for Yap and Quintus Prolog, and includes updated support for the Vim text editor.
Follows the detailed release notes:
* Updated the Logtalk compiler and runtime to use multifile predicates for the runtime tables of loaded entities and entities relations. This is necessary to generate sensible intermediate Prolog code for large files with tens of thousands of objects. The workaround of using the directive initialization/1 is still available (for now) for Prolog compilers that fail to support the thirteen years old ISO Prolog standard.
* Updated the Logtalk runtime error handler to test for non-instantiated exception terms. Thanks to Joerg Schuster for the bug report.
* Corrected two bugs in the implementation of the built-in meta-predicate threaded/1 when canceling individual threads. The first bug resulted from out-of-order thread status messages. The second bug resulted from a leak of thread results between calls to the threaded/1 predicate. Changed the thread cancellation process to not automatically releasing any locks, leaving that task to a catcher associated to the thread goal.
* Added a new default compiler option, multifile_directive, to all config files. Possible values are "supported" and "unsupported".
* Added instructions on how to patch the Logtalk compiler in order to use Quintus Prolog as the back-end compiler.
* Removed from the YAP POSIX integration script the command-line options setting the initial stack, heap, and tail data area sizes. These setting are no longer necessary for recent YAP versions.
* Updated the Windows installer script to search the registry for the location of the YAP installation (for YAP 5.1.3 or later versions).
* Added missing implementation of the predicate as_dictionary/2 to the "bintree" library object. Thanks to Victor Noel for the bug report.
* Updated all the search methods in the "searching" example to delegate checking for cycles to the state space being searched (thus allowing state descriptions to carry additional information that should not be taken into account when comparing states). Updated the "salt" example to support heuristics.
* Updated the "mtbatch" example to include a benchmark test for competitive or-parallelism applied to state-space search (using the resources from the "searching" example). Improved the example documentation.
* Added a filetype plugin for the Vim text editor. Updated the installation instructions. Updated the syntax coloring support to properly highlight quoted atoms and strings in the opening directive of parametric objects. Fixed an auto-indentation bug when opening and closing a conditional block in a single line in the last goal a predicate clause body. Thanks to Victor Noel for the bug report.
* Corrected missing installation of the "VERSION.txt" file when building Linux RPMs.
Happy logtalking!
Paulo
