Version | Change log |
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 |
Logtalk 9.2.5.1 Aug 24, 2024 | FIXED: Type for PL_get_intptr_ex(). Breaks on Win32 |
Logtalk 3.82.0 Aug 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. 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 |
Logtalk 9.2.5.1 Aug 14, 2024 | FIXED: Type for PL_get_intptr_ex(). Breaks on Win32 |