We stand with Ukraine to help keep people safe. Join us
Logtalk free download for Mac

Logtalk

Version 3.74.0

Object-oriented logic programming language.

5.0
Based on 1 user rateRead reviews & comments
Free
Absolutely Free

Logtalk overview

Logtalk is an Open-Source, object-oriented logic programming language that extends and leverages the Prolog language with a feature set suitable for programming in-the-large.

Logtalk supports modern code encapsulation and code reuse mechanisms without compromising the declarative programming features of Prolog. Logtalk is implemented in highly portable code and can use most modern and standards compliant Prolog implementations as a back-end compiler. The Logtalk distribution features portable libraries and portable assertions, documenting, diagraming, and unit testing tools, plus extensive code editing and publishing support. It also includes extensive documentation and a large number of programming examples.

What’s new in version 3.74.0

Updated on Feb 07 2024

Logtalk compiler and runtime
  • Changed: Printing of linter warnings about to the use of unsound control constructs in grammar rules to be controlled by the grammar_rules flag instead of the suspicious_calls flag. Also changed the format of warning message.
  • Changed: The implementation of the context/1 built-in method and the implementation of the threaded_call/2 and threaded_once/2 built-in predicates to throw uninstantiation_error(Term) errors instead of type_error(var, Term) errors.
  • Changed: The implementation of the threaded_peek/1-2 built-in predicate to throw an exception when there is no thread proving the goal argument.
  • Changed: The implementation of the threaded/1 built-in predicate to not abort execution when the argument is a disjunction of goals if one of them throws an exception while there are still thread goals running.
  • Improved: The implementation of the threaded/1 built-in predicate to support calls where the argument is only bound at runtime.
  • Improved: The implementation of the threaded/1 built-in predicate to use a dedicated message queue per call. This prevents unlikely but still possible leaks of individual thread results between calls that could cause unexpected failures.
  • Improved: The implementation of the threaded_engine_create/3 predicate to use a single mutex.
  • Improved: The implementation of the threaded_cancel/1 predicate.
  • Improved: Error checking of the threaded_exit/1-2 and threaded_peek/1-2 predicates.
  • Improved: Linter warnings for if-then-else and soft-cut control constructs.
  • Fixed: Compilation of synchronized/1 directives in categories to not depend on the Prolog with_mutex/2 built-in predicate implicitly creating mutexes.
  • Fixed: Compilation of phrase/2-3 goals where the first argument is a (::)/1-2 or (^^)/2 control construct with a variable grammar rule body argument would result in a compilation infinite loop. Thanks to Yurii Rashkovskii for the bug report.
  • Fixed: Regression where a compiler error when a source file term is not callable would be delegated to the backend.
Prolog adapter and integration files
  • Updated: The LVM adapter file to set the engines and threads flags depending on the availability of the required built-in predicates.
  • Fixed: The SWI-Prolog swihooks.pl file to allow calls to the threaded/1 built-in predicate in user to actually use multi-threading by preventing module-qualification of the predicate argument.
Documentation
  • Improved: Handbook documentation of built-in meta-non-terminals and meta-predicates.
  • Improved: Handbook documentation on grammar rules.
  • Improved: Handbook documentation on dynamic predicates and the create_object/4 built-in predicate.
  • Improved: Handbook documentation of the threaded/1 built-in predicate.
  • Improved: Handbook documentation of the meta_predicate/1 directive.
  • Fixed: Handbook description of the if/1 conditional compilation directive.
  • Fixed: Documentation of the context/1 built-in execution context method.
  • Fixed: Documentation of the threaded_exit/1-2 exceptions.
Library
  • Changed: The type library object to to throw uninstantiation_error(Term) error instead of type_error(var, Term) error when checking the var type.
  • Changed: Deleted deprecated library/genint.lgt file, replaced by the genint library.
  • Added: Library listing supporting listing of object dynamic predicates clauses. This library replaces the old non-documented listing category.
  • Added: Library recorded_database to help porting legacy Prolog code.
  • Updated: The os::file_exists/1 predicate for YAP.
  • Fixed: The json library to avoid unnecessary escaping of slashes when encoding a string. Thanks to Yurii Rashkovskii for the bug report.
  • Fixed: The json library ignoring the selected JSON object representation when generating JSON output. Thanks to Yurii Rashkovskii for the bug report.
  • Fixed: The json library domain error when trying to generate JSON output from an invalid JSON representation.
  • Fixed: Description of the hierarchies library.
  • Fixed: Compatibility of the types library with XSB due to the missing implementation of the de facto standard gcd/2 arithmetic function.
  • Fixed: Two linter warnings when loading the os library using the CxProlog backend.
Tools
  • Changed: Recent versions of both Texinfo and Sphinx broke index search in the Handbook and APIs documentation when using the help::handbook/1 and help::apis/1 predicates. The argument is now interpreted as a starting node instead of a search string.
  • Changed: Default output directory for the diagrams tool to ./dot_dias.
  • Updated: The update_svg_diagrams.* scripts for the new diagrams tool default output directory.
  • Updated: The lgtunit tool to report unbound test options.
  • Updated: The lgtunit tool xUnit.net v2 XML format output to include the assemblies and assembly tags start-rtf and finish-rtf attributes.
  • Updated: The tutor tool for the refactoring of the linter warnings on the use of unsound control constructs in grammar rules.
  • Fixed: Syntax error in the logtalk_tester.ps1 script.
Ports
  • Improved: Portability of the fcube port by using less problematic operator names. This allows the port to run with LVM and SICStus Prolog.
Examples
  • Changed: The haunted_wasteland, scratchcards, and trebuchet examples providing solutions for selected Advent of Code 2023 problems to comply with this event legal requirements by linking (instead of copying) to the problem descriptions and removing test files that are not samples found in the problem descriptions.
  • Updated: The errors example for the linter warnings on the use of unsound control constructs in grammar rules, redefined operators, and suspicious tests in conditionals.
  • Updated: The ebench example for an upcoming LVM version.
  • Updated: Several multi-threading example tests to use explicit assertions.
  • Updated: The mtbatch example to use the format and os libraries.
  • Updated: Simplified the functions and mtbatch multi-threading examples, accounting for the changes to the threaded/1 built-in predicate.
  • Fixed: The emetas example definition of the best_of/3 predicate to destroy the threaded engine after computing the answer.
Tests
  • Added: Additional tests for the multi-threading built-in predicates.
  • Added: Additional tests for the format/2-3 de facto standard predicates (~Ng, ~NG, ~|, ~N|, and ~N+ control sequences).
IDEs, text editors, and syntax highlighters support
  • Removed: The old and deprecated VSCode support in favor of the "Logtalk for VSCode" extension available from the VSCode Marketplace.
  • Updated: The syntax highlighting test files to include the built-in non-terminals.
  • Updated: EditorConfig support for the .logtalk and .prolog file name extensions.
  • Updated: Ace support for compatibility with its current version (v1.32.2).
  • Updated: Rouge support for compatibility with recent versions.
  • Fixed: Ace support highlight of 0'Char and 0'\Char numbers.
  • Fixed: GtkSourceView support error with escaped characters highlighting.
  • Fixed: Merge upstream changes for the Kate text editor support.
  • Fixed: Merge upstream changes for the Pygments syntax highlighter support.
  • Fixed: SubEthaEdit 4.x/5.x syntax highlight for the threaded_cancel/1 built-in predicate.
  • Fixed: Vim support highlight of 0'Char and 0'\Char numbers.
Installers and installation scripts
  • Updated: The install.sh manual installation script to inform the user about the INFOPATH environment variable.
  • Fixed: The Bash shell embedding scripts to actually use the default settings file when no -s option is passed.

Information

License

Free

Size

17.9 MB

Developer’s website

https://logtalk.org/

Downloads

10429

App requirements

  • Intel 64
  • Apple Silicon
  • OS X 10.10 or later
  • Compatible Prolog compiler
Try our new feature and write a detailed review about Logtalk. All reviews will be posted soon.

Write your thoughts in our old-fashioned comment

MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
0.0

(0 Reviews of )

There are no reviews yet
  • Comments

  • User Ratings

Quantumpanda
Quantumpanda
Jan 13 2015
3.00.0
0.0
Jan 13 2015
0.0
Version: 3.00.0
Why doesn't MacUpdate Desktop inform me of updates to LogTalk? MUD ought to be able to recognize the presence of any software the website lists.
Sandro-Bilbeisi
Sandro-Bilbeisi
Aug 4 2015
5.0
Aug 4 2015
5.0
Version: null
Free
Absolutely Free
How would you rate Logtalk?
Similar apps
Python
Object-oriented programming language.
Is this app is similar to Python? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes
Processing
Programming language for electronic arts.
Is this app is similar to Processing? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes
Agena
Procedural programming language.
Is this app is similar to Agena? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes
Racket
Popular variant of the Scheme programming language.
Is this app is similar to Racket? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes
Scala
The Scala Programming Language.
Is this app is similar to Scala? Vote to improve the quality of this list.
Vote results
1
Upvotes
1
Total score
0
Downvotes