Logtalk is an object-oriented logic programming language that can use most Prolog implementations as a back-end compiler.
As a multi-paradigm language, Logtalk includes support for both prototypes and classes, protocols, component-based programming through category-based composition, event-driven programming, and multi-threading programming.
Version 2.33.0:
- Applied several optimizations to the Logtalk compiler, mostly related to non-detected deterministic predicates due to calls to dynamic predicates or due to limitations in clause indexing by most Prolog compilers.
- Added support for using Prolog use_module/2 directives in objects and categories. This allows module predicates to be called using implicit qualification, improving readability. The use_module/2 directive supports the declaration of predicate aliases using the notation Original:Alias.
- Added support for meta-calls whose closure arguments are explicitly qualified (using either Object::Closure or Module:Closure).
- Added support for using the ensure_loaded/1 and the set_prolog_flag/2 directives in source files. These directives are both processed when read (thus affecting the compilation of the source code that follows) and copied to the generated intermediate Prolog files.
- Corrected a set of singleton variable related bugs in the Logtalk compiler and runtime. Thanks to Joachim Schimpf and Kish Shen work on the improved singleton variable checking code found on the new ECLiPSe 6.0 compiler.
- Simplified the implementation of the Logtalk built-in debugger. Changed the implementation of the debugger abort command to use the de-facto standard Prolog built-in predicate abort/0. Corrected a bug that prevented the use of the command "ignore" at the redo port.
- Removed the Logtalk dispatcher thread used for dispatching asynchronous multi-threading calls, simplifying the implementation and improving the performance of the asynchronous built-in multi-threading predicates.
- Corrected a bug in the implementation of the threaded_once/1-2 built-in multi-threading predicates (use of detached threads could make the methods fail despite the success of the thread goals).
- Improved performance of multi-threading applications (specially on MacOS X) when using SWI-Prolog as the back-end compiler by making the lookup caches thread local.
- Small performance improvement of the threaded/1 built-in multi-threading predicate.
- Added a multifile/1 directive for the logtalk_library_path/2 predicate.
- Corrected a bug in the verification of portable calls that would fail to flag the soft-cut control construct (_ *-> _; _) found on some Prolog compilers.
- Corrected a bug in the implementation of the built-in database predicates retract/1 and retractall/1 when adding a cache entry for a local dynamic predicate with no scope declaration.
- Corrected a bug in the compilation of source file op/3 directives whose third argument is a list of operator specifiers instead of a single operator specifier.
- Added ECLiPSe 6.0 config files. Modified the POSIX script "eclipselgt" to test for both ECLiPSe 5.10 and 6.0 versions. Added Windows shortcut to start Logtalk with ECLiPSe 6.0.
- Updated the GNU Prolog config file to allow Logtalk to recognize as built-in predicates the finite domain solver built-in predicates.
- Added a new set of examples, "constraints", illustrating how to use the Constraint Domain Solver libraries available with B-Prolog, ECLiPSe, GNU Prolog, SWI-Prolog, and YAP. Thanks to Markus Triska for his help with the YAP and SWI-Prolog CLP(FD) examples.
- Updated the "mtbatch" example to provide multi-threading overhead data for the competitive or-parallelism benchmark.
Mac OS X 10.3.9 or later, compatible Prolog compiler.
|
No similar products suggested yetSuggest something else: |