Ann: SWI-Prolog 8.3.23

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

SWI-Prolog Changelog since version 8.3.22

  • PORT: Make Windows build work again due to changed debug
    infrastructure.

  • 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 pce_arg highlighting to
    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
    file/line source.

  • FIXED: Issue#815: same_functor/4 (and friends) to be more SICStus
    compatible.

  • 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
    predicate.

  • FIXED: $/1 for 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.

Package http

  • ADDED: Support dynamic management of gzipped files.

Package nlp

  • ADDED: isub/4 mode isub(+Text1, +Text2, -Simularity, +Options) by @swi.

Package protobufs

  • ADDED: protobuf_segment_message/2 heuristics to match protoc
    –decode_raw functionality

  • ADDED: protobuf_segment_message/2 and export the low-level conversion
    predicates

1 Like