Did you know ... | Search Documentation: |
![]() | Title for pldoc(default) |
[Oct 7 2025]
var_tag
is set to attvar
. This allows reading terms
with attributes. It also supports labeled subterms that allows to
read terms that are directed graphs rather than trees. This includes
cyclic terms. For this we reserve the attributed =
. For example
?- A = X{= : f(X)}.
Binds A to a cyclic term equivalent to executing X = f(X)
. This is
part of ongoing discussions in the PIP working group. It is currently
implemented by ECLiPSe and SWI-Prolog.
[Oct 6 2025]
Dict.put(Path, Value)
: create new dicts as #{...}
.#
tag The #
tag matches any tag
at the other end and the dict holding the remainder has the #
tag.[Oct 3 2025]
attributes(write)
This now writes
Var{Att1: Value1, Att2: Value2, ...}
, which is valid syntax for
read_term/2 if the Prolog flag var_tag
is attvar
.[Oct 2 2025]
var_tag
flag.var_tag
Defines how Var{...} terms are
interpreted. This commit only implements setting and getting the flag.[Oct 1 2025]
#
tag The tag #
matches any
tag on the other side without instantiating the tag.[Oct 8 2025]
[Oct 2 2025]
'$tmp_file_stream'/4
[Oct 1 2025]
[Sep 30 2025]
setjmp()
/longjmp out
of the way we get about 15% improvement.[Sep 29 2025]
setjmp()
out of the VM main function Using setjmp()
harms register allocation, which slows down the VM. Some data points:
Clang: 6% (Clang-17 on Apple M1 as well as Clang-20 on AMD3950X),
GCC: 13% (GCC-15 on AMD3950X), WASM: 35% (Emscripten 4.0.15 on Node.js
22.19 on AMD3950X). MinGW-14: 18% (Windows binary running on AMD3950X
under Wine).rational_syntax
set to natural
.[Sep 28 2025]
longjmp()
in PL_next_solutions() This
improves performance by about 12%. It does make a couple of scenarios
for stack overflow handling impossible though. This patch merely
introduces O_THROW
as C macro to enable/disable this.[Sep 26 2025]
-O2
This produces a smaller binary with
slightly better performance.-O1
in
Debug mode Otherwise local variables with non-overlapping scope are
not merge, causing an Emscripten compiler errorswipl-win
Also cleanup handling platform-dependent
cmake options[Sep 25 2025]
[Sep 24 2025]
Possibly we should add a flag to control this behaviour, i.e. whether or not halt/0 inside prolog/0 terminates the process or merely the REPL loop.
[Sep 30 2025]
gcc -O3
[Sep 30 2025]
gcc -O3
[Oct 10 2025]
[Oct 9 2025]
urn
-schema URIs can have a query and fragment field.[Oct 8 2025]
[Jun 9 2023]
file_type(regular)
option This
allows 'directory_member/3' to generate regular (non-directory)
files with option 'file_type(regular)
', in accordance with how
'absolute_file_name/3' treats this option.[Sep 30 2025]
gcc -O3
[Sep 30 2025]
[Sep 28 2025]
?- X = 10, D = {|json(X)||{"x": X}|} D = _{x:10}.
[Sep 30 2025]
gcc -O3
[Sep 27 2025]
python
, which is
Python3.
There isn't any support for python2 anymore, since 2020, and the windows installer does not install a python3.exe.
[Sep 30 2025]
gcc -O3
Also replaces local
error functions with calls to PL_*_error()
[Sep 30 2025]
gcc -O3
[Sep 30 2025]
gcc -O3
[Sep 30 2025]
gcc -O3
[Sep 30 2025]
gcc -O3
[Sep 30 2025]
gcc -O3
[Oct 7 2025]
[Oct 1 2025]
[Sep 30 2025]
gcc -O3
[Sep 26 2025]
[Sep 24 2025]
[Sep 23 2025]