Logtalk 2.43.1 released

Announcements of new Logtalk releases and events

Moderator: Paulo Moura

Post Reply
Paulo Moura
Logtalk developer
Posts: 477
Joined: Sat May 05, 2007 8:35 am
Location: Portugal

Logtalk 2.43.1 released

Post by Paulo Moura » Mon Sep 12, 2011 12:01 am


Logtalk 2.43.1 is now available for downloading. This release includes a parser for PDDL 3.0 files contributed by Robert Sasak, improved coinduction support, new compiler flags allowing passing options to the back-end Prolog compiler, improved meta-predicate support, updated examples, minor dynamic binding performance improvements, updated support for several text editors, fixes for all know bugs, and portability updates for ECLiPSe, Lean Prolog, Qu-Prolog, SICStus Prolog, XSB, and YAP.

Upgrading from previous release:

* See the "UPGRADING.txt" file and the detailed release notes below for more details.

Known compatibility issues:

* CxProlog 0.97.5: A bug in the implementation of logic database updates results in a failure in the "multifile" unit tests.
* YAP: Some bugs in multi-threading support prevent some thread examples from running. In addition, a bug in the YAP 6.2.1 Windows version prevents its use with Logtalk.
* Ciao Prolog is not currently supported due to the lack of support for stream aliases.

Detailed release notes:

* Changed the compiler to take into account the uses/2 directive when compiling calls to the database built-in methods. This change extends the semantics of the uses/2 directive and allows easier migration from plain Prolog applications to Logtalk.

* Added experimental support for using a predicate template as argument to the coinductive/1 directive. This template allows the specification of which arguments are meaningful for coinductive success. Based on similar functionality found on on Feliks Kluzniak's DRA meta-interpreter.

* Improved support for debugging coinductive predicates when using the Logtalk built-in debugger.

* Removed coinduction support for CxProlog. The current version of this compiler lacks a soft-cut built-in predicate or control construct, which is now required by the experimental coinduction implementation.

* Lifted a long-standing limitation that prevented the user definition of wrapper predicates for the bagof/3 and setof/3 built-in methods whenever the goal argument may use the ^/2 existential quantifier.

* Added support for the "^" meta-predicate meta-argument mode specifier suggested by Jan Wielemaker and found on SWI-Prolog 5.11.25. This mode specifier is useful when defining wrappers for the bagof/3 and setof/3 built-in methods whenever the goal argument may use the ^/2 existential quantifier.

* Added "prolog_compiler" and "prolog_loader" compiler flags, which allow passing options to the back-end Prolog compiler built-in predicates that compile to disk and load a (compiled) Prolog flag. Updated the ECLiPSe, Qu-Prolog, SICStus Prolog, and XSB config files to take advantage of these new flags. For the other supported back-end Prolog compilers, the default value for both flags is the empty list.

* Corrected a bug when compiling calls to Prolog proprietary built-in meta-predicates where the Logtalk compiler could attempt to process non meta-arguments as goals. This bug only manifested itself with some back-end Prolog compilers such as ECLiPSe.

* Corrected a bug in the processing of conditional compilation directives.

* Corrected a bug that prevented passing alias/3 directives on calls to the create_object/4, create_category/4, and create_protocol/3 built-in predicates.

* Removed from the built-in object "logtalk" the decompile_predicate_head/4 and decompile_predicate_indicator/4 deprecated methods.

* Removed support for the long deprecated Logtalk metapredicate/1 directive.

* Corrected a performance bug when caching calls to category predicates where the cached entries could be more specific than necessary when working with parametric categories.

* Improved caching of "super" calls from within prototypes. Previously, all cached entries would be specialized by the value of "self" in order to properly deal with the special cases where an object both instantiates and specializes other objects.

* Updated the Logtalk compiler to activate any operator declarations found on predicate scope directives during the compilation of the entities that contain the directives.

* Improved the performance of coinductive predicates when using back-end Prolog compilers such as SICStus Prolog that don't provide the soft-cut control construct but provide the soft-cut built-in meta-predicate (if/3).

* Corrected a bug where a spurious report of compilation/loading warnings could be printed when a source file was compiled/loaded with the compiler flag "report" turned off.

* Added a "streamvars" library object, derived from the existing "assignvars" library category, featuring support for adding and retrieving terms (which may be variables) from a "stream" variable.

* Updated the "coinduction" example, taking advantage of the enhanced coinductive/1 directive and broadening the number of individual examples that can be run using SICStus Prolog. Added a model checking example, using coinduction, coroutining, and constraints, contributed by Neda Saeedloei.

* Updated the "metapredicates" example with sample code illustrating how to define wrappers for the bagof/3 and setof/3 built-in methods when the meta-argument may contain existentially qualified variables.

* Updated the "cc" example, correcting predicate definitions for several back-end Prolog compilers and adding some basic unit tests.

* Updated the "encodings" example with limited support for Lean Prolog.

* Added missing entries for the meta_non_terminal/1 directive and for the call//N non-terminal to the "help" example.

* Added a parser for PDDL 3.0 files, contributed by Robert Sasak.

* Added code folding support to the SubEthaEdit text editor. Added code folding support for conditional compilation blocks to the Kate, Vim, and TextMate text editors.

* Updated the integration scripts in order to load the library paths file before loading the Logtalk compiler/runtime. This change aims to simplify loading of library and example files from the settings files. In addition, also look for the Logtalk installation directory in $HOME/share when the LOGTALKHOME environment variable is not defined. Thanks To Vítor Santos Costa for the suggestion.

* Updated the Windows installer in order to support Lean Prolog and detect YAP 64 bits versions.

Happy logtalking,

Paulo Moura
Logtalk developer

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest