Logtalk

Sponsored Links:
Software Screenshot:
Logtalk
Software Details:
Version: 3.11.1 updated
Upload Date: 24 Aug 17
Developer: Logtalk
Distribution Type: Freeware
Downloads: 6
Size: 4064 Kb

Rating: 4.0/5 (Total Votes: 4)

Sponsored Links:

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 (interfaces), component-based programming through category-based composition, event-driven programming, and high-level multi-threading programming.

What is new in this release:

* IMPROVED: Compiler warning and error messages to make them more uniform to facilitate parsing by editors and IDEs and to avoid printing potentially large terms.
* IMPROVED: The compiler no longer requires calls to the database and reflection predicates where the first argument is a module-qualified term to be wrapped using the `{}/1` compiler bypass control construct.
* IMPROVED: Compiler error-checking for database and reflection predicate calls where the first argument is a module-qualified term.
* IMPROVED: Minimize the number of file reloads triggered by calls to the `logtalk_make/0-1` predicates.
* FIXED: Case where the `logtalk_make/0-1` predicates would fail to reload a file whose compilation generated a compiler error.

What is new in version 3.11:

* CHANGED: The built-in predicate `current_event/5` to always instantiate the first argument when called with it unbound.
* ADDED: Support for overriding the default scratch directory by defining the library alias `scratch_directory` in a backend Prolog initialization file (assumed to be loaded prior to Logtalk loading). After a discussion with Douglas R. Miles on supporting installing Logtalk in a read-only directory and running multiple Logtalk instances concurrently without conflict.
* ADDED: A `context/1` built-in context execution method to provide access to a predicate call execution context. Mainly used for providing a default error context when type-checking predicate arguments.
* ADDED: Support for printing messages of kind `debug` and `debug(_)`. These messages are only printed, by default, when the `debug` flag is turned on.
* ADDED: Property `includes(File)` to the `logtalk::loaded_file_property/2` predicate to allow enumerating, by backtracking, all files included by a loaded file (using `include/1` directives).

What is new in version 3.10.7:

* RENAMED: The `logtalk_make/1` target `missing` to `check`.
* ADDED: Support for extending `logtalk_make/1` targets with user defined actions using the new multifile predicate `logtalk_make_target_action/1`.
* ADDED: Compiler lint checks for tautology and falsehood entity goals. Currently checked are calls to Prolog unification, comparison, and type testing built-in predicates. Suggested by Barry Evans.

What is new in version 3.10.5:

* FIXED: Regression introduced in release 3.10.2 when meta-calling execution context built-in methods.
* FIXED: Compiler failure resulting from applying portability checks to calls to Prolog built-in predicates and functions found in auxiliary clauses (usually generated by the term-expanding mechanism).

What is new in version 3.10.3:

* IMPROVED: Simplified code generated for multifile predicates.
* FIXED: Regression in previous release in the compilation of multifile predicate clauses that make calls to the `::/1-2` control constructs.

What is new in version 3.09.1:

* ADDED: Support for `number_of_rules/1` and `number_of_user_rules/1` object and category properties.
* ADDED: Support for `number_of_rules/1` predicate property.
* ADDED: Detection of `meta_predicate/1` directives that wrongly specify a goal meta-argument that is actually a closure passed to `call/2-N` meta-predicate calls. Thanks to Arun Majumdar for the report.
* ADDED: Detection of missing predicate scope directives in the presence of `mode/2` directives.

What is new in version 3.09.0:

* CHANGED: Settings files are now also looked up in the user home directory when not found in the startup directory or in the Logtalk user directory. Setting the `settings_file` flag to `restrict` now restricts searching for a settings file to the Logtalk user directory and the user home directory. This changes are useful when a team shares a Logtalk installation with both the `LOGTALKHOME` and `LOGTALKUSER` environment variables pointing to the same directory. Thanks to Barry Evans for the suggestion.

What is new in version 3.08.0:

* CHANGED: Ensure that in compiler error and warning messages the file and line information is always the last line for the reported issue.

What is new in version 3.07.0:

* ADDED: A `unicode` read-only flag to describe the backend Prolog compiler support for the Unicode standard.
* ADDED: Support for `++` (ground) and `--` (unbound) argument instantiation modes (declared as prefix operators) for use with the `mode/2` predicate directive.
* ADDED: Support for `one_or_error` determinism specification in `mode/2` predicate directives. Useful for documenting type-checking predicates.
* IMPROVED: Detect attempts to call existentially quantified goals outside the scope of `bagof/3` and `setof/3` calls.
* FIXED: When compiling `uses/2` directives, don't create a linking clause for runtime use for built-in predicates in `user` when no alias is being defined.
* FIXED: When propagating a compilation failure for a file to its parent files, ensure that the file ancestors will be reloaded starting with the top ancestor by the make mechanism.
* FIXED: Avoid redundant file reloads when calling `logtalk_make/0` or `logtalk_make/1` with the target `all`.
* FIXED: Detection of missing predicates in `^^/1` calls when calling `logtalk_make/1` with the target `missing`.
* FIXED: Bug in the reflection API where some predicate cross-referencing information were not recorded. Thanks to Edward Schwartz for the bug report.

What is new in version 3.06.2:

This release continues the work on improving the developer tools under the sponsorship of Kyndi, Inc. It includes a new version of the wrapper tool for porting plain Prolog applications and improvements and fixes for the lgtunit and diagrams tools. It also includes new unit tests, compiler and documentation fixes, and a compatibility update for Lean Prolog.

What is new in version 3.04.1:

* FIXED: Compiler bug where a predicate that is term-expanded by calling the `compile_aux_clauses/1` method could be misreported as discontiguous.
* FIXED: Calls to the `threaded_notify/1` built-in predicate from within the `user` pseudo-object must not require a bound argument as per documentation.
* FIXED: Calls to the `object_property/2` and category_property/2` built-in predicates with `number_of_clauses/1` or `number_of_user_clauses/1` property arguments to be deterministic.

What is new in version 3.03.0:

* ADDED: Support for a new `logtalk_make/1` target, `missing`, to list missing entities and predicates. Also available using the `{?}` shortcut.
* ADDED: Support for a new `logtalk_make/1` target, `circular`, to list circular references (considering message sending goals) between pairs and trios of objects. Also available using the `{@}` shortcut.
* IMPROVED: Append a directory hash to the intermediate Prolog file names to help avoiding file name collisions when collecting all the intermediate files in the same directory for embedding. Currently requires ECLiPSe, GNU Prolog, JIProlog, Quintus Prolog, SICStus Prolog, SWI-Prolog, XSB, or YAP as the backend compiler.
* FIXED: Meta-predicate call optimization bug when a meta-argument is either a pre-compiled closure or a closure for a goal called in the context of the `user` pseudo-object. Also apply more strict error checking to closure meta-arguments.
* FIXED: Pretty-printing of parametric object and parametric category identifiers in error and warning messages.

What is new in version 3.02.2:

* FIXED: Error checking bug in lambda expressions using `true/0` as the lambda goal. Thanks to Boris Vassilev for the bug report.
* FIXED: The `logtalk_make/1` predicate would succeed (after printing a warning message) when called with a non-instantiated or an invalid argument instead of failing. to the generated intermediate Prolog files using a multifile predicate for a better embedding experience. Notably, it makes it easier to do incremental embedding.
* IMPROVED: The make predicates now also reload the parent files of files with compilation or loading errors. This ensures that, when a faulty file aborts the compilation of all files in a loader file, the files listed after the faulty file will be compiled when the faulty file is fixed and the make predicates are called.

What is new in version 3.02.1:

* IMPROVED: The runtime table entries for loaded files are now added to the generated intermediate Prolog files using a multifile predicate for a better embedding experience. Notably, it makes it easier to do incremental embedding.
* IMPROVED: The make predicates now also reload the parent files of files with compilation or loading errors. This ensures that, when a faulty file aborts the compilation of all files in a loader file, the files listed after the faulty file will be compiled when the faulty file is fixed and the make predicates are called.

What is new in version 3.01.2:

This release completes the static binding implementation; adds support for using file names as-is with the compiling and loading predicates; fixes compiler bugs; features documentation updates; improves the debugging, testing, and documenting tools; adds a new set of unit tests for checking Prolog conformance with official and de facto standards; updates syntax coloring for all supported text editors and syntax highlighters; and includes compatibility updates for ECLiPSe, JIProlog, and YAP.

Requirements:

Compatible Prolog compiler.

Similar Software

PortTerm
PortTerm

3 Jan 15

Fix Up 4D
Fix Up 4D

4 Jan 15

GestLab Database
GestLab Database

3 Jan 15

Other Software of Developer Logtalk

Logtalk
Logtalk

3 May 15

Comments to Logtalk

Comments not found
Add Comment
Turn on images!