Back

Logtalk.org
Patches for Logtalk
Windows
25 patches available
Logtalk is an object-oriented logic programming language that extends and leverages the Prolog language with a feature set suitable for programming in the large. It provides support for encapsulation and data hiding, separation of concerns and enhanced code reuse.
Logtalk Version 3.92.0
Release Date
5/28/2025
Bug Fix?
Yes
Minor Release?
No
Patch Notes

3.92.0 - May 28; 2025$$$Logtalk compiler and runtime$$$FIXED: The compilation of rules listed in the last argument of the create_object/4 built-in predicate so that the clause/2 built-in method correctly returns the original rule body instead of its compiled version.$$$$$$FIXED: The exception terms used for object existence errors thrown by the asserta/1-2 built-in methods.$$$$$$FIXED: Typo in the documentation of the forwarding protocol forward/1 predicate.$$$$$$Prolog adapter and integration files$$$UPDATED: Trealla Prolog adapter file for the deprecation of the consult/1 built-in predicate in version 2.68.11.$$$$$$UPDATED: The XVM adapter file for the renaming in version 11.x of the unify_applies_occurs_check flag to enable_occurs_check.$$$$$$Documentation$$$CHANGED: Moved APIs documentation to the docs/apis directory. Moved the man pages to docs/man. Moved the Handbook to docs/handbook. Fixed the documentation and installation scripts for the new locations.$$$$$$CHANGED: Moved the update_html_docs.* and update_svg_diagrams.* scripts from the scripts directory to the docs/apis/sources directory. Renamed the update_html_docs.* scripts to build.*. Renamed the build_manuals.* scripts to build.*.$$$$$$CHANGED: Moved the sample files to a samples directory.$$$$$$ADDED: Glossary entries for flaky test; test dialect; test outcome; mocking; term-expansion; and goal-expansion.$$$$$$IMPROVED: Documentation on writing multi-threading applications that call built-in predicates and built-in methods with side-effects.$$$$$$IMPROVED: Documentation on the CPU and wall time accuracy in the lgtunit tool and the os library.$$$$$$UPDATED: The Handbook section on performance.$$$$$$FIXED: Typo in the sample code for user-defined test dialects in the lgtunit tool documentation. Thanks to Paul Brown for the bug report.$$$$$$Library$$$ADDED: New json_lines library implementing the JSON Lines format proposal (available at https://jsonlines.org).$$$$$$ADDED: Library predicate integer::power_sequence/4.$$$$$$FIXED: Workaround spurious choice-point in the avltree::delete/4 library predicate when using the SWI-Prolog backend on Windows.$$$$$$Tools$$$CHANGED: The packs tool to never install or update to a pack version with a experimental or deprecated status unless the version is explicitly specified using the install/3-4 or update/2-3 predicates.$$$$$$ADDED: Support for an experimental status to pack definitions.$$$$$$ADDED: A status/1 option to the packs tool update/2-3 predicates to allow restricting the required status for pack updates.$$$$$$ADDED: New predicates outdated/5 and outdated/2 to the packs tool.$$$$$$IMPROVED: The packs tool predicates restore/1-2 error messages.$$$$$$UPDATED: The help tool for the new location of the Handbook.
Logtalk Version 3.91.1
Release Date
4/15/2025
Bug Fix?
Yes
Minor Release?
No
Patch Notes

3.91.1 - April 15; 2025$$$Tools$$$FIXED: Internal predicate call bug in the lgtunit tool xunit_output object.$$$Examples$$$FIXED: Only run the apache_poi example tests when the required JAR files are available.$$$Installers and installation scripts$$$UPDATED: The build_release.sh script to accept options to customize the git clone URL and for selectively turn off the building of each archive and installer.$$$FIXED: Workaround intermittent portable Docker image build failures when installing tzdata.
Logtalk Version 3.91.0
Release Date
4/8/2025
Bug Fix?
Yes
Minor Release?
No
Patch Notes

3.91.0 - April 8; 2025$$$Logtalk compiler and runtime$$$FIXED: The documentation of the logtalk::expand_library_path/2 predicate to clarify that only expands library aliases (atoms) or compound terms in library notation.$$$Library$$$FIXED: Avoid a non-tail recursive predicate linter warning when loading the random library with the tail_recursive set to warning.$$$Tools$$$CHANGED: The lgtunit tool messages for passed and skipped tests to also include the flaky flag.$$$ADDED: Flaky test property/note support to the lgtunit tool TAP and xUnit output formats.$$$IMPROVED: The lgtdoc tool no longer replaces the ASCII comma with the Unicode fullwidth comma when generating reStructuredText index entries for entity names.$$$UPDATED: Developer tools requirements for Ubuntu to avoid requiring the full Texlive installation.$$$FIXED: The lgtdoc tool to ignore the home and startup library names when looking for the name of the library when processing directory files.$$$FIXED: Renamed the lgtdoc tool Sphinx configuration template file to conf.py.jinja as the still documented conf.py_t name is no longer recognized by recent Sphinx versions.$$$FIXED: Bug in the lgtunit tool where the quick_check/3 test dialect would throw an error when using the pc/1 option.$$$FIXED: Bug in the lgtunit tool where broken QuickCheck tests would be reported as backend bugs.$$$FIXED: Regression in the lgtunit tool TAP and xUnit output formats where failed tests would not be reported.$$$FIXED: Missing handling of broken QuickCheck tests in the lgtunit tool TAP and xUnit output formats.$$$IDEs; text editors; and syntax highlighters support$$$UPDATED: VSCode support for the changes to the lgtunit tool messages.$$$Installers and installation scripts$$$UPDATED: The Windows installation script to also detect the new SICStus Prolog 4.10.x versions.$$$UPDATED: The portable Docker image documentation on how to browse Allure reports from the host.$$$UPDATED: The portable Docker image to also include the issue_creator tool dependencies gh and glab.$$$FIXED: The portable Docker image Texlive requirements.$$$FIXED: The portable Docker image Allure installation.
Logtalk Version 3.90.1
Release Date
3/27/2025
Bug Fix?
Yes
Minor Release?
No
Patch Notes

3.90.1 - March 27; 2025$$$Tools$$$FIXED: PowerShell script coding patterns that could trigger false positives when using some vendors security scanning tools.
Logtalk Version 3.89.1
Release Date
2/18/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.89.1 - February 18; 2025$$$Installers and installation scripts$$$ADDED: The README.md file for the portable Docker image to the image (available as ~/README.md).$$$$$$UPDATED: The portable Docker image README.md file with VSCode and VSCodium usage instructions.$$$$$$UPDATED: The portable Docker image to provide a SSH server (not running by default).$$$$$$UPDATED: The portable Docker image to include Tau Prolog 0.3.4.$$$$$$UPDATED: The publishing scripts for the Docker images to also push the README.md files.
Logtalk Version 3.88.0
Release Date
1/8/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.88.0 - January 29; 2025$$$Documentation$$$IMPROVED: Handbook documentation of the mode/2 predicate directive.$$$$$$IMPROVED: Handbook glossary definition of prototype.$$$$$$IMPROVED: Documentation of the packs tool.$$$$$$UPDATED: Notes on the developer tools third-party dependency requirements.$$$$$$UPDATED: The lgtunit tool documentation on generating Allure reports.$$$$$$FIXED: The manual install instructions missing a PATH setting for the packs tool lgtenv.sh script.$$$$$$FIXED: Handbook PDF version missing the sections on ports and contributions.$$$$$$Library$$$FIXED: The types library natural::check/1 object predicate to throw error/2 exceptions.$$$Tools$$$UPDATED: The lgtunit to use only two decimal places when printing code coverage stats.$$$$$$FIXED: The packs tool to use the gsha256sum command when available instead of the sha256sum command on POSIX systems. This is required to workaround Apple adding the incompatible BSD version of the sha256sum command on macOS 15.
Logtalk Version 3.87.0
Release Date
1/8/2025
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.87.0 - January 8; 2025$$$Logtalk compiler and runtime$$$ADDED: New includes/2; object/3; protocol/3; and category/3 properties to the logtalk::loaded_file_property/2 predicate.$$$Documentation$$$UPDATED: Notes on the developer tools third-party dependency requirements.$$$$$$UPDATED: Notes on the Prolog integration scripts.$$$$$$FIXED: Grammar and spelling typos in scripts and tests documentation.$$$$$$Tools$$$REMOVED: Deprecated lgtdoc tool .js scripts and ie50.xsl file.$$$$$$IMPROVED: Computation of the Halstead complexity metrics by considering recursive predicate calls.$$$$$$FIXED: The packs tool lgtenv.ps1 script when using the -p option.$$$$$$Installers and installation scripts$$$UPDATED: Synced the MacPorts portfile with the version used upstream.$$$Tests$$$ADDED: Additional tests for the bagof/3; setof/3; and findall/3-4 Prolog standard and de facto standard predicates.$$$IDEs; text editors; and syntax highlighters support$$$ADDED: VSCode support for finding dynamic predicate references in clauses that assert or retract clauses for them.$$$$$$ADDED: VSCode support for re-running a single test using CodeLens.$$$$$$FIXED: VSCode support for finding predicate implementations when the definition is found in an included file.$$$$$$FIXED: VSCode support for finding predicate references when the call is found in an included file.$$$$$$FIXED: VSCode support for finding predicate declarations when the reference is found in an included file.$$$$$$FIXED: VSCode support for navigating call hierarchies where an exception would be thrown in some cases.$$$$$$Installers and installation scripts$$$REMOVED: Deprecated logtalk_user_setup.js script.$$$$$$FIXED: False left-recursion warning when compiling a grammar rule for a multifile non-terminal that calls a local non-terminal with the same indicator.$$$$$$Prolog adapter and integration files$$$UPDATED: Ciao Prolog adapter file to pretend that modules are supported to allow loading libraries and examples that require file use_module/1 directives.$$$Documentation$$$ADDED: Notes on encrypting applications using XVM.$$$$$$FIXED: Multiple Handbook grammar and spelling typos.$$$$$$FIXED: Multiple man pages grammar and spelling typos.$$$$$$Library$$$FIXED: The os::sleep/1 predicate for XSB to also accept floats.$$$Tools$$$CHANGED: The lgtunit tool test compilation warning and error messages to include the file context for better integration with other developer tools.$$$$$$CHANGED: The diagrams tool now uses a Unicode glyph for the magnifying lens instead of a PNG image.$$$$$$CHANGED: The diagrams tool now uses a Graphviz box shape for Prolog modules instead of a tab; which is now only used for directories and libraries.$$$$$$REMOVED: Deprecated lgt2svg.js script from the diagrams tool.$$$$$$ADDED: Experimental diagrams tool support for the d2 graph language.$$$$$$UPDATED: The diagrams tool to support graph languages such as d2 where the node identifiers are not global.$$$$$$UPDATED: The diagrams tool to also support the PearAI; Windsurf; PyCharm; and IDEA text editors when generating diagrams with local file links.$$$$$$UPDATED: The tutor tool to also explain duplicated predicate/non-terminal reference linter warnings.$$$$$$UPDATED: The tutor tool to call the new logtalk::message_prefix_file/6 hook predicate to support VSCode displaying warnings and errors augmented with explanations.$$$$$$UPDATED: The help tool for the new logtalk::message_prefix_file/6 hook predicate.$$$$$$FIXED: The diagrams tool to also generate an instance/class caption for metaclasses.$$$$$$FIXED: Bug in the diagrams tool where repeated nodes could be created for external entities.$$$$$$FIXED: Bug in the diagrams tool where file loading diagrams would miss includes edges.$$$$$$FIXED: Bug in the diagrams tool where file loading diagrams would show duplicated includes edges.$$$$$$FIXED: The diagrams tool support for the graph languages to quote atoms in predicate labels and predicate node contents when required.$$$$$$FIXED: The diagrams tool exclude options to allow generating external node
Logtalk Version 3.86.0
Release Date
12/18/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.86.0 - December 18; 2024$$$Logtalk compiler and runtime$$$ADDED: Experimental logtalk::message_prefix_file/6 hook predicate to the message printing mechanism.$$$$$$FIXED: False left-recursion warning when compiling a grammar rule for a multifile non-terminal that calls a local non-terminal with the same indicator.$$$$$$Prolog adapter and integration files$$$UPDATED: Ciao Prolog adapter file to pretend that modules are supported to allow loading libraries and examples that require file use_module/1 directives.$$$Documentation$$$ADDED: Notes on encrypting applications using XVM.$$$$$$FIXED: Multiple Handbook grammar and spelling typos.$$$$$$FIXED: Multiple man pages grammar and spelling typos.$$$$$$Library$$$FIXED: The os::sleep/1 predicate for XSB to also accept floats.$$$Tools$$$CHANGED: The lgtunit tool test compilation warning and error messages to include the file context for better integration with other developer tools.$$$$$$CHANGED: The diagrams tool now uses a Unicode glyph for the magnifying lens instead of a PNG image.$$$$$$CHANGED: The diagrams tool now uses a Graphviz box shape for Prolog modules instead of a tab; which is now only used for directories and libraries.$$$$$$REMOVED: Deprecated lgt2svg.js script from the diagrams tool.$$$$$$ADDED: Experimental diagrams tool support for the d2 graph language.$$$$$$UPDATED: The diagrams tool to support graph languages such as d2 where the node identifiers are not global.$$$$$$UPDATED: The diagrams tool to also support the PearAI; Windsurf; PyCharm; and IDEA text editors when generating diagrams with local file links.$$$$$$UPDATED: The tutor tool to also explain duplicated predicate/non-terminal reference linter warnings.$$$$$$UPDATED: The tutor tool to call the new logtalk::message_prefix_file/6 hook predicate to support VSCode displaying warnings and errors augmented with explanations.$$$$$$UPDATED: The help tool for the new logtalk::message_prefix_file/6 hook predicate.$$$$$$FIXED: The diagrams tool to also generate an instance/class caption for metaclasses.$$$$$$FIXED: Bug in the diagrams tool where repeated nodes could be created for external entities.$$$$$$FIXED: Bug in the diagrams tool where file loading diagrams would miss includes edges.$$$$$$FIXED: Bug in the diagrams tool where file loading diagrams would show duplicated includes edges.$$$$$$FIXED: The diagrams tool support for the graph languages to quote atoms in predicate labels and predicate node contents when required.$$$$$$FIXED: The diagrams tool exclude options to allow generating external nodes for the excluded directories; files; libraries; and entities.$$$$$$FIXED: Bug in the lgtdoc tool when printing a warning on missing entity directive info/1 key.$$$$$$Examples$$$ADDED: New permutations example providing benchmarks based on list permutations. Adapted from Prolog code written and contributed by Paul Tarau.$$$$$$UPDATED: The assumptions example with another individual example.$$$$$$Installers and installation scripts$$$Tests$$$ADDED: Additional tests for the left-recursion linter warning.$$$$$$ADDED: Additional tests for the Prolog standard round/1 evaluable.$$$$$$IMPROVED: The manual installation script and MacPorts Portfile instructions for defining the LOGTALKHOME and LOGTALKUSER environment variables.$$$$$$IDEs; text editors; and syntax highlighters support$$$UPDATED: VSCode support to use the new logtalk::message_prefix_file/6 hook predicate to support displaying warnings and errors augmented with the tutor tool explanations.$$$$$$UPDATED: VSCode support to also list the lgtunit tool warning and error messages in the PROBLEMS pane.$$$$$$FIXED: Compilation errors when loading the VSCode support file using the XSB backend.
Logtalk Version 3.85.0
Release Date
11/12/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.85.0 - November 12; 2024$$$Logtalk compiler and runtime$$$CHANGED: The logtalk_load_context/2 built-in predicate to type-check the key argument.$$$$$$CHANGED: Attempting to define an entity/predicate alias equal to the original entity/predicate is now a compilation error instead of simply a warning.$$$$$$CHANGED: Reclassified the underscore_variables flag as a backend flag instead of a linter flag.$$$$$$ADDED: New meta-flag; linter; to manage the values of all the linter flags as a group.$$$$$$ADDED: New linter flag; encodings; to control source file text encoding warnings.$$$$$$ADDED: New linter flag; general; for warnings that are not controlled by a specific flag.$$$$$$IMPROVED: Print a linter warning on redundant entity qualification in predicate directives.$$$$$$IMPROVED: Detect and report as compilation errors use_module/1-2 and uses/1-2 directives when compiling a protocol.$$$$$$IMPROVED: Report as compilation errors instead of compilation warnings use_module/1-2 directives when not compiling a module as an object while using a backend that doesnt support modules.$$$$$$IMPROVED: Report as compilation errors export/1 and reexport/2 directives when not compiling a module as an object.$$$$$$FIXED: The compiler to prevent trying to compile a Prolog use_module/1 directive as a Logtalk directive when compiling a module as an object.$$$$$$FIXED: Detection of a file trying to recursively load itself to not throw a permission error when reloading a file that previously failed to load.$$$$$$FIXED: Misleading error when compiling dynamic/1; discontiguous/1; and multifile/1 directives with arguments with redundant entity qualification.$$$$$$Prolog adapter and integration files$$$UPDATED: Trealla Prolog adapter file to require version 2.59.21 or later.$$$Documentation$$$IMPROVED: Documentation of the issue_creator tool.$$$$$$IMPROVED: The Handbook documentation on performance; adding a section on circular references.$$$$$$IMPROVED: The Handbook documentation on the logtalk_make/0-1 built-in predicates.$$$$$$UPDATED: The Handbook documentation on the underscore_variables flag.$$$$$$Library$$$ADDED: Additional test for the java library checking setting an array element to the empty list atom.$$$$$$UPDATED: The meta_compiler library to support optimization of meta-calls with closure meta-arguments that are messages to parametric objects.$$$$$$Tools$$$ADDED: Support to the diagrams tool for VSCode; VSCodium; Cursor; Zed; BBEdit; MacVim; and TextMate local file links.$$$$$$UPDATED: Rewrite error and warning messages from the packs tool so that they can be explained by the tutor tool.$$$$$$UPDATED: The tutor tool to explain the new redundant entity qualifier linter warning.$$$$$$FIXED: Case where the packs tool would print repeated Pack dependency not available error messages when trying to install or update a pack with alternative dependencies where none is available.$$$$$$FIXED: The debugger tool description of the p (print) port command.$$$$$$FIXED: Typos in the mode/2 directives for the debuggerp protocol logging/3 and nolog/3 public predicates.$$$$$$FIXED: Typo in the info/2 directive for the tutor object explain//1 public non-terminal.$$$$$$FIXED: Harmless linter warning when loading the debugger tool with some backends.$$$$$$Examples$$$IMPROVED: The searching example representation of some of the problems.$$$$$$UPDATED: The errors example for the new redundant entity qualifier linter warning.$$$$$$FIXED: Portability issue in the errors example tests.$$$$$$FIXED: Cannot run the module_aliases example with XSB and Tau Prolog.$$$$$$FIXED: The symbiosis example for Trealla Prolog removing its apply module.$$$$$$Tests$$$CHANGED: Tests for the Prolog standard initialization/1 directive to not depend on support for the ensure_loaded/1 directive.$$$$$$ADDED: Additional tests for the user built-in entity.$$$$$$ADDED: Tests for the Logtalk consistency_error/3 built-in method.$$$$$$ADDED: Additional tests for the Prolog standard bagof/3 and setof/3 built-in predicates.$$$$$$ADDED: Tests for the Prolog standard wri
Logtalk Version 3.84.0
Release Date
10/22/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

RELEASE NOTES$$$3.84.0 - October 22; 2024$$$Logtalk compiler and runtime$$$ADDED: New fails_if key to the info/2 predicate directive for documenting predicate fail conditions. Adopted from ECLiPSe similar fail_if key.$$$$$$IMPROVED: Detect and report when a uses/2 directive references the object that contains it.$$$$$$IMPROVED: Detect and report when a use_module/2 directive references the module (being compiled as an object) that contains it.$$$$$$IMPROVED: Detect and report when an alias/2 directive references the entity that contains it.$$$$$$IMPROVED: Detect and report when a source file attempts to load itself.$$$$$$IMPROVED: Error reporting when a source file attempts to include itself.$$$$$$FIXED: Prevent using grammar rules to try to redefine the (;)/2; (->)/2; and (*->)/2 control constructs.$$$$$$Documentation$$$IMPROVED: Handbook glossary entries for predicate; method; sender; and this.$$$$$$IMPROVED: Handbook section on running parallel Logtalk processes.$$$$$$IMPROVED: Documentation of the packs tool on working with packs using git archive URLs; signing packs; and encrypting packs.$$$$$$Library$$$CHANGED: The library object hook_pipeline/1 to not use default expansions and pass as-is any terms and goals not expanded by a hook object to the next hook object. This library object now calls the expanding protocol predicates directly instead of using the expand_term/2 and expand_goal/2 built-in methods.$$$$$$CHANGED: The library object hook_set/1 to call the expanding protocol predicates directly instead of using the expand_term/2 and expand_goal/2 built-in methods.$$$$$$ADDED: Predicates delete_directory_and_contents/1 and delete_directory_contents/1 to the os library.$$$$$$ADDED: Additional tests for the dictionaries library.$$$$$$IMPROVED: Documentation of the dictionaries library predicates.$$$$$$FIXED: The library object type to properly load the SWI-Prolog unicode module library when running with this backend. Thanks to Alex Kouznetsov for the bug report.$$$$$$FIXED: The definition of the os::delete_file/1 library predicate for YAP.$$$$$$FIXED: Bug in the meta_compiler library when attempting to compile a closure for a (::)/2 (or (:)/2) goal when the object (or module) argument is not bound at compile time. Thanks to Alex Kouznetsov for the bug report.$$$$$$FIXED: The meta_compiler library to not try to expand goals in clauses containing parameter variables. Thanks to Alex Kouznetsov for the bug report.$$$$$$Tools$$$ADDED: Support for running just a selection of tests to the lgtunit tool. Thanks to Michael McNally for the suggestion.$$$$$$ADDED: Support to the lgtunit tool for test/2-3 test dialects as facts.$$$$$$ADDED: Requirements section to the documentation of the help and lgtdoc tools.$$$$$$ADDED: Support to the packs tool for installing and updating packs from local archives.$$$$$$ADDED: Support to the packs tool for gpg encrypted pack and registry archives.$$$$$$ADDED: Support to the packs tool to use wget in alternative to curl.$$$$$$ADDED: Support to the packs tool to use .sig signature files in alternative to .asc signature files.$$$$$$ADDED: Support to the tutor tool to explain selected lgtunit; make; and packs tool error messages.$$$$$$ADDED: Additional tests for the dead_code_scanner tool.$$$$$$IMPROVED: Tests code coverage for the packs tool.$$$$$$IMPROVED: Man page of the logtalk_tester.sh script.$$$$$$UPDATED: The lgtdoc tool to process the new fails_if key of the info/2 predicate directive.$$$$$$FIXED: The dead_code_scanner tool to avoid false positives when checking predicate aliases declared in uses/2 or use_module/2 directives.$$$$$$FIXED: The dead_code_scanner tool to not report the user-defined coinductive_success_hook/1-2 hook predicates.$$$$$$FIXED: The lgtdoc tool to recognize consistency errors as standard exceptions.$$$$$$FIXED: Missing space between the tar command and non-empty extra tar options in the packs tool.$$$$$$FIXED: The logtalk_tester.sh script to follow symbolic links when looking for test driver files. Thanks to Lindsey Spratt for
Logtalk Version 3.83.0
Release Date
9/24/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

RELEASE NOTES$$$3.83.0 - September 24; 2024$$$Logtalk compiler and runtime$$$CHANGED: The representation error argument when calling context/1 built-in method would create a cyclic term from cyclic_term to acyclic_term.$$$$$$CHANGED: The exception term when trying to define a predicate inside a protocol to use a permission type of predicate instead of clause.$$$$$$CHANGED: All compiler domain errors for consistency errors to use the new consistency_error/3 built-in method.$$$$$$ADDED: New consistency_error/3 built-in method.$$$$$$IMPROVED: Linter warnings for trivial fails to distinguish between predicate and non-terminal goals.$$$$$$IMPROVED: Compiler warnings on missing scope directives for non-terminals.$$$$$$IMPROVED: Internal documentation of the compiler and runtime.$$$$$$FIXED: When calling threaded engines built-in predicates using a backend that doesnt support engines; throw a resource_error(engines) instead of a resource_error(threads) error.$$$$$$FIXED: Compiler redundant check if a recursive call to a meta-predicate complies with the expected number of additional arguments for closures.$$$$$$FIXED: Compiler bug when using a uses/2 directive to change the order of the arguments of a predicate and using the predicate alias as a closure.$$$$$$FIXED: Disjunction optimization bug when the left-side is a variable and the disjunction is an argument of the call/1 control construct.$$$$$$FIXED: Case where the compiler would report the wrong error when a source file defined category declares a predicate or a non-terminal dynamic textually after its definition.$$$$$$FIXED: Protect the linter check for goals that are always true or false from unexpected exceptions and report them instead of aborting compilation with an error.$$$$$$Prolog adapter and integration files$$$UPDATED: The XVM adapter file with additional candidate built-in predicates for checking tautology and falsehood goals.$$$Documentation$$$ADDED: Handbook section with guidelines for describing predicates in info/2 directives.$$$$$$IMPROVED: Handbook documentation of the representation_error/1; resource_error/1; existence_error/2; and permission_error/3 built-in methods.$$$$$$IMPROVED: Handbook section on the mode/2 predicate directive.$$$$$$IMPROVED: Handbook section on lambda expressions.$$$$$$Tools$$$CHANGED: The lgtunit tool run_test_sets/1 predicate to also accept a list with a single test set or an empty list as argument.$$$$$$UPDATED: The help tool to be aware of the new consistency_error/3 built-in method.$$$$$$UPDATED: The tutor tool to explain consistency errors.$$$$$$Examples$$$UPDATED: The errors example to illustrate consistency errors.$$$Tests$$$ADDED: Additional test for the Prolog standard logical update semantics.$$$$$$ADDED: Additional tests for the Prolog standard arg/3; atom_chars/2; atom_codes/2; number_chars/2; number_codes/2; current_predicate/1; clause/2; nl/0-1; op/3; retractall/1; and term_variables/2 built-in predicates.$$$$$$IMPROVED: Tests for the (=..)/2; abolish/1; and functor/3 Prolog standard predicates.$$$$$$IMPROVED: Tests for the Prolog call/1 control construct to delay expected errors to runtime.$$$$$$UPDATED: Tests for the missing_directives and trivial_goal_fails linter flags.$$$$$$UPDATED: The tests for the Prolog standard op/3 for Trealla Prolog which now allows defining an atom as both an infix and a postfix operator.$$$$$$Installers and installation scripts$$$FIXED: The Docker file for building the SWI-Prolog based image to properly define the INFOPATH and MANPATH environment variables.
Logtalk Version 3.82.0
Release Date
8/20/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.82.0 - August 20; 2024$$$Logtalk compiler and runtime$$$CHANGED: Linter warnings on suspicious cuts in disjunctions are now controlled by the disjunctions flag.$$$$$$CHANGED: Linter warnings on calling Logtalk/Prolog top-level shortcuts or Logtalk built-in predicates as directives are now controlled by the portability flag.$$$$$$CHANGED: The deprecated assert/1 predicate is no longer declared as a built-in method.$$$$$$ADDED: Support for runtime constructed messages for the built-in methods. Thanks to Alex Kouznetsov for the bug report.$$$$$$FIXED: The handling of include/1 directives by the create_protocol/3; create_object/4; and create_category/4 built-in predicates to throw an error instead of failing when the included file is not valid. Thanks to Alex Kouznetsov for the bug report.$$$$$$FIXED: The message term of the linter warning for a missing predicate scope directive when an info/2 or mode/2 directive exists would misreport the existing directive.$$$$$$FIXED: Duplicated linter warnings when checking if (\=)/2 goals are always true or false.$$$$$$Prolog adapter and integration files$$$CHANGED: The default value of the underscore_variables linter flag to dont_care for all supported backends.$$$Documentation$$$IMPROVED: Handbook documentation of the underscore_variables linter flag.$$$$$$IMPROVED: Handbook documentation of the logtalk::message_prefix_stream/4 predicate.$$$$$$FIXED: Handbook documentation of the logtalk::ask_question/5 predicate. Thanks to Paul Brown for the bug report.$$$$$$Library$$$CHANGED: The arbitrary library check if null is a valid character for the current backend to not rely on exceptions but instead use the backend identifier.$$$Tools$$$ADDED: Tests for the linter tool.$$$$$$IMPROVED: The packs tool handling of alternative pack dependencies.$$$$$$IMPROVED: Man page of the packs tool lgtenv script.$$$$$$UPDATED: The lgtenv scripts to support specifying the name of the packs sub-directory.$$$$$$FIXED: The logtalk_allure_report scripts when using both the single page and title options. Allure 2.26.0 or a later version is now required.$$$$$$Tests$$$ADDED: Additional tests for the include/1 directive.$$$$$$ADDED: Additional tests for the built-in database and reflection methods.$$$$$$ADDED: Additional test for the Prolog standard unify_with_occurs_check/2 built-in predicate.$$$$$$Installers and installation scripts$$$ADDED: Portable Docker image support for displaying man pages.$$$$$$ADDED: Portable Docker image support for displaying the Handbook and the APIs Texinfo files using the help tool.$$$$$$FIXED: The Docker file for building the portable image to properly define the INFOPATH and MANPATH environment variables.$$$$$$FIXED: The macOS portfile for the changes in the MacPorts 2.10 version.
Logtalk Version 3.80.0
Release Date
6/4/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

Logtalk compiler and runtime$$$CHANGED: Also print a silent compiling_file/2 message when processing include/1 directives that can be intercepted by tools.$$$$$$CHANGED: Renamed the logtalk object debug_handler_provider/1 predicate to debug_handler/1 and the debug_handler/2 predicate to debug_handler/3.$$$$$$ADDED: New activate_debug_handler/1; deactivate_debug_handler/0; and active_debug_handler/1 predicates to the logtalk object supporting the activation and deactivation of debug handler providers.$$$$$$ADDED: New entity property; directive/2; providing the entity opening directive start and end lines when defined in a source file.$$$$$$ADDED: Compiler support for using backend proprietary directives in calls to the create_object/4 and create_category/4 built-in predicates.$$$$$$IMPROVED: Allow multiple debug handler providers to be loaded simultaneously (with the restriction that only one of them can be active at any given time).$$$$$$FIXED: Regression preventing linter warnings for duplicated clauses and grammar rules.$$$$$$FIXED: Reporting of the number of compilation warnings will fail to count some of the warnings.$$$$$$FIXED: The phrase/2-3 built-in methods to properly handle a runtime bound first argument when called from a meta-predicate. Thanks to Alex Kouznetsov for the bug report.
Logtalk Version 3.79.0
Release Date
5/15/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.79.0 - May 15; 2024$$$Logtalk compiler and runtime$$$FIXED: Regression in the logtalk_make/1 predicate check target where the file location for a missing predicate reference would not be reported correctly.$$$$$$FIXED: Don’t print left-recursion linter warnings for coinductive predicates.$$$$$$FIXED: Allow term-expansion to generate multiple entity definitions. Thanks to Alex Kouznetsov for the bug report.$$$$$$Documentation$$$IMPROVED: Handbook documentation of the term-expansion mechanism.$$$Library$$$FIXED: Silence harmless left-recursion linter warning in the timeout library tests.$$$Tools$$$CHANGED: The dead_code_scanner and lgtdoc tools to print warnings using the same format used by the compiler.$$$$$$FIXED: The code_metrics tool computation of entity cyclomatic complexity to also consider multifile predicate definitions contributed by the entity to other entities when computing graph connected components.$$$$$$FIXED: The code_metrics tool computation of entity Unique Predicate Nodes (UPN) to also count multifile predicate definitions contributed by the entity to other entities.$$$$$$FIXED: Code coverage for tests of the Halstead complexity metric.$$$$$$FIXED: Deleted dead code in the code_metrics and lgtdoc tools.$$$$$$FIXED: The wrapper reporting of missing meta_predicate/1 directives. Thanks to Alex Kouznetsov for the bug report.$$$$$$Examples$$$FIXED: Silence harmless left-recursion linter warning in the tbbt example.$$$$$$FIXED: Missing predicates in the relations example.$$$$$$IDEs; text editors; and syntax highlighters support$$$ADDED: VSCode support predicates for using the dead_code_scanner; make; and code_metrics tools and for recursively generating documentation and diagrams.$$$$$$UPDATED: VSCode support predicates for running tests and doclets to add compiler warnings and errors to the “Problems” pane.$$$$$$UPDATED: VSCode support predicates for running tests the VSCode to make the tests results available for code lens.$$$$$$UPDATED: VSCode support predicate that finds the parent file of a loaded file to also work for included files.$$$$$$FIXED: Avoid missing entity warnings when loading the VSCode support.
Logtalk Version 3.78.0
Release Date
5/6/2024
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.78.0 - May 6; 2024$$$Logtalk compiler and runtime$$$ADDED: Linter warning for left-recursion in clauses and grammar rules. Controlled by the new left_recursion flag with default value warning.$$$$$$ADDED: Object and category alias/2 property for object and module aliases declared using the uses/1 and use_module/1 directives. Also added the alias properties object; module; and predicate.$$$$$$ADDED: Object and category declares/2; defines/2; alias/2;; calls/2; updates/2; includes/3; and provides/3 properties now include an entity and predicate lines/2 property.$$$$$$FIXED: Bug where the entity properties includes/3 and provides/3 could be missing after reloading modified source files containing predicate multifile directives.
Logtalk Version 3.73.0
Release Date
12/12/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

Release Notes$$$3.73.0 - December 12; 2023$$$Logtalk compiler and runtime$$$ADDED: Linter warnings for deprecated arithmetic functions.$$$$$$ADDED: Linter warning for comparing numbers using unification.$$$$$$ADDED: Linter warnings for Quintus Prolog predicate versions of arithmetic functions.$$$$$$ADDED: Additional legacy built-in predicates for linter deprecated warnings.$$$$$$ADDED: Support for using backend-declared deprecated built-in predicates in linter warnings.$$$$$$IMPROVED: When checking the availability of predicates in user for uses/2 and use_module/2 directives; also check for an imported_from/1 predicate property.$$$$$$IMPROVED: Avoid false positive linter warnings about non-terminals called as predicates when the caller is a phrase-like predicate declared in the backend adapter file. Thanks to Yurii Rashkovskii for the use-case report.$$$$$$IMPROVED: Compiler reporting of term-expansion errors to write the source term.$$$$$$FIXED: Unknown and undefined predicate call warnings when the calls occur in an included file to report the actual location instead of the main file.$$$$$$FIXED: Only print linter warnings related to grammar rules when the flag grammar_rules is set to warning.$$$$$$Prolog adapter and integration files$$$CHANGED: B-Prolog support status to “experimental”. Bugs and limitations on atom representation result in silent failures when loading libraries and tools.$$$$$$ADDED: Support for declaring phrase-like predicates that call non-terminals. This helps preventing false positive linter warnings of non-terminals called as predicates.$$$$$$ADDED: Support for declaring deprecated built-in predicates (with or without advised alternatives) in the adapter files.$$$$$$IMPROVED: ECLiPSe definition of the $lgt_current_module_predicate/2 internal predicate.$$$$$$UPDATED: The CxProlog adapter file to require version 0.98.2 or later.$$$$$$UPDATED: The LVM adapter file to prevent a clash with the term_hash/4 built-in predicate introduced in an upcoming version.$$$$$$UPDATED: The SWI-Prolog adapter file to load the prolog_evaluable library when available (provides the evaluable_property/2 predicate used by the linter).$$$$$$Documentation$$$IMPROVED: Handbook grammar section now uses W3C-style EBNF syntax compatible with the Railroad Diagram Generator. Several typos and omissions are also fixed. Thanks to Domingo Alvarez Duarte for his contribution and bug report.$$$$$$IMPROVED: Handbook section on parametric objects.$$$$$$IMPROVED: Documentation of the wrapper tool.$$$$$$UPDATED: The manual installation instructions on generating documentation human-readable formats.$$$$$$UPDATED: The man page for the lgt2pdf shell script.$$$$$$Library$$$REMOVED: The tsv object from the csv library.$$$$$$ADDED: Experimental mutations library for generating random mutations of terms of selected types. Intended for eventual fuzz testing support.$$$$$$ADDED: New tsv library for reading and writing TSV files.$$$$$$ADDED: Library predicates list::occurrences/2-3 to count the number of occurrences of list elements.$$$$$$ADDED: Library predicate numberlist::least_common_multiple/2.$$$$$$ADDED: Predicates select/4; swap/2; and swap_consecutive/2 to the random library for returning a random member of a list; replacing it by a new element and returning the resulting list; and for swapping two randomly chosen elements of a list.$$$$$$ADDED: Non-terminals zero_or_more//2; one_or_more//2; and without//2 to the sequence_grammars library object.$$$$$$IMPROVED: Performance of the reader library predicates that read a file or a stream to a list of chars; codes; or bytes.$$$$$$IMPROVED: Performance of the term_io library predicates.$$$$$$UPDATED: The csv library to also recognize .tab file extension for TSV files.$$$$$$FIXED: The documentation of the pairs::keys_values/3 library predicate.$$$$$$FIXED: The os library tests calls to the shell/1 predicate from auxiliary predicates.$$$$$$FIXED: The listing library category implementation of the listing/1 predicate.$$$$$$FIXED: The sequence_grammars library object definit
Logtalk Version 3.72.0
Release Date
11/9/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.72.0 - November 9; 2023$$$Logtalk compiler and runtime$$$ADDED: Linter warnings for use of unsound calls in grammar rules (when the argument of a (\+)/1 call or the condition in (->)/2 or (*->)/2 calls is not {}/1).$$$$$$ADDED: Linter warning for calls to the deprecated predicates not/1 and fail_if/1.$$$$$$IMPROVED: Simplified handling of plain Prolog terms when compiling source files.$$$$$$IMPROVED: Avoid computing directory hash twice when compiling a source file.$$$$$$IMPROVED: Performance when compiling object and category facts.$$$$$$IMPROVED: Performance when compiling entity ground terms.$$$$$$IMPROVED: Performance when compiling entity terms that are not expanded.$$$$$$FIXED: Catch any errors during the compilation of the begin_of_file virtual term.$$$$$$FIXED: Minor performance bug when compiling clauses for multifile predicates of parametric entities.$$$$$$FIXED: Reporting of compiler instantiation errors in clause and grammar rule heads where a $VAR/1 or $VAR//1 term would be displayed.$$$$$$Prolog adapter and integration files$$$UPDATED: Notes on the LVM adapter file for enabling coinduction support.$$$Documentation$$$ADDED: Documentation to the lgtunit tool on mocking solutions.$$$$$$ADDED: Documentation to the lgtunit tool on test execution times and memory usage.$$$$$$ADDED: Documentation to the lgtunit tool on testing or suppressing expected output written to user_error and other streams.$$$$$$IMPROVED: Handbook section on performance.$$$$$$IMPROVED: Handbook documentation of the (\+)/1 and forall/2 built-in methods.$$$$$$FIXED: Allow Handbook and APIs documentation search support to work offline.$$$$$$Tools$$$ADDED: Predicate help::man/1 for inline browsing of man files.$$$$$$UPDATED: The tutor tool for the new linter warnings on unsound calls in grammar rules.$$$$$$FIXED: Typo in the packs tool error message when uncompressing a pack archive fails.$$$$$$Examples$$$UPDATED: The documentation of the metainterpreters example.$$$Installers and installation scripts$$$UPDATED: The macOS installer to also add the Logtalk default paths to the PATH; MANPATH; and INFOPATH environment variables.$$$$$$UPDATED: The Windows installation script to also detect upcoming SICStus Prolog 4.9.x versions.
Logtalk Version 3.65.0
Release Date
4/27/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.65.0 - April 27; 2023$$$Logtalk compiler and runtime$$$CHANGED: Calls to unknown dynamic predicates in this from a category to throw an existence error instead of failing.$$$$$$ADDED: Support to the (@)/1 control construct for calling a predicate in this from any category and from objects.$$$$$$ADDED: Support for mode/2 directive zero_or_more_or_error and one_or_more_or_error number of proofs.$$$$$$ADDED: Support for a info/2 directive since key to document the version that added a predicate.$$$$$$Prolog adapter and integration files$$$ADDED: LVM adapter file support for the new add_csv/3 built-in predicate introduced in version 6.0.0.$$$$$$FIXED: The Scryer Prolog adapter file internal predicate for retrieving environment variable values. Thanks to Joe Taber for the bug report.$$$$$$Documentation$$$ADDED: Documentation for the (@)/1 control construct; which allows calling predicates in this from within categories.$$$$$$IMPROVED: Handbook documentation on documenting predicates using the mode/2 directive.$$$$$$Library$$$IMPROVED: Reduced the number of atoms created when calling the atom::replace_sub_atom/4 library predicate.$$$$$$FIXED: The git library when working with paths containing spaces.$$$$$$FIXED: The os::date_time/7 library predicate for Scryer Prolog when the double_quotes flag is set to atom.$$$$$$Tools$$$CHANGED: The debugger tool notrace/0 predicate to only turn off tracing; thus allowing the debugger to continue to stop at defined spy points.$$$$$$CHANGED: The lgtunit tool input/output testing predicates to always interpret relative paths as relative to the tests object path and to always open temporary files in the same directory as the tests object. This simplifies usage and improves reliability by not depending on the current working directory.$$$$$$CHANGED: The lgtunit tool file_path/2 to also accept absolute file paths (further expanding them to resolve any remaining relative file path parts).$$$$$$CHANGED: The lgtunit tool support for generating Allure reports now requires version 2.21.0 or later.$$$$$$CHANGED: The lgtunit tool xunit_output and xunit_report formats to include as test case properties the test file; test lines; test URL; and test note (if any).$$$$$$CHANGED: The lgtunit tool xunit_net_v2_output and xunit_net_v2_report formats now include the test note (if any) as a test trait for all outcomes.$$$$$$CHANGED: The lgtunit tool run/1 predicate to also save and restore the current output stream and working directory when running tests. Moreover; the predicate now only fails when given a partial list of tests or when one of the test identifiers is not valid.$$$$$$ADDED: New debugger tool port command N to turn off tracing.$$$$$$ADDED: Support to the lgtdoc tool to output info/2 directive since keys.$$$$$$ADDED: New lgtunit tool clean_directory/1 protected predicate to delete an empty directory if it exists.$$$$$$IMPROVED: Reduced the number of atoms created when using the diagrams; lgtdoc; and lgtunit tools.$$$$$$IMPROVED: The lgtunit tool now saves and restores the current working directory when running tests.$$$$$$IMPROVED: The lgtunit tool file_path/2 and clean_file/1 utility predicates to expand the constructed absolute file path to resolve any remaining relative file path parts.$$$$$$IMPROVED: The lgtunit tool documentation of the input/output testing predicates.$$$$$$IMPROVED: The logtalk_allure_report scripts to check if Allure is installed and the required minimal version.$$$$$$IMPROVED: The debugger tool debugging/0 predicate now also prints the maximum write depth for terms.$$$$$$UPDATED: The logtalk_allure_report scripts to add a categories.json file to classify failed tests.$$$$$$FIXED: The lgtunit tool xUnit format support to ensure that test URLs are correct when the suppressed path prefix ends with a slash.$$$$$$FIXED: The logtalk_tester.ps1 script reporting of test sets with multiple or parametric test objects.$$$$$$FIXED: The debugger tool to reset skipping and zapping state when tracing a new top-level query. Thanks to Lindsey Spratt for the
Logtalk Version 3.77.0
Release Date
4/2/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.77.0 - April 2; 2024$$$Logtalk compiler and runtime$$$ADDED: Predicate property recursive to the reflection API to document that a predicate definition includes at least one recursive rule.$$$$$$ADDED: Linter warnings for logtalk::print_message/3 goals (specifically; missing message tokenization and misuse of Format+Arguments meta-message).$$$$$$Documentation$$$ADDED: Also generate ePub and PDF versions of the APIs documentation.$$$$$$IMPROVED: Documentation of the code_metrics tool.$$$$$$Library$$$ADDED: New and improved tests for the os library.$$$$$$FIXED: The os library date_time/7 predicate for XSB to return the local date and time.$$$$$$Tools$$$CHANGED: The code_metrics tool to exclude auxiliary predicates from analysis.$$$$$$CHANGED: The diagrams tool to omit from library loading and library dependency diagrams libraries that are not loaded or have no dependencies.$$$$$$CHANGED: The diagrams tool to omit from directory loading and directory dependency diagrams directories that are not loaded or have no dependencies.$$$$$$CHANGED: The diagrams tool to use the default layout for sub-diagrams when using the zoom(true) option.$$$$$$CHANGED: The packs tool to only install or restore; by default; packs that are compatible with the current Logtalk; backed; and operating-system versions. Add a new compatible/1 boolean option for the install/4; update/3; and restore/2 predicates (default is true) to allow overriding the new default behavior.$$$$$$ADDED: Support to the packs tool for specifying packs alternative dependencies using the (;)/2 operator.$$$$$$ADDED: New public predicates to the code_metrics tool that take a list of options to selectively exclude from analysis libraries; directories; files; and entities.$$$$$$ADDED: The diagrams tool directory diagrams now generate file nodes that link to file entity diagrams when using the zoom(true) option.$$$$$$ADDED: New diagrams tool recursive_relations/1 boolean option (default is false) to output recursive calls links in predicate cross-referencing diagrams.$$$$$$ADDED: New diagrams tool versions/1 boolean option (default is false) to print the Logtalk and backend version data.$$$$$$ADDED: New diagrams tool predicate_url_target_format/1 option (default is sphinx) to allow generating correct documentation URL predicate targets.$$$$$$ADDED: Preliminary support for Mermaid to the diagrams tool (not loaded by default as its current version lacks parity with required Graphviz features).$$$$$$IMPROVED: The packs tool now checks when updating a pack if any dependent pack will break.$$$$$$FIXED: The packs tool to pass pack installing and updating options to any required dependencies that must also be installed or updated.$$$$$$FIXED: The diagrams tool to normalize the directories listed in the exclude_directories/1 option.$$$$$$FIXED: The diagrams tool to always consider the exclude options when outputting external nodes and edges.$$$$$$FIXED: The diagrams tool to avoid adding zoom icons/links when the linked diagrams are empty.$$$$$$FIXED: The diagrams tool to show relative paths in external file nodes after the omit_path_prefixes/1 option instead of just basenames.$$$$$$FIXED: The lgtunit tool xUnit.net v2 XML format support to output errors quoted.$$$$$$Tests$$$ADDED: Preliminary test set for the Prolog encoding/1 directive supported by some of the backends that support Unicode and multiple text encodings.$$$$$$ADDED: Additional tests for the Prolog standard number_codes/2 predicate.
Logtalk Version 3.64.0
Release Date
3/28/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.64.0 - March 28; 2023$$$Logtalk compiler and runtime$$$FIXED: Handling of dynamic/1 directives for predicates with no clauses in included files when using an include/1 argument in create_object/4 goals.$$$$$$FIXED: Do not print a linter warning for a missing dynamic/1 directive when compiling a category if there isn’t a scope directive for the predicate.$$$$$$FIXED: Performance issue where the compiler would not inline predicate definitions when the clause body goal uses parameter variables.$$$$$$Prolog adapter and integration files$$$CHANGED: The LVM adapter file to set the coinduction flag from the value of the unify_applies_occurs_check flag.$$$$$$UPDATED: The LVM adapter file to expand calls to the open_db/2 built-in predicate from within objects and categories to ensure that all database predicates are visible.$$$$$$UPDATED: All integration PowerShell scripts to require version 7.3 or later.$$$$$$Library$$$CHANGED: The csv library to throw error/2 exception terms and type-check the write_file/3 and write_stream/3 predicates.$$$$$$ADDED: Experimental support for LVM to the java library.$$$$$$ADDED: New java library array_to_list/2 and list_to_array/2 predicates. Unlike the now deprecated array_list/2 predicate; calls to these predicates can be inlined.$$$$$$UPDATED: The java library to also abstract JPL jpl_map_element/2 and jpl_set_element/2 predicates for the SWI-Prolog and YAP backends.$$$$$$FIXED: Description of the java library array_list/2 predicate.$$$$$$Tools$$$CHANGED: The logtalk_tester.sh script to only accept LVM long options for choosing between the standard and custom top-levels.$$$$$$CHANGED: The lgtunit tool clean_file/1 predicate to always interpret relative paths as relative to the tests object path. This simplifies usage and improves reliability by not depending on the current working directory.$$$$$$ADDED: New packs::installed/1 predicate to list all packs installed from a given registry.$$$$$$IMPROVED: The registries::update/0 predicate to inform the user when no registry is defined.$$$$$$UPDATED: All tool PowerShell scripts to require version 7.3 or later.$$$$$$FIXED: The logtalk_tester.sh and logtalk_tester.ps1 scripts passing calling options to a sourced tester.sh and tester.ps1 scripts in the test set directories.$$$$$$FIXED: The logtalk_tester.ps1 script handling of the -w option to avoid warnings when the scratch directories don’t exist.$$$$$$Examples$$$MOVED: Tests from the jpl example to the java library.$$$$$$ADDED: New neo4j example of using the java library to interface with Neo4j.$$$$$$ADDED: Tests for the document_converter example.$$$$$$ADDED: Experimental support for LVM to the Java examples.$$$$$$IMPROVED: Test set condition for the clustering example.$$$$$$IMPROVED: The documentation of the bench example.$$$$$$FIXED: The clustering and document_converter examples tester.sh scripts.$$$$$$Tests$$$ADDED: Additional tests for the Prolog standard bagof/3; findall/3; setof/3; (\+)/1; call/1-N; and once/1; predicates.$$$$$$ADDED: Additional tests for the de facto Prolog standard findall/4; format/2-3; and setup_call_cleanup/3 predicates.$$$$$$
Logtalk Version 3.63.0
Release Date
2/27/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.63.0 - February 27; 2023$$$Logtalk compiler and runtime$$$ADDED: Allow info/2 directive examples key examples to also use {true} and {false} for bindings.$$$$$$FIXED: Spurious linter warnings of unknown calls to user predicates (and non-terminals) listed in uses/2 and use_module/2 directives when the predicates (and non-terminals) are also declared as dynamic or multifile in the same entity.$$$$$$FIXED: Spurious suspicious call linter warnings when compiling calls to threaded meta-predicates. Thanks to Didier Garcin for the bug report.$$$$$$FIXED: Linter warning for message-sending calls sent from an object to itself to check that it calls a locally defined predicate. Thanks to Paul Brown for the sample code.$$$$$$FIXED: Compiler optimization for message-sending calls sent from an object to itself to only apply when calling a locally defined predicate.$$$$$$Documentation$$$ADDED: Handbook section on compiler formatting of errors; warnings; and comments.$$$Library$$$IMPROVED: Documentation of the random library randomize/1 predicate. After feedback from Jonathon Doran.$$$Tools$$$ADDED: GNU Prolog (1.5.1 or later version) support for the help tool experimental predicates for top-level inline browse and search of the Texinfo versions of the Handbook and APIs documentation.$$$$$$IMPROVED: Performance of the diagrams tool when generating library dependency diagrams.$$$$$$IMPROVED: The logtalk_tester.sh script to exit with an error code when the find command used to find test sets fails to recognize an option.$$$$$$FIXED: The logtalk_tester.sh script -e option to work on Linux. Thanks to Lindsey Spratt for the bug report.$$$$$$Examples$$$ADDED: New units example; a Logtalk version of a GNU Prolog/CX parametric unit example.$$$$$$FIXED: Unknown module predicate linter warnings in the constraints/sicstus example due to the length/2 and member/2 predicates being built-in.$$$$$$Tests$$$ADDED: Additional tests for the de facto Prolog standard format/2-3 predicates.$$$$$$ADDED: Additional tests for the setup_call_cleanup/3 predicate adapted from the WG17 standardization proposal.$$$$$$IDEs; text editors; and syntax highlighters support$$$UPDATED: Syntax completion keywords for the jEdit; Sublime Text; TextMate; and Vim text editors
Logtalk Version 3.62.0
Release Date
1/31/2023
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.62.0 - January 31; 2023$$$Logtalk compiler and runtime$$$ADDED: Message token tab(Expression) to the logtalk built-in object.$$$Prolog adapter and integration files$$$UPDATED: Simplify integration script for Trealla Prolog.$$$Documentation$$$UPDATED: Man pages of integration scripts that accept a command-line option for silencing informative messages.$$$$$$FIXED: Permanently redirected and broken hyperlinks in the Handbook and developer tools documentation.$$$$$$Library$$$ADDED: Preliminary version of sequence grammar rules to the grammars library.$$$$$$IMPROVED: Documentation of the hook_objects library.$$$$$$FIXED: Workaround issue with the SWI-Prolog implementation of the standard initialization/1 directive by skipping two tests of the timeout library.$$$$$$Tools _____$$$$$$ADDED: Option to the logtalk_tester.sh and logtalk_tester.ps1 scripts for excluding directories using a regular expression.$$$$$$ADDED: New debugger tool port option to skip debugging for the current goal but displaying all intermediate ports unleashed.$$$$$$ADDED: New debugger tool port option to read and throw and exception term (as in the SICStus Prolog debugger).$$$$$$ADDED: Experimental lgtenv.sh and lgtenv.ps1 scripts for creating packs virtual environments.$$$$$$ADDED: New packs tool available/2 and versions/3 predicates.$$$$$$ADDED: New update/1 option to the packs tool registry adding and pack installation predicates.$$$$$$IMPROVED: The diagrams tool lgt2svg.sh and lgt2svg.ps1 scripts to alert the user when one or more files could not be converted (usually due to Graphviz crashes).$$$$$$UPDATED: The update_svg_diagrams.sh script to exit with the same code as the called lgt2svg.sh script.$$$$$$UPDATED: The packs tool to also recognize as a valid registry and pack readme file name case variations of NOTES with or without a .md or .txt extension.$$$$$$FIXED: Document packs tool predicates possible exceptions.$$$$$$FIXED: Missing type-checking of some arguments of some of the packs tool predicates.$$$$$$FIXED: The debugger tool to consume any new-line code after the user answers a question at a leashed port to avoid an automatic creep when returning to the port after calling the goal.$$$$$$Examples$$$FIXED: Portability issue in the bench example that prevented running the flatten benchmark with some backend Prolog systems.$$$$$$FIXED: Avoid a linter warning when loading the assumptions example.$$$$$$Tests$$$ADDED: Additional tests for the Prolog standard sub_atom/5 predicate. Contributed by Lindsey Spratt from the LVM development work.$$$$$$ADDED: Additional test for the Prolog standard unify_with_occurs_check/2 predicate.$$$$$$ADDED: Additional test for the de facto Prolog standard format/2-3 predicates for the ~0f format specifier. Test case contributed by Andrew Davison.$$$$$$ADDED: Additional tests for the de facto Prolog standard format/2-3 predicates for the case where the number of arguments is larger than required by the format string.
Logtalk Version 3.61.0
Release Date
12/20/2022
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.61.0 - December 20; 2022$$$Prolog adapter and integration files$$$ADDED: PowerShell integration script for Trealla Prolog. Experimental.$$$$$$UPDATED: The Trealla Prolog adapter file to require version 2.6.3 or later.$$$$$$UPDATED: The GNU Prolog adapter file to set the Logtalk report flag to warnings when the --quiet command-line option is used by checking the new show_information flag introduced in version 1.5.1.$$$$$$FIXED: The YAP adapter file to set the Logtalk report flag to warnings when the -q command-line option is used.$$$$$$FIXED: The CxProlog adapter file to set the Logtalk report flag to warnings when the --quiet command-line option is used.$$$$$$Library$$$ADDED: New ids library for generating identifiers (Base64 encoded) with parametrizable text representation and number of bytes of randomness.$$$$$$ADDED: New pairs library object key/2 and value/3 predicates. Also add tests for all the pairs library object predicates.$$$$$$ADDED: Additional tests for the reader library line_to_chars/2 and line_to_codes/2 predicates.$$$$$$Tools$$$ADDED: Support for using git archive for installing packs to the packs tool. This simplifies pack installation and thus improves user experience when the packs registry server uses Single Sign-On (SSO) for authentication.$$$$$$UPDATED: The packs::describe/1 predicate to also print the pack archive URL.$$$$$$Ports$$$FIXED: The metagol port examples loader to exclude loading the sorter example when using LVM as it doesn’t provide the required setarg/3 built-in predicate.$$$Tests$$$ADDED: Additional tests for the standard mod/2 and rem/2 arithmetic functions.
Logtalk Version 3.60.0
Release Date
11/15/2022
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.60.0 - November 15; 2022$$$Logtalk compiler and runtime$$$ADDED: Linter check for the availability of predicates (and non-terminals) listed in uses/2 and use_module/2 directives. Controlled by the flag unknown_predicates.$$$$$$IMPROVED: Readability of default flag values printed at startup.$$$$$$FIXED: When reporting calls to non-standard arithmetic functions don’t describe them as built-in functions as most Prolog systems fail to provide reflection support to check or enumerate built-in functions.$$$$$$Prolog adapter and integration files$$$UPDATED: All backend adapter files to recognize .pro as a valid Prolog file name extension.$$$$$$UPDATED: The Scryer Prolog adapter file to require version 0.9.1 or later.$$$$$$Documentation$$$ADDED: New lgtunit tool documentation section on working with test data files.$$$$$$IMPROVED: The Handbook inheritance section on the predicate lookups order.$$$$$$IMPROVED: The Handbook pages on some predicate directives by linking to the corresponding glossary definitions.$$$$$$UPDATED: The manual installation instructions in the INSTALL.md file for zsh users.$$$$$$Library$$$ADDED: New json library parsing source line(Stream) to parse a single line from the given stream into a JSON term.$$$$$$ADDED: Support for alternative term representations of JSON objects and JSON pairs to the json library.$$$$$$FIXED: Bug in the json library handling of JSON escape sequences.$$$$$$ADDED: Library reader::line_to_chars/2-3 predicates.$$$$$$FIXED: Mode directives for the reader::line_to_codes/2-3 predicates.$$$$$$FIXED: Also declare as synchronized the term_io predicates read_term_from_chars/4 and read_term_from_codes/4.$$$$$$Tools$$$CHANGED: Renamed the lgtdoc tool lgtdoc_missing_periods linter flag to lgtdoc_missing_punctuation and accept also exclamation and question marks.$$$$$$ADDED: New linter warning to the lgtdoc tool for invalid dates in info/1 directives.$$$$$$ADDED: New lgtunit tool file_path/2 protected predicate for computing absolute paths for file paths relative to test object paths.$$$$$$IMPROVED: The lgtdoc tool linter warnings to include the file line number.$$$$$$IMPROVED: More portable checking of the packs tool required command-line executables in POSIX systems.$$$$$$FIXED: The logtalk_doclet.sh script when using a backend Prolog system that requires command-line passed queries to end with a period.$$$$$$FIXED: The logtalk_tester.sh script to ensure that the searching for a tester.sh file to be sourced is restricted to the test set directory.$$$$$$FIXED: The logtalk_tester.ps1 script sourcing of tester.ps1 files found in the test set directory.$$$$$$FIXED: List of dependencies for the developer tools for Ubuntu.$$$$$$Examples$$$IMPROVED: Documentation of the people example.$$$$$$FIXED: Test for the jpl example to correctly compare floats.$$$$$$Tests$$$ADDED: Additional tests for the Prolog standard atom_chars/2; atom_codes/2; number_chars/2; and number_codes/2 predicates.$$$$$$UPDATED: Several Prolog compliance tests to use the new lgtunit tool file_path/2 predicate.$$$$$$Installers and installation scripts$$$IMPROVED: The logtalk_user_setup.sh and logtalk_user_setup.ps1 scripts to detect when the LOGTALKHOME and LOGTALKUSER environment variables point to the same directory and refuse to run.$$$IDEs; text editors; and syntax highlighters support$$$ADDED: Support for escape sequences inside double-quoted terms to most text editors and syntax highlighters.$$$$$$UPDATED: Syntax highlighting test files to test escape sequences inside double-quoted terms.$$$$$$FIXED: Deleted accidentally committed temporary files in the coding/tests directory.
Logtalk Version 3.59.0
Release Date
10/18/2022
Bug Fix?
Yes
Minor Release?
Yes
Patch Notes

3.59.0 - October 18; 2022$$$Logtalk compiler and runtime$$$CHANGED: The user pseudo-object to declare the before/3 and after/3 predicates multifile to avoid predicate existence errors when using this object as monitor without definitions for these predicates in user.$$$$$$ADDED: Linter warning for predicate rules where the body is a naked meta-variable or contains a control construct where a cut-transparent argument is a naked meta-variable.$$$$$$FIXED: The declared_in/2; defined_in/2; and redefined_from/2 predicate properties when the predicate is being declared or (re)defined in an included file.$$$$$$FIXED: The compiler to avoid a trivial failure warning with some Prolog backends when checking the encoding_directive flag value.$$$$$$$$$Please refer the link for more details$$$https://logtalk.org/releasenotes.html#3590---october-18-2022
Interested in automating patching for Adobe Acrobat?