Dear SWI-Prolog user,
SWI-Prolog 8.3.24 is ready for download. Quite few things happened.
@peter.ludemann did a lot of work improving the Google protocol
- Various tabling enhancements:
- MODIFIED: library(dialect/xsb/increval) is moved to library(increval)
- Support to to monotonic tabling on external data sources rather than
only on dynamic predicates.
- Fix in monotonic propagation
- Fixed a possible crash (invalid compiled table)
- Improved handling of errors and warnings for batch processing and
- Improved escape sequences when writing quoted atoms and strings.
- Fixed problem with nested reconsult (shows in expanded maplist/N
being undefined on every even load).
- Added undo/1 to push goals onto the trail to be executed on
Thanks for all the pull requests and comments.
Enjoy --- Jan
FIXED: Issue#830: assertion failure in GUI debugger. Wouter Beek.
TEST: Make a test fail if an error message is printed.
FIXED: locale_create/3: handling of
ADDED: Make the new on-error and on-warning options work both in
normal mode and in compilation (
ENHANCED: Handle underscores and minus the same when parsing
compilation options for
ENHANCED: Enable color output when compiling
ADDED: Prolog flags
ADDED: Provide a (silent) message reporting the error and warning count
while loading a file and document error handling during compilation.
ADDED: statistics/2 and thread_statistics/3 keys
ADDED: undo/1 to schedule goals to be called on backtracking.
FIXED: Issue#110: Nested consult/1 on already loaded files (reconsult)
did not do generation management correctly.
MODIFIED: Renamed incr_propagate_answer/1 to incr_propagate_calls/1.
Removed incr_invalidate_answer/1 (is incr_invalidate_calls/1).
FIXED: Ensure a compiled trie never ends in I_FAIL. This crashes
FIXED: vm_list/1 for compiled tries.
ADDED: incr_propagate_answer/1 and incr_invalidate_answer/1.
MODIFIED: Move library(increval) from dialect/xsb to the core
library. Code using the XSB emulation should run unmodified. Code that
uses this library as
library(dialect/xsb/increval)must be updated
to load library(increval) or rely on autoloading.
DOC: Updated stream_property/2 for
ADDED: Prolog flag
CLEANUP: Generalize fast access to boolean Prolog flags such that we
can host more than 32.
ENHANCED: Use Unicode classifiers for deciding on which characters
to escape for quoted write.
DOC: Escape sequences used for quoted write.
MODIFIED: Make quoted write depend on
iswgraph()rather than not
quote any non-ascii character. Escaped characters are written as
ADDED: code_type/2: category
FIXED: Tighter checking correctness of sandbox declarations and fix
wrong declaration for ‘$moded_wrap_tabled’/5 (was /4).
DOC: stream_property/2 representation_errors property.
DOC: Explain current status wrt dynamic and static linking.
-DSWIPL_STATIC_LIB=ONconfig option to also build
a static library.
BUILD: Use CMake
OBJECTlibrary as intermediate.
ENHANCED: Issue#825: Error handling when goal_expansion/2 binds a
ADDED: Prolog flag
optimise_unifyto prevent moving unifications to
the head. as these harm notably the source level debugger experience.
FIXED: runtime change of det/1 property. Peter Ludemann.
FIXED: Fresh table that depends on an invalid monotonic lazy table
causes a permission error.
DOC: “pinned” → “developed”
- ENHANCED: process_create/3: better error message if executable could
not be found.
- DOC: Small touches & updates
- FIXED: Handling of empty cells to emit a
- FIXED: pengine_property/2 in mode (+,+). David Tonhofer.
ADDED: support for “packed”
FIXED: UTF-8 processing for string(Tag,…) ADDED:
signed64(Tag,…) for .proto types int32,int64
- TEST: Silence expected error messages.