Version | Change log |
Logtalk 9.2.9.1 Dec 20, 2024 | ADDED: trap/1: aliases for e.g. type_error -> type_error(_,_) So one does not need to remember the number of arguments. |
Logtalk 9.2.8.1 Dec 19, 2024 | BUILD: Add CMake option -DSWIPL_SO_VERSIONS to remove SOVERSION properties. |
Logtalk 3.86.0 Dec 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 b |
Logtalk 9.2.8.1 Nov 18, 2024 |
FIXED: Handling return values in stack expansion. Introduce more bool to correctly distinguish functions returning true/false/*_OVERFLOW from those raising exceptions and only returning true/false. FIXED: prolog_trace_interception/4: setting up the hook good crash. |
Logtalk 3.85.0 Nov 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 doesn’t 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. Lib |
Logtalk 9.2.8.1 Oct 24, 2024 |
BUILD: Make sure to clear DISPLAY when running xpce steps While the build works without a DISPLAY variable, an invalid variable causes the build to fail. TEST: Disable collation_key/2 test for MacOS Macos Sequoia (15) wcsxfrm() returns garbage. |
Logtalk 3.84.0 Oct 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 t |
Logtalk 9.2.7.1 Sep 26, 2024 |
DOC: Update 32/64 bit notes FIXED: #1317 thread_exit/1 can crash after changes to thread_signal/2. APPLE: Add code signing for creating the .dmg image The image is signed if $CODESIGN_ID is set to the certificate id to be used with codesign -s. Unfortunately, this is not the whole story. As a result, we can no longer load shared object that are not part of the disk image, which means we cannot use Xquartz, Python or Java. |
Logtalk 3.83.0 Sep 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 doesn’t 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, exist |
Logtalk 9.2.7.1 Sep 3, 2024 | FIXED: Type for PL_get_intptr_ex(). Breaks on Win32 |