| Did you know ... | Search Documentation: |
| Title for pldoc(default) |
[May 20 2024]
[May 15 2024]
[May 14 2024]
to swipl --help`.[May 13 2024]
[May 12 2024]
[May 4 2024]
[May 3 2024]
unsigned int for variable table bitmap. This avoids
an officially undefined shift in C.[May 2 2024]
z_crc_t used by minizip zlib This
works around a type conflict over get_crc_table(). Some headers define
this as returning `z_crc_t*` without defining this type while others
(Fedora 40) defines the function as `uint32_t*` and defines z_crc_t.
This patch makes CMake check for the z_crc_t type and, if defined,
use this definition.[Apr 30 2024]
'$VAR'(N)[Apr 26 2024]
towupper(0xff)
returns 0x9f on Windows.[Apr 25 2024]
[Apr 24 2024]
android-execinfo library.[Apr 17 2024]
[Apr 16 2024]
trace flag on
a predicate. This was due to a conflict over the predicate flags.
As the flags field was widened, we can avoid these problems.[Apr 10 2024]
max_integer_size Clang cannot handle
setjmp()/longjmp in PL_next_solution(), but it can in the simple
evalExpression() function. This does not have measurable impact on
performance, so we enabled this as default. This fixes limiting the
integer size for WASM and Clang builds on Linux. This problem did
not surface on the MacOS version.[Apr 8 2024]
[Apr 6 2024]
void* we now use table_key_t and
table_value_t. These types are also introduced in the development
series, where the type changes.[Apr 5 2024]
max_integer_size test for emscripten Doesn't handle
longjmp() correctly in release mode. Works in debug mode, but that
is not useful.[Mar 31 2024]
[Apr 3 2024]
forAtomsInClause() handling of B_*_?C instructions These called
PL_unregister_atom() on the atom, rather than the argument function.[Mar 29 2024]
[Mar 28 2024]
[Mar 27 2024]
[Mar 26 2024]
[Mar 25 2024]
pthread_setname_np()
test This used to use -Werror to ensure a compiler failure if the
number of arguments do not match the prototype, but this is already
enforced in todays compilers.[Mar 24 2024]
Dict.get(key,Default)swipl-win.exe Was broken since
recent changes keeping track of fileno. Reported by Jan Burse.[Mar 23 2024]
max_integer_size This flag limits the allocations
on behalve of bignum and rational number processing, DoS attacks
by exhausting memory using huge numbers as well as poor interrupt
handling due to lack of signal handling inside the bignum libraries.[Mar 21 2024]
[Mar 18 2024]
[Mar 15 2024]
tellString()/toldString() could fail to reclaim the temporary stream
object.[Mar 14 2024]
help(Name/Arity): handle user predicates.[Mar 13 2024]
inherit_from(Thread) option or using
PL_thread_attach_engine() (which inherits from main), we may copy
current_input or current_output from a temporary redirect.[Mar 12 2024]
[Mar 11 2024]
trace(Head, Port(Condition))[Mar 12 2024]
fileno field to the IOSTREAM struct.[Mar 11 2024]
[Mar 10 2024]
prolog:Feature requirements.[Mar 7 2024]
stream_property(S, file_no(N)) safe. This used to be
subject to race conditions between the enumerating thread and threads
that close the underlying stream. We now copy the file handle as it
was found when creating the stream to the main stream structure.[Mar 6 2024]
FALSE and document
this is valid. After comment by Peter Ludemann.[Mar 5 2024]
release() on GC or cleanup after
PL_free_blob()[Mar 4 2024]
[Mar 3 2024]
[Mar 2 2024]
[Mar 1 2024]
[Feb 27 2024]
-l file option multiple times This used to load
the first file into user (correct) but all others into the toplevel
system module. Now all files are loaded into user.[Feb 26 2024]
[Feb 23 2024]
[Feb 16 2024]
[Feb 20 2024]
[Feb 14 2024]
xdg flag. See
https://swi-prolog.discourse.group/t/ann-swi-prolog-9-2-0-stable-and-9-3-0-new-devel-series/7214/28?u=janpack app: pass --server and added search as alias to
find[Feb 12 2024]
server(Server) option. Added to
pack_install/2 and pack_list/2 and the corresponding app commands.[Feb 9 2024]
[Feb 7 2024]
[Feb 6 2024]
findExecutable() must return a Prolog path (using /). Improved debug
messages.[Feb 3 2024]
[Feb 2 2024]
[Jan 26 2024]
[Feb 1 2024]
[Jan 31 2024]
library(dom) (WASM version) bind/4: allow passing JavaScript
objects.:- include(File) The include
statements can come in more places, even in the middle of a predicate.
This changes the identifier from 'I' to 'L' to make the statement
unique in all contexts and defines handling the include statements.[Jan 30 2024]
[Jan 29 2024]
[Jan 26 2024]
[Jan 29 2024]
[Jan 28 2024]
[Jan 29 2024]
[Jan 28 2024]
[Jan 26 2024]
oneof(Values) types.oneof(Values) types.[Jan 25 2024]
[Jan 21 2024]
--installed option.[Jan 19 2024]
[Jan 24 2024]
remote(true).status(-Status)[Jan 19 2024]
rationals to claim rational number support.[Jan 18 2024]
[Jan 17 2024]
library(test_cover) from the plunit package.[Jan 16 2024]
refs/origin/HEAD.[Jan 14 2024]
'$pack_attach'/1 and '$pack_attach'/2.[Jan 13 2024]
type(term), keep(true)
If the initial type is not a term, the type must be set to term
and the value must be converted.[Jan 12 2024]
SWIPL_PACK_PATH This defines
the Prolog search path for packs at startup.path_sep. Provides access to OS path separator
(: or ; for Windows).replace(+Bool) option to attach_packs/2. Allows attach_packs/2
to clear the default package list.[Jan 11 2024]
[Jan 10 2024]
[Jan 8 2024]
[Jan 9 2024]
[Jan 8 2024]
buildenv.sh on pack build directory.swipl_add_test() to home/cmake/swipl.cmake${swipl_module_dir} in home/cmake/swipl.cmake-DSTATIC_EXTENSIONS=ON[Jan 5 2024]
[Dec 29 2023]
[Dec 28 2023]
[Dec 27 2023]
[Dec 22 2023]
[Dec 27 2023]
[Dec 21 2023]
[Dec 20 2023]
[Dec 19 2023]
size_t since recently.[Dec 18 2023]
#!.[Dec 15 2023]
library(pce).[Dec 14 2023]
[Dec 13 2023]
[Dec 12 2023]
opt_help(help(usage), Usage)
This allows to present multiple usage lines.qlf This app simplifies commandline driven management
of QLF files. Use `swipl qlf -h` for help. The command line syntax
is still unstable.[Dec 11 2023]
[Dec 9 2023]
[Dec 8 2023]
[Dec 6 2023]
[Dec 4 2023]
*.[Nov 30 2023]
[Nov 29 2023]
write_attributes as safe. This may call
portray, but local definitions are verified and global definitions
cannot be changed.[Nov 28 2023]
foreign
to library(shlib). This simplifies maintenance. The change also adds
swi(lib/Arch) for all platforms, although the default SWI-Prolog
for Windows installs the libraries in swi(bin). Possibly we can
change that too?[Nov 27 2023]
[Nov 23 2023]
[Nov 21 2023]
[Nov 19 2023]
[Nov 18 2023]
[Aug 18 2023]
[Nov 15 2023]
type(oneof(ListOfAtoms)) This patch
also cleans up the relation to create_prolog_flag/3 and existence of
a flag with some value. Adds test cases.[Nov 16 2023]
compound(atom-integer) to express a pair mapping an atom to
an integer. Also introduces constructed types such as (atom;integer)[Nov 15 2023]
-Dno-flagoptimise_apply,
which defaults to optimize, while the flag apply_macros_scope
defines whether the optimization applies to the files that import
this library or all files (default).optimise_debug flag library-only.clpfd_goal_expansion to
optimise_clpfd Improves consistencyDict.attr.[Nov 14 2023]
-O.[Nov 13 2023]
apply_macros controls when this library rewrites the
code. Values are true (old default), false (no-op), optimise
(only wwith -O) and imported (only apply to modules where it is
explicitly imported to).-Dname=value to set Prolog flags.S command to save the
current goal. Reported by Wolfram Diestel
(https://swi-prolog.discourse.group/t/stacktrace-after-hitting-t-s-u-while-browsing-through-query-solutions/6963/2)libswipl.ddl.a.[Nov 7 2023]
[Nov 6 2023]
[Nov 5 2023]
conda. Windows versions added %CONDA_PREFIX%\Library\bin and
%PREFIX%\Library\bin to dependent DLL search path. This extends
a similar work-around for MSYS2.[Nov 2 2023]
mpz_ui_pow_ui() Switch to using the 64
bit versions on all platforms. Requires some more 64 bit init/set
versions, but overflow checking intrinsic __umulh() for MSVC only
exists of 64 bit.mpz_ui_pow_ui() emulation on LibBF on systems with 32 bit long.
Breaks e.g. A is 2^65, succeeding with A = 0.[Nov 1 2023]
size_t argument (was int).size_t instead of
int)[Oct 29 2023]
swipl app-name [arg ...][Oct 31 2023]
insecure(true) to pack_install/2 to skip
the verification.[Oct 25 2023]
[Oct 24 2023]
float:right and dealing with multiple flush-right
elements in a block.[Oct 23 2023]
[Oct 18 2023]
[Oct 16 2023]
--no-signals, keep using the GC thread The
communication with the garbage collection thread is not based on
OS signals and thus there is no reason to stop using the dedicated
GC thread when not using signals. Using a separate thread improved
real-time behavior.[Oct 11 2023]
float_overflow to affect read_term/3.
With this flag setting, too large floats are read as infinity rather
than raising a syntax error.[Oct 9 2023]
[Oct 8 2023]
[Oct 5 2023]
[Oct 4 2023]
open_count to 1, causing
hthe attach/destroy cycle in the main thread to kill the main thread.[Oct 2 2023]
[Oct 1 2023]
[Sep 29 2023]
[Sep 28 2023]
[Sep 25 2023]
[Sep 18 2023]
[Sep 17 2023]
fillbuf() return with an error immediately and
(2) do not abort the main query loop if we get an abort request.[Sep 16 2023]
[Sep 12 2023]
evalExpression()[Sep 11 2023]
[Sep 10 2023]
clearNumber() Notably improves performance for
float arithmetic.[Sep 8 2023]
[Sep 7 2023]
<term.h> Reported
by Matthias Gondan after failing build for CRANCVT_INTEGER handling Broken
in 2ac1553770ac1a9d6753b8b6e72ac2028815a028[Sep 6 2023]
list_or_partial_list(Type)[Sep 5 2023]
toplevel_var_size
is 0[Sep 4 2023]
[Sep 1 2023]
trace(Head, Ports) Got getting location
of predicate wrong and ansi_hyperlink/3 printed the URL rather than
the label if the terminal does not support hyperlinks.[Aug 30 2023]
[Aug 29 2023]
src, but
using some backends there can be a configuration directory in between.[Aug 28 2023]
bf_set_ui(): uint32_t >> 32 is undefined.[Aug 27 2023]
pthreads for threading. - Port atomic operations
to use teh MSVC _Interlocked* intrinsics - Sync thread config for
swipl-win.exe with libswipl.dll.[Aug 26 2023]
[Aug 28 2023]
[Aug 20 2023]
free() for LibBF memory management. LibBF uses
realloc(ptr,0) rather than free, but this is not-portable and
flagged by the latests versions of valgrind.[Aug 22 2023]
[Aug 21 2023]
[Aug 16 2023]
[Aug 15 2023]
[Aug 11 2023]
-fvisibility=hiddeninstall_t This allows
compiling plugins with gcc -fvisibility=hidden, reducing the risc
for symbol conflicts and reducing load time.[Aug 9 2023]
[Aug 7 2023]
[Aug 3 2023]
[Aug 2 2023]
[Aug 1 2023]
[Jul 28 2023]
PL_S_NOT_INNER when acting on non-inner query
This return code may be generated by PL_next_solution(), PL_cut_query()
and PL_close_query(). This is a first step making the query interface
more robust against misuse.[Jul 26 2023]
[Jul 25 2023]
PL_BLOB_NOCOPY typed blob, calling the release() function
immediately.[Jul 23 2023]
[Jul 21 2023]
[Jul 18 2023]
strerror() These
strings are in the current locale and must thus be converted to
Unicode for generating the Prolog exeption.[Jul 17 2023]
[Jul 15 2023]
[Jul 12 2023]
[Jul 7 2023]
[Jul 5 2023]
term.h is not
provided Reported to happen on MacOS using clang-15. The status of
tgetent() that supports these predicates is rather unclear. Docs say
they might be discontinued, so more extensive checking that they are
really available seems justified.[Jul 3 2023]
iso property.[Jun 5 2023]
xref_defined(Src, Head, How) succeed (also) with How = dcg for DCG
grammar rules.[Jun 3 2023]
[May 31 2023]
[May 30 2023]
[May 25 2023]
library(macro).[May 24 2023]
[May 22 2023]
[May 20 2023]
[May 17 2023]
det and =>. Expandable.[May 16 2023]
[May 15 2023]
[May 3 2023]
[May 2 2023]
[May 1 2023]
[Apr 26 2023]
directory and directory(+Access).[Apr 25 2023]
auto_indent_arguments(Int) With this option
(defaults to 4), dicts and compounds that are too wide ands whose
funtor is at least twice this width, have their arguments printed on
the next line.[Apr 21 2023]
-DSTATIC_EXTENSIONS=ON, drop usage of dlopen()
This is required for recent versions of Emscripten that give a runtime
error on the usage of dladdr().[Apr 20 2023]
[Apr 19 2023]
[Apr 18 2023]
[Apr 14 2023]
answer_write_options flag.[Apr 12 2023]
toplevel_residue_vars.clp(fd). Patch by @triska for Scryer Prolog.[Mar 26 2023]
Domain error: `foreign_return_value' expected, found `-1'.
Document that invalid names cause silent failure.[Mar 24 2023]
cputime and infereneces to include completed
"child threads". This patch causes threads to keep track of their
"creator" thread. If the creator still exists when a thread dies,
the time and inferences are recorded with the creator and reflected in
the statistics keys. The new keys self_cputime and self_inferences
provide the original.-DSTATIC_EXTENSIONS=ON, do not install the
libraries. This implies plugins are not installed as *.a files
and libswipl.a is not installed. Only bin/swipl and the Prolog
libraries and support files are installed.[Mar 23 2023]
[Mar 22 2023]
[Mar 16 2023]
[Mar 13 2023]
[Mar 10 2023]
dladdr() if not available.[Mar 9 2023]
sample_rate(+Rate) and ports(+Ports).[Mar 7 2023]
[Mar 5 2023]
throw(Exception) rather than exception(Exception). Compatibile
with e.g. call_time/3.-DMULTI_THREADED=OFF -DENGINES=ON This
provides engines without threads. This is merely a proof of concept.
It proofs that the code changes are quite minimal. A full version
requires more work:[Mar 4 2023]
linger_always() and linger().[Mar 5 2023]
[Mar 4 2023]
sleep(0) just does sched_yield() if possible.[Mar 3 2023]
[Mar 1 2023]
<csymf><csym>*.[Feb 28 2023]
[Feb 27 2023]
[Feb 24 2023]
\ quoted without character_escapes
should not double the \. This bug was introduced
with cbe691f8af61ccaf466147868a316b96c110fedb to "fix"
term_to_atom('a\\b', A) to produce A = 'a\\b' (which is
quoted again by the toplevel to produce A = '\'a\\\\b\''.
The issue is that term_to_atom/2 using PL_write_term() with
PL_WRT_QUOTED, but not PL_WRT_CHARESCAPES. There is now
a new flag PL_WRT_NO_CHARESCAPES. If either flag is given, we
explicitly enable or disable character escapes. If none is given,
the behaviour depends on the global (module user) value of the
character_escapes flag.[Feb 26 2023]
debug flag. Note that we cannot ask for this flag as the
hook runs in "nodebug" mode. As the change is incompatible anyway,
we also move the hook to the prolog module where the modern system
hooks live. The new argument is used by library(prolog_stack) to make
catch/3 behave as catch_with_backtrace/3 when in debug mode if the
"guard" debug is defined (default). If this is not desired, use[Feb 23 2023]
throw(Error).[Feb 22 2023]
charset(openbsd), implementing the
OpenBSD alphabet for base64 encoding Needed for bcrypt implementation
in packages/ssl[Feb 21 2023]
[Feb 20 2023]
[Feb 19 2023]
[Feb 18 2023]
[Feb 13 2023]
usr/bin/swipl for the command.[Feb 12 2023]
[Feb 10 2023]
[Feb 9 2023]
halt(abort) really ignore halt cancellation.[Feb 8 2023]
[Feb 6 2023]
[Feb 1 2023]
mpz_rootrem() optimization Tripped over case
when rop same as OP in degenerate case. Also replace mpz_sub_ui with
mpz_add_si since argument op_sign is signed.[Jan 30 2023]
[Jan 27 2023]
tmp_dir from the predicates that
create temporary files.[Feb 14 2023]
[Feb 13 2023]
usr/bin/swipl for the command.[Feb 12 2023]
save function,
propagating a possible exception. Documented the save and load
functions. Joined work by Peter Ludemann and Jan Wielemaker.[Feb 10 2023]
[Feb 9 2023]
halt(abort) really ignore halt cancellation.[Feb 8 2023]
[Feb 6 2023]
[Feb 4 2023]
-DUSE_GMP=OFF -DUSE_LIBBF=OFF[Feb 1 2023]
mpz_rootrem() optimization Tripped over case
when rop same as OP in degenerate case. Also replace mpz_sub_ui with
mpz_add_si since argument op_sign is signed.[Jan 31 2023]
[Jan 30 2023]
[Jan 25 2023]
[Jan 30 2023]
[Jan 27 2023]
tmp_dir from the predicates that
create temporary files.y.y.[Jan 26 2023]
[Jan 23 2023]
float_undefined set to nan, 0/0 must return NaN.[Jan 20 2023]
t integer size specified
for ptrdiff_t.[Jan 19 2023]
[Jan 17 2023]
[Jan 16 2023]
[Jan 14 2023]
[Jan 26 2023]
[Jan 23 2023]
float_undefined set to nan, 0/0 must return NaN.[Jan 8 2023]
[Jan 4 2023]
mpq_set_double (rationalize/1)[Jan 19 2023]
[Jan 20 2023]
t integer size specified
for ptrdiff_t.[Jan 17 2023]
-DCHECK_FORMAT. Introduces SdprintfX() and
similar functions that are not checked because they use one of the
extensions such as %Us or %Ws (UTF-8/wchar_t string).[Jan 19 2023]
[Jan 17 2023]
[Jan 16 2023]
[Jan 15 2023]
[Jan 14 2023]
[Jan 13 2023]
cmpFloatNumbers() for NaN.[Jan 12 2023]
[Jan 11 2023]
[Jan 10 2023]
[Jan 5 2023]
[Dec 28 2022]
[Dec 19 2022]
msys2 to detect the MSYS2 installation.[Jan 13 2023]
cmpFloatNumbers() for NaN.[Jan 12 2023]
[Jan 11 2023]
[Jan 10 2023]
[Jan 5 2023]
[Dec 28 2022]
[Dec 19 2022]
msys2 to detect the MSYS2 installation.[Dec 18 2022]
between
saved_environment and top_frame`[Dec 16 2022]
cmpFloatNumbers() to fail due to
gcc optimization using internal wide float registers rather than
comparing 64 bit doubles. Not entirely sure this is our mistake
or within GCC's claim to work with the extended float registers.
Bottom line is that comparing a double (from memory, so 64 bits) to
the result of a computation may return non-equal even if the extended
float when forced to 64 bits is equal. This problem surfaced in i386
using gcc 12.2.0.[Dec 15 2022]
[Dec 12 2022]
encoding from locale name. Internal
UTF-8 decoding is typically faster than the C library multibyte
operations.[Dec 11 2022]
[Dec 8 2022]
[Dec 6 2022]
[Dec 5 2022]
[Dec 4 2022]
backtrace().parent_frame
runs out of stack. Careful review of this function after reported
crash on 32 bit arm. Might be due to a stack shift in this code,
but I doubt it and cannot reproduce the issue. Surely the current
code is safer.parent_frame(-Next)[Dec 2 2022]
user_output and
user_error.[Dec 1 2022]
[Nov 30 2022]
#ifdef code in favour of <inttypes.h>
on all platforms.[Nov 29 2022]
libswipl
patches[Nov 28 2022]
[Nov 27 2022]
libswipl flag if it is read-only (and thus
reliable).[Nov 26 2022]
swipl --dump-runtime-variables to provide the name of the
shared object in PLLIBSWIPL.libswipl based on dladdr() when
possible.[Nov 25 2022]
[Nov 24 2022]
[Nov 23 2022]
atos
as replacement for addr2line.[Nov 21 2022]
[Nov 19 2022]
pid on some 64 bit platforms.asan when the system is compiled
with AddressSanitizer.[Nov 16 2022]
-DSWIPL_INSTALL_IN_LIB, make sure that the
CMake export files can be relocated.[Nov 14 2022]
toList(). Emacs whitespace updatePKG_CONFIG_PATH to build
tools[Nov 13 2022]
[Nov 9 2022]
[Nov 8 2022]
max_rational_size_action. When float, try to continue after
float conversion, else raise a resource error.[Nov 7 2022]
mpz_sgn() over mpz_cmp_ui() to 0.[Nov 4 2022]
[Nov 3 2022]
target_link_swipl() now removes the lib prefix.[Oct 30 2022]
[Oct 26 2022]
walk_meta_predicates(+Boolean)
to prevent the code walker from considering meta-predicates.
There are few cases where this is interesting, but it was needed
for constructing a s(CASP) dependency graph.[Oct 24 2022]
ex()
functions.[Oct 22 2022]
[Oct 21 2022]
[Oct 19 2022]
[Oct 20 2022]
[Oct 11 2022]
[Oct 18 2022]
[Oct 17 2022]
-home
to print the home directory and exit (used to ignore and run).[Oct 15 2022]
user module.CMAKE_EXECUTABLE_FORMAT. As all
this is meaningless with statically linked WASM version we do not
set the executable_format and libswipl flagson_edge which is similar to
on_trace, but provide easier to understand source locations.[Oct 14 2022]
[Oct 12 2022]
mpz_to_double()) to_nearest, half to
even rounding and also a couple of minor cosmetic changes.[Oct 13 2022]
[Oct 11 2022]
[Oct 12 2022]
eval() such that
it also works on Node and raise a Prolog exception in case something
goes wrong.[Oct 11 2022]
[Oct 10 2022]
library(wasm)._ := eval(String).
This also makes this work in Node.call() and Prolog.forEach() call by default in the
user module rather than system.[Oct 12 2022]
[Oct 7 2022]
[Oct 9 2022]
[Oct 8 2022]
[Oct 7 2022]
'[|]'(h,t).[Oct 6 2022]
query().once() easier to
handle.[Oct 4 2022]
[Oct 3 2022]
mpz_fdiv rounding modes.[Sep 23 2022]
mpz_fdiv() with a version that rounds to nearest.mpz_to_double()[Oct 2 2022]
[Oct 1 2022]
swipl --abi-version: VM signature hash depended on big/little
endian.[Sep 28 2022]
int32() for consistency.[Sep 27 2022]
[Sep 26 2022]
user
by calling predicate_property(user:Goal, ...).[Sep 24 2022]
stream_property(S, error(Boolean)).[Sep 25 2022]
[Sep 23 2022]
(?- goal).[Sep 22 2022]
[Sep 21 2022]
[Sep 22 2022]
builtin_mul_overflow() when available to do fast
overflow-safe multiplication.[Sep 21 2022]
toJSON()consult() now calls load_files/1, allowing it
to handle a mixture of local files, URLs as well as Prolog sources
and .qlf files. The sources are now processed sequentially and
are no longer materialised as files.[Sep 16 2022]
[Sep 20 2022]
include(user). This option allows for
compiling an application into a single Prolog .qlf file.if(Cond) is extended with exists to
silently not load a file if it does not exist.[Sep 19 2022]
Response.blob()
and is used by the WASM compilation hook to allow loading `.qlf`
files from URLs.[Sep 18 2022]
PL_BLOB_UNIQUE we
good reuse an atom after freeing the trie and creating a new one at
the same address. As we save the symbol anyway, making use of unique
atoms is meaningless here.[Sep 17 2022]
confirm() function.HEAD request.[Sep 15 2022]
[Sep 16 2022]
SIGINT called the handler asynchronously.
This should only happen if SIGINT is bound to the debug
handler. Reported by Raivo Laanemets.[Sep 15 2022]
instanceof() to expression evaluation.library(dom), providing Tau-Prolog compatible DOM
interaction. Partial implementation.load_string() and Prolog.load_scripts()[Sep 14 2022]
object --> id mapping<js_Class>(Ref)
rather than <js_object>(Ref).[Sep 13 2022]
[Sep 12 2022]
[Sep 11 2022]
forEach() and
Prolog.abort() to remain responsive when running slow queries.[Sep 12 2022]
[Sep 10 2022]
[Sep 9 2022]
swipl-web.js.[Sep 8 2022]
prolog.js to use ES6 class syntax
for the Prolog class.get_integer() to return values as JavaScript number when
possible and JavaScript bigint otherwise. Updated Prolog.toProlog()
to convert bigint to a Prolog large integer.[Sep 7 2022]
nul. Reported by Paulo Moura.[Sep 6 2022]
[Sep 7 2022]
[Sep 6 2022]
open(pipe(Command), ...) as popen() is a dummy.[Sep 5 2022]
-c to interpret the
`--emulator=file flag (or emulator(Emulator) option) independently
from the `--stand-alone option. This allows creating non-stand-alone
executables that use a specific emulator path.[Sep 4 2022]
-DINSTALL_TESTS, install foreign plugins that
only support testing.[Sep 3 2022]
[Sep 2 2022]
opendir(), etc. emulation. Use more efficient file
finding and avoid a possible inifinite loop.[Sep 1 2022]
wstati64() cannot handle long file
names."\\?\" or "\\?UNC\"
prefix.dlopen() emulation path handling.[Aug 31 2022]
mbscoll(). The latter did not work anyway because
the pattern and file names use UTF-8 rather than native multibyte.towlower() as this function truncates to 16 bits.
Assumes there are no letters with case above 0xffff.wchar_t to UTF-8 for surrogate
pairs. Fixes e.g. ?- string_bytes('\U0001f600\U0001f604', L, utf8).user_error. The patch also writes output to
user_error in larger chunks. Note that the default Windows console
does not handle surrogate pairs. The Windows Terminal does.[Aug 30 2022]
path_max to get access to the manimum file name
length on the OS.[Aug 29 2022]
[Aug 25 2022]
[Aug 23 2022]
[Aug 22 2022]
[Aug 21 2022]
[Aug 20 2022]
[Aug 19 2022]
cmake -DSTATIC_EXTENSIONS which adds selected
extensions (packages) to libswipl. In this scenario dynamic linking
is disabled and use_foreign_library/1 is adjusted to call the already
existing install function of the extension.[Aug 18 2022]
[Aug 17 2022]
query(String).message_to_string()[Aug 11 2022]
[Aug 9 2022]
setTimeout()[Aug 8 2022]
[Aug 6 2022]
heartbeat, the
multifile predicate heartbeat/0 is called every N inferences.[Aug 8 2022]
[Aug 3 2022]
-s ALLOW_MEMORY_GROWTH=1 to allow for bigger stacks.ttymode() to Prolog JavaScript API.[Aug 2 2022]
[Jul 31 2022]
[Jul 28 2022]
[Jul 27 2022]
[Jul 28 2022]
[Jul 27 2022]
text encoding cannot
represent them.[Jul 20 2022]
[Jul 19 2022]
[Jul 16 2022]
[Jul 11 2022]
xref flag while reading the
file header. Avoids unwanted term expansion.[Jul 10 2022]
cputime now actually returns
walltime since the start of Prolog. This allows for basic performance
evaluation on CPU based tasks. WASM does not provide primitives to
access the actual CPU time usage.[Jul 9 2022]
ascii: avoid crash and raise an exception
if the text cannot be represented using ASCII.string_codes(+,-,octet) (crashed on assertion error)[Jul 8 2022]
encoding(Encoding) and
bootstrap base64/2 and base64url/2 from this predicate. base64url/2
now used UTF-8 encoding (MODIFIED).[Jul 7 2022]
[Jul 2 2022]
[Jul 1 2022]
[Jun 30 2022]
[Jun 29 2022]
[Jun 29 2022]
[Jun 28 2022]
[Jun 27 2022]
[Jun 26 2022]
[Jun 28 2022]
[Jun 26 2022]
[Jun 24 2022]
[Jun 23 2022]
[Jun 22 2022]
decimal.[Jun 20 2022]
` :- module(m,
[p/1]). :- if(current_prolog_flag(windows,true)). :- export(win_q/2).
:- endif. `[Jun 15 2022]
\u0000 character at the end of variables of
1023 bytes or longer because the 0-byte is not added. Paul Singleton.[Jun 12 2022]
(.[Jun 11 2022]
priority(Priority) option is given.[Jun 9 2022]
[Jun 8 2022]
[Jun 2 2022]
[Jun 1 2022]
[Jun 2 2022]
[Jun 1 2022]
[May 23 2022]
%c[May 18 2022]
[May 17 2022]
[May 15 2022]
+Debug denoting whether the
system was in debug mode when the breakpoint was triggered.[May 14 2022]
character_range property[May 13 2022]
[May 12 2022]
[May 10 2022]
ldexp() rather than pow() for multiplying a float with
an integral power of 2. mpz_fdiv(): replace calls to pow() function
by ldexp()pow() (^/2 and **/2) ar_pow(): Re-implement
float**mpq case[May 9 2022]
acg_close_streams.[Apr 24 2022]
[May 6 2022]
[May 5 2022]
vmi_builtin that controls whether or not built-in
predicates that are defined in the VM are handled in the VM or called
as normal predicates. The latter was previously associated with debug
mode, but has also other purposes, such as in coverage analysis or
when using trace/1.[May 4 2022]
[May 3 2022]
[Apr 23 2022]
[Apr 27 2022]
[Apr 21 2022]
[Apr 20 2022]
[Apr 19 2022]
[Apr 17 2022]
[Apr 16 2022]
[Apr 15 2022]
[Apr 14 2022]
[Apr 13 2022]
[Apr 12 2022]
[Apr 8 2022]
[Apr 7 2022]
newline(Mode).[Apr 6 2022]
variable_names(Names) option.[Apr 5 2022]
[Apr 4 2022]
[Apr 3 2022]
[Apr 2 2022]
[Apr 1 2022]
swipl-ld didn't pass -I for SWI-Prolog.h any more.[Mar 31 2022]
modf()
in MinGW[Mar 30 2022]
[Mar 29 2022]
[Mar 28 2022]
[Mar 27 2022]
pipe(Command) limitations.popen() instead of the broken
emulation in src/os/windows/popen.c[Mar 26 2022]
h => X = ..., rest_body:
the unification is not inlined.[Mar 25 2022]
[Mar 24 2022]
[Mar 23 2022]
[Mar 22 2022]
detect_leaks1` when
build with ASAN to debug memory leaks and avoid unloading foreign
libraries using dlclose().[Mar 21 2022]
[Mar 20 2022]
assert()
calls.bulk mode for transactions was not actually passed.[Mar 18 2022]
cat program.[Mar 17 2022]
[Mar 16 2022]
user_error.[Mar 15 2022]
[Mar 14 2022]
[Mar 13 2022]
[Mar 12 2022]
[Mar 15 2022]
[Mar 10 2022]
po(Compare) argument.[Mar 9 2022]
visible for zero-argument goals
could raise an exception.[Mar 8 2022]
debug_adapter in the GNU Emacs Interface page[Mar 7 2022]
[Feb 28 2022]
[Feb 25 2022]
[Feb 24 2022]
[Feb 19 2022]
GD->signals.sig_alert consistent on whether SIG_ALERT is defined.[Feb 18 2022]
[Feb 16 2022]
dlsym(),
like WASM, to expose the malloc-implementation predicates, so long
as the linker is capable of resolving weak symbols.[Feb 17 2022]
p(X), X = aap(N) => writeln(N).[Feb 15 2022]
[Feb 14 2022]
[Feb 9 2022]
[Feb 4 2022]
[Feb 3 2022]
swipl-win to start in ~/Documents.encoding flag to utf8 if LC_CTYPE is set to
UTF-8.[Feb 2 2022]
[Jan 31 2022]
[Jan 30 2022]
[Jan 28 2022]
[Jan 27 2022]
[Jan 26 2022]
~@, running a goal now discards possible
bindings created by the goal. Compatibility with SICStus.~s, e.g., ~3s truncates
the string to the given number of characters.set_prolog_flag(threads, Val) deadlocked. Paulo Moura.[Jan 25 2022]
[Jan 24 2022]
left_margin option
(fix) and make its default the current column.[Jan 22 2022]
[Jan 21 2022]
[Jan 19 2022]
[Jan 18 2022]
[Jan 17 2022]
[Jan 16 2022]
[Jan 14 2022]
[Jan 12 2022]
global(Boolean) to explicitly install
a package for the user or globally.[Jan 11 2022]
[Jan 10 2022]
[Jan 9 2022]
[Jan 8 2022]
arg xf xf (cascading postfix operators) where the priority
of the first is higher than the second must generate a syntax error
rather than an incorrect term.[Jan 7 2022]
[Jan 6 2022]
swipl loads init.pl from the current
directory if this file exists. It is not advised to load customisation
files from the current directory. We now only load init.pl when
explicitly called using swipl -f init.pl while an implicit init
file is only loaded from the user_app_config path alias.[Jan 5 2022]
s(CASP). This patch also
improves out-of-memory handling and adds a test suit for copy_term.[Jan 4 2022]
[Jan 3 2022]
ansi(Style, Fmt, Arg) if Arg is not a list.[Jan 2 2022]
[Jan 1 2022]
[Dec 31 2021]
[Dec 27 2021]
[Dec 23 2021]
mkconj((a,b),c, Conj) Conj = (a,b,c)[Dec 22 2021]
fullstop(Boolean) and nl(Bool). Also lots
of documentation restyling and removed old conditional compilation.[Dec 21 2021]
[Dec 20 2021]
[Dec 19 2021]
fat.[Dec 18 2021]
[Dec 17 2021]
setlocale() for Monterey.int.[Dec 16 2021]
[Dec 15 2021]
[Dec 14 2021]
datime(-When,
+Datime).[Dec 13 2021]
[Dec 11 2021]
url(Location) message line elements throughout.url(Location) and url(URL, Label) message line
elements.[Dec 10 2021]
[Dec 9 2021]
clause attribute to find the next
candidate clause.on_warning must be print.[Dec 8 2021]
[Dec 6 2021]
brace_terms behavior was the inverse
of the documentation. As the docs describe what one would expect and
is consistent with YAP, the implementation is fixed. We do not expect
this option to be frequently used. Code using brace_terms(true) must
be updated to use brace_terms(false). If you need to do a runtime
check to beor conditional compilation compatible with older versions,
one can use this condition to verify the correct new behavior.[Dec 5 2021]
[Dec 1 2021]
[Dec 4 2021]
quote_non_ascii. This option is enabled
by default for write_canonical/1.PL_WRT_QUOTE_NON_ASCII flagbrace_terms option as false.[Dec 3 2021]
library(sockets) emulation.[Dec 2 2021]
[Dec 1 2021]
pack_version(2). in pack.pl.
Version 2 changes the names of the exported environment variables that
control building the pack. This was necessary to avoid conflicts
with build environments. As an incompatible change was required
anyway we took the opportunity to rationalise all the variable names.[Nov 29 2021]
test(Boolean) to skip the pack tests.[Nov 28 2021]
[Nov 26 2021]
[Nov 25 2021]
[Nov 24 2021]
number[Nov 22 2021]
PL_prof_type_t, the interface to
extend the SWI-Prolog profiler. Foreign code using this may need to
be updated. Most likely only used by xpce.[Nov 20 2021]
[Nov 18 2021]
[Nov 17 2021]
[Nov 16 2021]
[Nov 15 2021]
[Nov 14 2021]
[Nov 12 2021]
[Nov 11 2021]
-DCMAKE_BUILD_TYPE=Type, which may be set from
the options to pack_install/2.cmake_build_type.[Nov 10 2021]
<home>/cmake/swipl.cmake that provides generics to
use CMake for building SWI-Prolog packs.[Nov 8 2021]
[Nov 10 2021]
[Nov 8 2021]
and cmake --install` for the build and install steps rather
than calling make, ninja, etc. directly. Suggested by Wouter Beek.[Nov 7 2021]
sigaltstack() doesn't go
with ASAN. Results in the error below. Disabled guarding the C
stack when compiling using address sanitizer. ``` =101190=ERROR:
AddressSanitizer failed to deallocate 0x2000 (8192) bytes at
address 0x6250000b1900 =101190=AddressSanitizer CHECK failed:
../../../../src/libsanitizer/sanitizer_common/sanitizer_posix.cc:60
"(("unable to unmap" && 0)) != (0)" (0x0, 0x0)[Nov 3 2021]
ninja builds when using CMake[Nov 2 2021]
pack_install(.) to add the local
directory to the pack registry and build it. Also add option
link(true) and rebuild(When) to provide more fine control over
the build.[Oct 31 2021]
setjmp() instead of sigsetjmp() to reduce the overhead
of the C-stack guarding.[Oct 30 2021]
[Oct 28 2021]
[Oct 27 2021]
sigaltstack().[Oct 26 2021]
[Oct 25 2021]
pl_get_uint64() for GMP numbers on 32-bit systems.[Oct 24 2021]
options_after_arguments(false) option to
stop processing options after the first positional argument.[Oct 22 2021]
tag(Tag) property to change ERROR
and/or Warning.spy and/or nospy
are defined as operators.sem_timedwait() such as MacOS.sem_timedwait() by avoiding a polling loop.
This typically saves 0.1 second on the elapsed time for short lived
executables.[Oct 21 2021]
--no-pce together with -c (compile) to produce
a state that does not include xpce.retract((a:-true)). Reported by Fernando
Sáenz-Pérez.[Oct 20 2021]
term[Oct 19 2021]
~:|, the colon modifier for
tab stops to insert a newline if the current column already passed
the tab stop.[Oct 18 2021]
[Oct 19 2021]
[Oct 18 2021]
help(Help) value.[Oct 14 2021]
[Oct 11 2021]
sig_atomic. Currently only for the
built-in sig_atomic/1.[Oct 10 2021]
[Oct 9 2021]
[Oct 8 2021]
[Oct 10 2021]
library(backcomp).[Oct 11 2021]
wait_preds option accepted non-predicate
indicators.[Oct 6 2021]
swipl --abi-version crashed.[Oct 5 2021]
[Oct 1 2021]
pc of prolog_choice_attribute/3[Sep 30 2021]
[Sep 29 2021]
[Sep 28 2021]
[Sep 27 2021]
[Sep 24 2021]
[Sep 23 2021]
[Sep 21 2021]
[Sep 16 2021]
[Sep 15 2021]
[Sep 14 2021]
[Sep 11 2021]
[Sep 8 2021]
customize/edit command to accept --no-wait option.
Requires latest xpce package. Can by used with editor plugin for
terminator.[Nov 28 2023]
[Nov 26 2023]
[Nov 24 2023]
[Nov 22 2023]
[Nov 23 2023]
[Nov 22 2023]
[Nov 21 2023]
system(s), joining the data and generating the chart.[Nov 22 2023]
[Nov 19 2023]
[Aug 7 2023]
[Aug 2 2023]
[Sep 6 2022]
[Jul 31 2023]
swipl.rc This file is only installed
with xpce.[Apr 19 2023]
[Dec 21 2022]
int64_t seems the easiest way out.[May 9 2022]
[May 6 2022]
[Apr 16 2022]
free_archive()[Apr 12 2022]
[Apr 9 2022]
[Dec 21 2023]
[Aug 23 2022]
[Dec 5 2023]
[Nov 14 2023]
[Aug 9 2022]
wasm-preload[May 5 2024]
[Mar 23 2024]
[Jan 25 2024]
[Jan 12 2024]
[Dec 12 2023]
exec_program() with
execute_process()[Dec 10 2023]
'' to be the same as
/.''[Nov 21 2023]
[Nov 9 2023]
localhost on Windows.localhost, mapping it directly to the IP address 127.0.0.1.[Nov 6 2023]
[Nov 4 2023]
stream(S) work. This patch
fixes the options stdin(stream(S)), etc. when S denotes a file stream
by enabling inheritance for the handle before calling ProcessCreate().[Nov 3 2023]
user_input (file_no 0) for stream(S)[Aug 30 2023]
[Aug 29 2023]
[Aug 11 2023]
hashstream.so[Aug 6 2023]
[May 23 2023]
[Apr 3 2023]
[Feb 28 2023]
[Feb 26 2023]
[Feb 13 2023]
[Feb 7 2023]
[].[Feb 6 2023]
[Feb 5 2023]
[Feb 1 2023]
[Jan 29 2023]
[Jan 26 2023]
&=; in the query string.[Jan 17 2023]
[Jan 9 2023]
[Nov 23 2022]
[Sep 26 2022]
[Sep 5 2022]
[Sep 4 2022]
[Aug 30 2022]
relative_file_name(Dir, SameDir, Rel) to return Rel as `.`
rather than ''.[Aug 20 2022]
[Aug 19 2022]
[Jul 7 2022]
[Jun 28 2022]
[Apr 2 2024]
[Mar 25 2024]
tell(), PlStream::seek() Also fixes initilization
errors. Uses PL_system_error() to signal misuse rather than assert()[Mar 23 2024]
compare() and acquire() cannot raise a Prolog exception.
This should print a message and abort the process.[Mar 15 2024]
[Mar 2 2024]
[Feb 23 2024]
[Feb 20 2024]
[Feb 19 2024]
[Jan 14 2024]
[Jan 2 2024]
pre_delete()[Dec 17 2023]
[Nov 2 2023]
check_rc(). Seems not all C++ compilers can deal
with this.[Oct 21 2023]
unwrap() method and PlUnwrapPtr()[Oct 19 2023]
[Oct 4 2023]
[Sep 17 2023]
[Sep 11 2023]
[Sep 7 2023]
[Sep 1 2023]
[Aug 18 2023]
[Aug 7 2023]
[Aug 2 2023]
[Jul 26 2023]
%p without leading 0x.[Jul 25 2023]
[Jul 16 2023]
[Jun 11 2023]
[Apr 29 2023]
[Apr 8 2023]
verify() methods removed from
PlAtom, PlTerm, etc. - the wrapper functions do the checking. Some
executable code has been moved to SWI-cpp2.cpp - can be inlined,
if desired. PlException is now a subclass of std::exception,
not a subclass of PlTerm. PlTypeError, PlDomainError, etc. are no
longer subclasses of PlTerm, but are functions for creating suitable
PlException objects. The string comparison operators are deprecated;
use as_string() and std::string comparison instead, which allows
specifying the encoding. Added PlRecord, PlRecordExternal, PlControl
(used by PREDICATE_NONDET), PlStream. Fixed numerous bugs and
misfeatures; added tests.[Mar 24 2023]
[Mar 10 2023]
[Mar 5 2023]
[Feb 8 2023]
[Dec 6 2022]
[Dec 5 2022]
[Dec 4 2022]
[Dec 3 2022]
[Dec 2 2022]
[Nov 29 2022]
[Nov 26 2022]
[Nov 24 2022]
[Nov 22 2022]
[Oct 20 2022]
test_ffi. This avoids
a conflict (and confusion) with the ffi pack to run the tests
interactively.[Oct 18 2022]
[Oct 10 2022]
[Oct 6 2022]
c_str() as this is unsafe.[Oct 4 2022]
[Sep 24 2022]
record(), PlTerm::write(), PlTerm_recorded,
PlRewindOnFail(), PlStringBuffers Removed PlTerm::unify_*_check()
Added example code for backtracking predicate that gets info on int
types Fixing integer overloading for win32, MacOS - remove many of the
overloaded methods and instead use names derived from the underlying
SWI-Prolog PL_put_*() and PL_unify*()[Sep 6 2022]
[Sep 5 2022]
[Jul 7 2022]
unify_XXX_ex() methods -
deprecated assignment operator for term unification - replaced by
unify_XXX() and unify_XXX_ex() methods - added some support for
std::string, std::wstring - and additional support for wchar_t -
added some more methods that allow using PlTerm:xxx(...) instead of
PL_xxx(t.get_term_t(), ...); also for PlAtom - added PlTerm::type(),
PlTerm::is_variable(), etc. methods - moved atom_t handle into private
PlAtom, term_t into private PlTerm - added get_atom_t(), get_term_t() -
added verify(), is_valid(), reset() methods - some refactoring, e.g.,
PlTerm::check(), PlTerm::null - refactored the integer "getters"
to get around problems with C++ built-in conversions and integer
promotion. - refactored comparison methods, added PlTerm::compare() -
replaced "int" as return type by "bool" in many places - use common
C++ naming practice for class fields (suffixed by "_") - added unit
tests - moved examples from test.cpp to unit tests file (cpp4pl.cpp,
test_cpp.pl) - used C++ initializer lists where possible - added
[[nodiscard]] to many methods - added [[deprecated]] to some methods -
(internal: used a template class to handle some boilerplate)[Jul 3 2022]
[May 19 2024]
[May 17 2024]
text/event-stream. Still needs documenting.[May 12 2024]
not_found(+Action) Using
not_found(404), reply using http_404/1 if the requested file does
not exist.[Apr 29 2024]
width(0).
If the option width(0) is provided, do not emit a space after a
"," delimiting object fields. This implies spacing is minimal.
This is a requirement for signing JSON documents.string([Type], String) data[Apr 24 2024]
cert_verify_hook option).[Apr 11 2024]
[Mar 10 2024]
main This thread is
started lazily from an HTTP worker and would by default interit the
temporary CGI stream as current_output. By interiting from main we
can safely print debug messages and avoid stream existence exceptions.[Mar 9 2024]
granularity This setting controls
how precisely we manage idle time updated and session timeouts.
This is notably important when using an external (Redis) database
for sharing session information to reduce traffic.[Mar 8 2024]
guarded(false) option, the created web socket is now
only left open if the passed Goal succeeds.[Mar 7 2024]
AF_UNIX
socketsopen_files in server stats.[Mar 6 2024]
/health with CPU time and thread satistics.
Also allows asking for specific keys only in the HTTP request, e.g.[Mar 5 2024]
library(http_server_health)[Feb 28 2024]
[Feb 26 2024]
[Feb 21 2024]
[Feb 19 2024]
[Feb 14 2024]
[Feb 8 2024]
[Jan 26 2024]
[Nov 26 2023]
DOCTYPE
and <html>.[Nov 9 2023]
[Oct 11 2023]
[Sep 6 2023]
[Aug 29 2023]
[Aug 1 2023]
[Jul 28 2023]
[Jun 20 2023]
[Jun 1 2023]
[May 31 2023]
[May 30 2023]
[May 19 2023]
[May 2 2023]
error(_,_) wrapper. With http handshake
we refer to sending and reading the header as well as, for https,
the TLS handshake.[Apr 25 2023]
application/json;
charset=UTF-8, reply_json_dict/2 used only application/json.
This is fine according to the standards, but some clients insist on
the charset. Ths patch makes all versions compatible.[Apr 24 2023]
[Mar 7 2023]
[Mar 2 2023]
[Feb 28 2023]
[Feb 25 2023]
[Feb 10 2023]
headers(-Reply) option to add
status_code(Code) to the headers.[Feb 9 2023]
[Feb 7 2023]
[Jan 27 2023]
-> 1.0Inf` syntax.[Jan 23 2023]
[Jan 11 2023]
[Jan 9 2023]
[Jan 6 2023]
library(http_unix_daemon) to broadcast http(shutdown) before
calling halt(0).http:public_scheme
or the port to find the scheme (http or https)[Jan 4 2023]
[Dec 21 2022]
[Dec 7 2022]
[Nov 23 2022]
[Sep 23 2022]
[Sep 16 2022]
[Sep 5 2022]
[Sep 1 2022]
[Aug 19 2022]
[Aug 2 2022]
.data to
application/octet-stream.[Aug 1 2022]
[Jul 10 2022]
[Jul 8 2022]
[Sep 1 2023]
[May 16 2024]
junit.jar. We'll assume version 3 and older have died by
this time.[Dec 12 2023]
exec_program() with
execute_process()[Nov 5 2023]
[Oct 16 2023]
gc_thread to false SWI-Prolog used to
disable the garbage collection thread on `--no-signals`. This was
for JPL and is removed in version 9.1.18. It is unclear why using
a separate GC thread causes the prolog_in_java test to hang.[Sep 25 2023]
[Jul 18 2022]
getSubsts() non-recursively[Jul 5 2022]
getTerm() etc. (which runs
out of JVM stack for e.g. lists of more than a few thousand members)
with a depth-unlimited non-recursive version (see Term.getLoop)
and adds a couple of JUnit tests[Jul 3 2022]
put() etc. (which runs out of JVM
stack for e.g. lists of more than a few thousand members) with a
depth-unlimited non-recursive version (see Term.putLoop) and adds a
couple of JUnit tests[Jun 22 2022]
[Mar 2 2024]
[Dec 8 2023]
[Sep 30 2023]
[Aug 29 2023]
[Aug 14 2023]
[Sep 18 2022]
[Aug 23 2022]
[Dec 8 2023]
[Aug 17 2023]
[Aug 16 2023]
[Mar 4 2023]
[Dec 12 2022]
[Sep 2 2022]
[Aug 29 2023]
[Oct 18 2023]
'TEXT' to longvarchar(Length).[Aug 31 2023]
[Jan 29 2023]
[Dec 18 2022]
HAVE_LONG_LONG. Our code does not use any of
the properties for `long int`.[Nov 23 2022]
[Aug 30 2023]
[Jul 31 2023]
[Mar 12 2023]
[Feb 7 2023]
set_prolog_flag(re_compile, true).[May 24 2022]
[Apr 6 2022]
[Apr 5 2022]
pcre_release() function is unsave as during proces cleanup the pattern
may vanish before the regular expression.[Mar 29 2022]
compare_pcres() that incorrectly resulted in equality[Mar 27 2022]
[Mar 25 2022]
[Mar 24 2022]
optimise(true) has changed - it now
calls the JIT compiler - Renamed bsr(...) and newline(...) options
to bsr2(...) and newline2(...) because the pcre2 interface has
changed - compat(javascript) is replaced by alt_bsux(true) and
extra_alt_bsux(true) - Code improvements: use uint32_t wherever
possible instead of unsigned or int - Does not use the new
pcre2_substitute() for re_replace/{4,5}, re_split/{3,4}, re_foldl/6
(however, some improvements have been made to the APIs for these). -
Added test cases[Mar 9 2022]
jittarget may return a NULL string, crashing
re_config/2. Mapped to failure.[Feb 4 2022]
[Jan 26 2022]
[Jan 22 2022]
[Nov 23 2021]
[Dec 10 2023]
[Nov 26 2023]
[Nov 22 2023]
chunk=false
we avoids the usage of findnsols (and the effects on global variables
associated with its backtracking). Initially, this was motivated by
the fact that I wanted the pengine top-level (which is recursive
in nature) to respect the chr store, but I also think it's a more
principled thing to do.[Sep 6 2023]
[Sep 16 2022]
[May 1 2024]
__text__ and **text** for strong.[Label](mailto:me@example.com) links in PlDoc[Mar 24 2024]
[Feb 28 2024]
[Dec 15 2023]
library(pce) Allows running the
documentation tools without library(pce)[Dec 12 2023]
[Dec 10 2023]
include_reexported(Bool) option.[Nov 26 2023]
[Oct 18 2023]
qualified(always) This is used by help/1
on the commandline to show documented private predicates when found
in some module.[Oct 17 2023]
[Jul 12 2023]
[May 9 2023]
[Feb 28 2023]
\url{} must escape #.[Jan 25 2023]
[Nov 23 2022]
[Nov 20 2022]
[Mar 13 2024]
[Jan 17 2024]
library(test_cover). This library is moved to the
core as library(prolog_coverage) because it has no dependencies on
the unit testing and serves more purposes.[Jan 16 2024]
library(test_cover): allow to save and restore coverage data.
This patch is a major improvement to the coverage analysis tool.
It modifies the API, although the old show_coverage/2 is still working
as it used to.set_tests_options([run(make(all))]).[Jan 12 2024]
[Dec 14 2023]
[Nov 14 2023]
[Oct 13 2023]
--on-error=status, printing an error message that does not cause
a test to fail silently ignores the message while Prolog exits with
status 1. That is hard to debug. Now, if these flags are present,
tests that emit warnings or errors are considered failed and thus
the test is printed.[Jul 26 2023]
print_message(silent, plunit(begin(Unit))) and
print_message(silent, plunit(end(Unit, Summary))).[May 1 2023]
[Mar 5 2023]
[Feb 18 2023]
[Feb 13 2023]
forall(Generator) tests that failed on an assertion considered
all subsequent generated tests to fail as well.[Feb 12 2023]
concurrent(true), keeping only jobs(Count). At
unit level, the option is maintained, but currently prints a message
that it is not supported.[Feb 10 2023]
[Feb 2 2023]
[Feb 1 2023]
plunit_<option>, e.g.
?- set_prolog_flag(plunit_format, log).[Jan 31 2023]
[Jan 30 2023]
[Jan 26 2023]
[Jan 25 2023]
jobs(Jobs) option. - Added output(on_failure) (default)
to only emit console output
of a test when it failed. - Added two output formats:
tty, which is the default it the output is a tty reuses the
current output line on success, only displaying failed tests.log, which maintains all output. - Removed the sto(Mode)
options, replaced by an occurs_check(+Mode)
option at the global, unit and test level.
[Jan 20 2023]
[Dec 8 2022]
output(+Mode) to suppress output or emit
it only after the test fails.[Dec 7 2022]
[Dec 2 2022]
plunit(end(Unit)) to plunit(end(Unit,
Summary)) where summary provides the status and time spend on the unit.[Dec 12 2023]
exec_program() with
execute_process()[Aug 30 2023]
[Feb 16 2024]
LLEN can return OK. Unclear why
this is possible. It happens in HTTP Redis based session management,
where the list is created using LPUSH. As a work-around, we
return the empty list.[Jun 1 2023]
[Jan 2 2023]
[Dec 30 2022]
[Dec 28 2022]
[Dec 12 2022]
[Oct 18 2022]
[Mar 28 2024]
[Mar 27 2024]
[Mar 3 2024]
[Nov 30 2023]
[Sep 6 2023]
[Sep 1 2023]
[Apr 29 2023]
[Mar 7 2023]
[Feb 26 2023]
[Jan 29 2023]
[Jan 17 2023]
[Dec 8 2022]
[Nov 21 2022]
[Oct 3 2022]
[Sep 5 2022]
[Aug 20 2022]
library(semweb/rdf_db) in single threaded
mode. In this mode the semweb only provides the turtle and ntriple
readers and writers.[Jun 21 2022]
[Jan 28 2024]
[Aug 29 2023]
[Aug 11 2023]
entities(_37838)'[Apr 16 2023]
atom transformation to the attribute value in xpath.
The content attributes provided with load_structure/3 can be atoms
or strings depending on the attribute_value/1 option. So adding
a transformation of attribute values to an atom in xpath/3 should
be a useful feature, such as string transflation.[Feb 26 2023]
[Jan 18 2023]
[Jan 17 2023]
[Jan 16 2023]
ignore_doctype(+Bool) option to explicitly ignore DOCTYPEs
embedded in XML[Aug 19 2022]
[Mar 24 2024]
[Feb 21 2024]
[Nov 7 2023]
[Nov 6 2023]
[Oct 13 2023]
[Sep 27 2023]
[Aug 29 2023]
[Feb 22 2023]
algorithm(bcrypt) Uses the
Openwall implementation of BCrypt, a public-domain, widely-used
C implementation.[Jan 14 2023]
[Nov 29 2022]
[Nov 23 2022]
[Aug 13 2022]
[Apr 24 2022]
[May 6 2022]
[May 3 2022]
[Mar 8 2022]
[Feb 28 2022]
[Feb 21 2022]
[Aug 30 2023]
[Aug 25 2023]
[Oct 26 2022]
install() routine [Oct 25 2022]install() routine From this discussion:
https://swi-prolog.discourse.group/t/static-executable-dstatic-extensions/5710/2
"the install function of a library must be called install_<libname>
and the Prolog side must use use_foreign_library/1"[May 5 2024]
[Jan 28 2024]
[Dec 18 2023]
[Dec 11 2023]
library(pce_prolog_xref)[Dec 9 2023]
[Nov 13 2023]
[Sep 2 2023]
[Aug 31 2023]
file(GLOB) - Suppress compiler warnings on data loss and
signed/unsigned types - Small typing cleanup. - Avoid RedrawWindow()
(renamed to pceRedrawWindow()) - Fix SendFunc casting - Avoid conflict
over "small"!?[Aug 28 2023]
[Aug 16 2023]
swipl-rc to home/xpce/prolog This is the only file
that required running the binary without installation that was in
the source. By copying it to the binary pre-stage home dir we can
greatly simplify build_home.pl[Aug 11 2023]
[Jul 15 2023]
[May 13 2023]
[Apr 1 2023]
[Mar 26 2023]
[Mar 9 2023]
[Feb 26 2023]
[Feb 14 2023]
[Feb 13 2023]
PRIdPTR from <inttypes.h>for printing intptr_t
rather than our own creation.[Jan 27 2023]
newline_and_indent. This is not exactly
the same as Emacs does, but in most cases close.[Jan 24 2023]
[Dec 10 2022]
access where it used
to be modified.[Nov 30 2022]
intptr_t, so with a little detour we
get where we need to be. Time will tell whether we will see systems
where this conversion is not allowed.[Nov 23 2022]
[Oct 29 2022]
swi(library/clp) only
swi('library/clp')[Oct 4 2022]
[Sep 20 2022]
[Sep 19 2022]
[Sep 7 2022]
[Sep 4 2022]
[Sep 2 2022]
stat()[Aug 30 2023]
[May 4 2023]
[Sep 6 2023]
[Nov 23 2022]
[Sep 6 2022]