Logtalk

Software Screenshot:
Logtalk
Software Details:
Version: 3.38 updated
Upload Date: 4 May 20
Developer: Logtalk
Distribution Type: Freeware
Downloads: 25
Size: 20008 Kb

Rating: 4.0/5 (Total Votes: 4)

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:

  • ADDED: Compiler lint check for non-tail recursive predicate definitions.
  • ADDED: New compiler flag, tail_recursive, with possible values warning and silent (the default value).

What is new in version 3.21:

CHANGED: Allow a complementing category to add a predicate scope directive but no predicate definition allowing any definitions in complemented objects (compiled with the complements flag set to allow) to be found and used.

What is new in version 3.20:

* IMPROVED: Avoid spurious missing `meta_predicate/1` directive warnings when the actual meta-call don't share variables with the clause head.
* IMPROVED: Allow using lambda expressions in grammar rules without requiring a `call//1` wrapper.
* FIXED: Optimization bug in the compilation of a closure meta-argument when the resulting goal is a call to a Prolog built-in predicate due to inlining of a user predicate definition.
* FIXED: Optimization bug in the compilation of a closure meta-argument when the resulting goal is a call to a Prolog `:/2` control construct.

What is new in version 3.19:

* ADDED: Support for defining additional Prolog built-in predicates for lint checks of goals that are always true or false to the adapter files using the hook predicate `'$lgt_candidate_tautology_or_falsehood_goal_hook'/1`.
* ADDED: Object property `module` for objects that result from the compilation of Prolog modules.
* ADDED: Convenience error throwing built-in methods `syntax_error/1` and `system_error/0`. These methods throw standard `error/2` exception terms and are equivalent to a sequence of `context/1` and `throw/1` method calls.
* REMOVED: Support for deprecated Logtalk 2.x `calls/1`, `uses/1`, and `alias/3` directives.
* REMOVED: Support for deprecated Logtalk 2.x `:/1` control construct.
* REMOVED: Support for deprecated Logtalk 2.x `unknown`, `singletons`, `tmpdir`, and `version` compiler flags.

What is new in version 3.14:

NEW: Support for _parameter variables_ providing an alternative to the `parameter/2` and `this/1` built-in methods to access entity parameters. Parameter variables are variables used in the parametric entity identifier that start and end with an underscore (`_VariableName_`). Any occurrence of a parameter variable in an entity clause is implicitly unified with the entity parameter. This allows entity parameters to be added, rearranged, or removed without requiring any changes to the clauses that refer to them. Parameter variables are only supported for parametric entities defined in source files.

What is new in version 3.13:

NEW: Compiler support for detecting calls to local static predicates with no matching clauses (aka trivial fails).

What is new in version 3.11.1:

* 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

BBClick
BBClick

3 Jan 15

Syncro SVN Client
Syncro SVN Client

11 Dec 14

FDD Tools
FDD Tools

3 Jan 15

Other Software of Developer Logtalk

Logtalk
Logtalk

3 May 15

Comments to Logtalk

Comments not found
Add Comment
Turn on images!