Hi!
Logtalk 2.31.5 is now available for downloading. This release improves support for multi-threading programming, adds support for checking arithmetic expressions for calls to non-portable functions when using the portability compiler flag, updates several Prolog config files, includes new examples, and adds support for generating plain text files from XML documenting files. Other changes include bug fixes and improvements to library objects and text editing support.
Follows the detailed release notes:
* Added support for checking arithmetic expressions for calls to non-portable functions when using the "portability" compiler flag.
* Updated the implementation of the threaded/1 built-in predicate to ensure that thread creation errors (usually, virtual memory address space exhaustion) result in the corresponding exception rather than in a non-terminating call. Improved cancellation of all individual threads when one of them terminates with an exception or a failure.
* Simplified the terms used to post individual results from threaded/1 calls to the queue associated to the call.
*Corrected a bug in the built-in predicate threaded/1 when its argument is a conjunction (disjunction) of conjunctions (disjunctions).
* Added a workaround for a mutex creation error when reloading a source file with entities defining synchronized predicates.
* Updated the Logtalk runtime to unlock all mutexes hold by a thread when upon thread cancellation.
* Corrected a Logtalk compiler bug that allowed a predicate to be declared both dynamic and synchronized. Thanks to Paul Crocker for the bug report.
* Corrected a Logtalk compiler bug where local definition clauses for dynamic predicates are being generated for categories. Thanks to Victor Noel for the bug report.
* Updated the YAP and SWI-Prolog config files to set the default value of the "tmpdir" flag depending on the host operating-system. Added missing declaration for the multi-threading predicate thread_initialization/1.
* Added missing declarations for some proprietary built-in meta-predicates to the B-Prolog config file.
* Corrected a bug in the SWI-Prolog config file in the declaration of the proprietary built-in meta-predicate "soft cut". Thanks to Victor Noel for the bug report.
* Updated the XSB config file to use the new optimized call/N predicates found on the current XSB CVS version.
* Added an integration script, "xsbmt64lgt", for using Logtalk with the multi-threaded, 64 bits version of XSB.
* Simplified building of MacOS X Installer packages. Updated the Windows installation script to use the "C:\lgtsvn" as base. Simplified manual installation instructions.
* Updated the definitions of the predicate valid/1 for the library objects "list", "list(Type)", "numberlist", "set", "set(Type)", "varlist" to fail for lists with unbound tails after discussion with Jan Wielemaker and Ulrich Neumerkel.
* Corrected a bug in the library object "lgtunit" when running "throws" tests (make sure the generated exception is subsumed by the expected exception). Added a "lgtunit_loader" loader utility file for loading the Logtalk unit test library.
* Added a simple example, "debug_hooks", of using compilation hooks and term expansion for conditional compilation of debug statements.
* Updated the "primes" multi-threading example to allow any number of threads to be used in the computation of primes numbers.
* Added a new multi-threading example, "integration", implementing Recursive Gaussian Quadrature Methods for Numerical Integration for functions of a single variable, contributed by Paul Crocker.
* Added a new multi-threading example, "mtbatch", for benchmarking multi-threading performance.
* Added a new example, "ack", implementing the Ackermann function (general recursive function).
* Added support for using the Highlight package (version 2.6.9 or later) by Andre Simon with Logtalk source files.
* Updated the TextMate Logtalk bundle and its configuration instructions to make the "Compile" and "Generate ..." commands more general, making it compatible with most Prolog compilers. Added syntax coloring for standard arithmetic functions. Added a command for generating plain text files from XML documenting files.
* Corrected a syntax coloring bug with character codes using the 0'Char notation in the SubEthaEdit 2.x and Vim text editors and in the source-highlight package.
* Removed some redundant regular expressions from the jEdit text editor syntax coloring support files.
* Corrected syntax coloring bugs with variables starting with underscores (including anonymous variables) and with atoms containing an underscore in the Emacs text editor. Thanks to Joerg Schuster for the bug report.
* Updated the Logtalk grammar documentation to reflect the changes to category relations introduced in version 2.31.0.
* Added a "lgttxt.xsl" XSLT style-sheet and two shell scripts, "lgt2txt.sh" and "lgt2txt.js", for converting XML documenting files into text files. Updated the "lgt2*.sh" shell scripts for POSIX compliance, removing dependencies on bash shell features.
* Updated the "lgtxml.xsl" XSLT style-sheet to ensure that the generated HTML files are fully compliant with the HTML 4.01 standard.
* Updated the Debian installer package shell scripts for POSIX compliance, removing dependencies on bash shell features.
All the best,
Paulo
