Dear SWI-Prolog user,
SWI-Prolog 8.3.23 is ready for download. This for now finishes the
enhanced support for function style (deterministic) programming
with a few bug fixes. Otherwise we see mostly contributed work:
More SICStus (4) emulation by @dgelessus
Isub word-simularity improvements by @swi
Google protobufs enhancements by @peter.ludemann
Better internal debug logging support by @dmchurch
As a following from the struggles @dgelessus had with SICStus
same_functor/2-4, I have added functor/4 to handle simplify handling
both atoms and zero-arity compound terms. If you think that could
be improved further or there is a better alternative, please reply.
Enjoy — Jan
PORT: Make Windows build work again due to changed debug
BUILD: Issue#819: CMake Policy CMP0115. Wouter Beek.
FIXED: same_functor/4 and derived predicates to be fully compatible
with SICStus and handle zero-argument compounds.
ADDED: functor/4 to make dealing with zero-argument functors and
atoms easier. This is a result of Issue#815
FIXED: library(prolog_colour): prevent
cause a failure to highlight dict objects.
DEBUG: Early/better internal debug output Initialize the global
debug_level as soon as possible if “-d” is passed first on the command
line, to avoid missing early debug lines. Also, track use of the
DEBUG() macro on a per-thread basis and use Serror as the default
output stream when inside a DEBUG clause, so that statements that
mix e.g. Sdprintf() and write_term() will get printed to a single
output. Finally, prefix debug lines with the debug channel and the
FIXED: Issue#815: same_functor/4 (and friends) to be more SICStus
ADDED: library(aggregate), library(between) and library(samsort)
to SICStus 4 emulation.
ADDED: sublist/[3,4,5] to SICStus 4 library(lists) emulation.
ADDED: host_type Prolog flag to SICStus emulation.
ADDED: at_end_of_stream/[0,1] to SICStus emulation.
ENHANCED: SICStus emulation now disables quoted printing of atoms.
FIXED: vm_list/1 to handle clauses with breakpoints and list these.
ENHANCED: Multiple clauses may be registered at a specific source
line. We need to consider all of them for set_breakpoint/4.
FIXED: Context module handling in a tail-recursive transparent
$/1for goals doing variable balancing using C_VAR_N
FIXED: Save det/1 flag in saved states and Qlf files.
FIXED: Propagate error when tabling traps an update to a dynamic
predicate that is involved in a table reevaluation.
- ADDED: Support dynamic management of gzipped files.
- ADDED: isub/4 mode isub(+Text1, +Text2, -Simularity, +Options) by @swi.
ADDED: protobuf_segment_message/2 heuristics to match protoc
ADDED: protobuf_segment_message/2 and export the low-level conversion