Dear SWI-Prolog user,
SWI-Prolog 9.1.10 is ready for download. Highlights:
-
Fixed to http_open/3 when using Keep-Alive connections.
-
Changes to library(ugraph), top_sort/2,3. See below.
-
Bug in catch/3 that could leave a choicepoint in debug
mode, causing enclosing det/1 to raise an exception. -
Various enhancements for the WASM version. Now passes
all tests. -
Fix to YAML parser to read “e” as an atom rather than
a string.Enjoy — Jan
SWI-Prolog Changelog since version 9.1.9
-
ADDED: trap/1: aliases for
det
and=>
. Expandable. -
MODIFIED: top_sort/2, deleted top_sort/3 added ugraph_layers/2
top_sort/3 was deleted due to mismatch of documentation and
implementation for the order of the difference list arguments.
The docs give a replacement.top_sort/2 now returns vertices from the same layer in input order,
i.e., in standard order of terms.ugraph_layers(+UGraph, -Layers) returns the topogical sorted result
as a
list of layers. I.e., all legal toplogical sorts can be established by
creating permutations for the layers. -
FIXED: catch/3 debugger interaction. In debug mode it was possible for
catch/3 to not finish the catch if the goal succeeded deterministically
due to CHP_DEBUG choice points. -
CLEANUP: Remove very old work-around for clang bug.
-
WASM: Get the link options for the various targets ok. This notably
passes-s STACK_SIZE=1048576
as the default 64K is too small for
SWI-Prolog. The patch reorganises assembling the link option lists
for better sharing of common options. -
BUILD: By default implement VM instructions using functions for
clang On recent versions of clang (14,15), the code produced using
VM instructions as functions rather than a big switch is faster. -
BUILD: Generalize configuration of C-stack limit
-
BUILD: Added ccache support Currently disabled for Emscripted as that
seems to do its own caching these days. -
WASM: Removed export
Pointer_stringify
. Compiler complains and it is
(no longer) used. -
FIXED: absolute_file_name/3: allow for duplicate options. This change
also affects other predicates that use the Prolog built-in option
handling.
Package http
-
FIXED: Prevent type error in redis based session management.
-
FIXED: http_open/3 with keep-alive connections Fixes two issues: (1)
streams may be left open (leaking stream handles) when an error occurs
during the HTTP handhake and (2) errors during the http handshake
were propagated without the error(,) wrapper. With http handshake
we refer to sending and reading the header as well as, for https,
the TLS handshake.
Package pldoc
- ADDED: Include documentation for exported predicates loaded from other
files. While this was in place for imported modules (re-export),
documentation from non-module files loaded by and exported from a
module was not included.
Package plunit
- ENHANCED: Name of failed test. Now prints both the unit and test
and uses quoted write so you can copy/paste the result.
Package xpce
- FIXED: finder with default mode to find files for reading.
Package yaml
- FIXED: Stricter number syntax checking. The library tests scalars
for numeric syntax and then invokes the Prolog parser. It passed “e”
as a number. This patch also documents that, violating the standard,
we parse “0.” as a string rather than a float.