Logtalk 2.42.2 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.42.2 released

Post by Paulo Moura » Tue Jan 25, 2011 12:02 am


Logtalk 2.42.2 is now available for downloading. This release improves the compilation of calls to module predicates; improves checking of meta-arguments in meta-predicate calls; improves support for lambda expressions; includes an optimizing compiler for calls to library meta-predicates; adds new libraries for logging events, working with temporal interval relations, and using integer counters; improves existing examples and libraries; adds support for using the JavaScript-based SyntaxHighlighter package; and features portability updates for GNU Prolog, Qu-Prolog, SICStus Prolog, SWI-Prolog, and XSB.

Upgrading from previous release:

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

Known compatibility issues:

* GNU Prolog: Logtalk requires the latest beta of the 1.4.0 version.
* B-Prolog: A bug in the delete_file/1 built-in predicate on Windows results in spurious messages when compiling and loading source files.
* YAP: Some bugs in multi-threading support prevent some thread examples from running. In addition, a bug in the YAP 6.0.4 Windows version results in syntax errors when loading some library objects.
* XSB: Logtalk requires the current XSB CVS version. In addition, some bugs in multi-threading support may prevent some thread examples from running.
* Ciao Prolog 1.10 is no longer supported (due to the lack of support for stream aliases; the current 1.13 beta version is not supported due to a broken predicate_property/2 implementation).

Detailed release notes:

* Updated the Logtalk compiler in order to allow checking for module predicate properties without requiring importing the predicates into "user" (note, however, that the module must still be loaded prior to the compilation of source files calling the module predicates).

* Updated the Logtalk compiler in order to check compile-time instantiated closure arguments on call/2-N goals for common programming errors.

* Updated the Logtalk compiler in order to generate warnings for lambda expressions with variables that are not declared as either free variables or lambda parameters or with variables that are declared as both free variables and lambda parameters. Thanks to Jan Burse for suggesting these sanity checks.

* Updated the Logtalk runtime in order to support using the <</2 control construct in closure meta-arguments of meta-predicates.

* Added support for compiling Free/Goal lambda expression calls (by automatically generating an auxiliary predicate whenever possible).

* Added a compile_aux_clauses/1 public method, based on a predicate with the same name in SWI-Prolog, to the built-in object "logtalk". This method is usually called from goal_expansion/2 hooks in order to compile auxiliary clauses generated for supporting an expanded goal.

* Added the meta-predicate ignore/1, implemented by some Prolog compilers as a built-in predicate, as a Logtalk built-in method.

* Updated the SWI-Prolog config file in order to prevent the auto-loading of module libraries when querying predicate properties from Logtalk.

* Updated the Qu-Prolog, SICStus Prolog, and XSB config files in order to make available the predicate term_variables/2 as an ISO built-in predicate.

* Updated the Qu-Prolog integration scripts in order to double the heap size value for compiling the Logtalk compiler/runtime, solving a startup crash.

* Restored the MacOS X command-file for GNU Prolog (moved up from the "scripts/macosx/command_files/unsupported" folder).

* Added predicates findall_member/4-5 to the library object "meta" (based on Richard O'Keefe's draft Prolog library proposal). Removed declaration and definition of the predicates callable/1 and ignore/1 from the library entities "metap" and "meta" (callable/1 is a built-in predicate in all supported Prolog compilers; ignore/1 is now a Logtalk built-in method).

* Added a library object, "meta_compiler", that can be used as an hook object to expand calls to the meta-predicates defined in the library object "meta" in order to avoid the meta-call overheads. On those cases where the meta-predicate call cannot be optimized, the default definition on the "meta" object is used. Using control constructs as meta-arguments is not (yet) supported. Work in progress.

* Added a protocol, "loggingp", and category and object implementations, "logging" and "logger", declaring and defining basic functionality for logging events to files to the library.

* Added a protocol, "intervalp", and an object, "interval", declaring and defining basic temporal interval relations to the library (based on the James F. Allen Interval Algebra work).

* Added a category implementing named integer counters, "counters", to the library.

* Added predicates proper_prefix/2 and proper_suffix/2 to the library entities "listp", "list", and "difflist".

* Added predicate transpose/2 to the library object "pairs".

* Added two pseudo-examples for testing purposes, "lambdas_compiled" and "metapredicates_compiled", that make use of the new library object "meta_compiler".

* Updated the "expansion" example in order to illustrate how to define and combine hook objects.

* Added support for using the SyntaxHighlighter package (version 3.0.83 or later) by Alex Gorbatchev with Logtalk source code.

* Added missing syntax coloring of the else/0 conditional compilation directive to the GNU Source-highlight highlighter support.

* Added a note on the Logtalk text editing support available on the free MacOS X Kod text editor.

* Added syntax coloring support for the new ignore/1 built-in method to all supported text editors and syntax highlighters.

Happt logtalking,

Paulo Moura
Logtalk developer

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest