Hi,
Logtalk 3.25.0 is now available for downloading at:
New to Logtalk? Tutorials and a learning guide are available at:
https://logtalk.org/guides.html
Logtalk provides an alternative to Prolog modules, notably for programming in the large, and comes with a full set of developer tools:
https://logtalk.org/tools.html
This release focus on compiler linter and QuickCheck improvements. It adds 15 new linter checks, notably for possibly non-steadfast predicates, predicate and variable names that do not follow coding guidelines, repeat loops without a cut, redundant calls to built-in predicates and control constructs, cuts in clauses for multifile predicates, variable use in all-solutions predicate calls, and several others suspicious calls and constructs; adds two new compiler flags, “steadfastness” and “naming”, to control the corresponding linter warnings; improves the goal-expansion mechanism to prevent infinite loops when the goal to be expanded resulted from a previous expansion of the same goal; updates the “coinductive/1” directive to also accept non-terminal indicators; updates the Handbook glossary; improves the Handbook sections on performance and on calling Prolog meta-predicates; fixes issues in the PDF version of the Handbook; improves “lgtunit” tool support for QuickCheck by allowing the user to specify the maximum number of shrink operations and by testing edge cases first; adds definitions for new types that take as argument a character set; adds shrinking supporty for most of the types supported by the “arbitrary” category; adds support for defining type edge cases to the “arbitrary” category; improves shrinking of list types; fixes steadfastness issues with some library predicates; and provides portability updates for GNU Prolog, SICStus Prolog, SWI-Prolog, and YAP. For details and a complete list of changes, please consult the release notes at:
Happy logtalking!
Paulo
P.S. A summary of the main linter checks is available at https://logtalk.org/tools.html#lint-checker
P.S.2 Related, easily QuickCheck your predicates at the top-level https://groups.google.com/forum/#!topic/comp.lang.prolog/3KY8mOzbVbI
Note that there’s also a quickcheck
pack by Michael Hendricks.