| Did you know ... | Search Documentation: |
| Title for pldoc(default) |
[Jul 24 2024]
c_cc and c_cxx flags. Distributions should
normally set these to the common C and C++ compiler of the platform.
Local builds typically leave them default, setting these flags to
the same as used to build SWI-Prolog.[Jul 23 2024]
[May 16 2024]
-DCMAKE_BUILD_TYPE=Sanitize Defaults to
-fsanitize=address.[Apr 26 2024]
scripts/configure to include termux[Jul 23 2024]
[May 29 2024]
[Jul 23 2024]
[Jul 22 2024]
LANG=C[Jul 19 2024]
qlf app to not import the compiled library into user.
This leads to conflicts.[Jul 18 2024]
[Jul 12 2024]
swipl pack install . to install using a symlink.[Jul 11 2024]
wcsxfrm() nor immediately returning required size[Jul 10 2024]
[Jul 9 2024]
[Jul 5 2024]
[Jul 8 2024]
trimStacks().[Jul 1 2024]
[Jun 7 2024]
[Jun 3 2024]
[Jun 1 2024]
[May 31 2024]
environment_frame in foreign predicate redo.
The incorrect setting causes problems in the new consistency checks
for term_t as well as confusing backtraces.SWIPL() initialization changed in Emscripten Where
SWIPL(Module) used to return a Promise that would complete
returning the same Module, it now returns a new module object
that is independent from the agument passed.[May 30 2024]
[May 28 2024]
'$open_xterm'/5.
open_xterm/5 was not documented. This patch removes the implementation
completely if the OS lacks the required POSIX pty support and renames
the predicate to '$open_xterm'/5 if xterm consoles can be supported.
In addition, this patch adds conditional compilation to console support
in library(threadutil) if neither the Windows support nor the xterm
support can be provided.[May 27 2024]
utf8proc package[May 24 2024]
[May 25 2024]
[May 24 2024]
c_stack option. While the
size was documented to be in K-bytes, it actually is in bytes.
Updated the docs for that. Allow for c_stack(0) to use the mininum.[May 22 2024]
signals(BoolOrTime) option.[May 20 2024]
[May 15 2024]
[May 14 2024]
to swipl --help`.[May 13 2024]
[May 12 2024]
[May 4 2024]
[May 3 2024]
else-branch of if ( !e4 || (is_vmh && !e5) ) <=> e4 && !(is_vmh && !e5) <=> e4 && (!is_vmh || e5)
Consequence is e4-- (which is fine) and e5 -= is_vmh which is either a noop* for is_vmh == 0 or fine for is_vmh != 0 && e5 != NULL.
The noop case raises the error if e5 == NULL. * CLEANUP: Use
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.
The reference counting when copying the streams was broken, possibly
causing memory corruption. This is improved, but not 100% safe.
However,
we now set the current_input and current_output to user_input and
user_output, which typically never change.
[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]
[Jun 21 2024]
[May 25 2024]
[May 5 2024]
[Mar 23 2024]
[Jul 23 2024]
[Jul 1 2024]
find()[Jun 30 2024]
make_pair()[Jun 29 2024]
[Jun 28 2024]
[Jun 21 2024]
[Jun 14 2024]
[Jun 21 2024]
[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()[Jul 23 2024]
[May 28 2024]
[May 27 2024]
[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]
Intention is to prevent intermittent build test failure on Linux armv7, and Mac M1.
The HTTP, HTTPS, SOCKS and "unused" ports are still reused, though.
Original build failure report: https://swi-prolog.discourse.group/t/swi-prolog-9-2-2-fails-http-proxy-test-on-armv7/7275
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.
curl http://my.org/health?fields=workers,open_files
[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]
[Jun 7 2024]
finalize()
method and does not seem to be used anywhere.[May 31 2024]
[May 30 2024]
[May 16 2024]
junit.jar. We'll assume version 3 and older have died by
this time.[May 31 2024]
[Mar 2 2024]
[Jun 7 2024]
[Jun 6 2024]
[May 1 2024]
__text__ and **text** for strong.[Label](mailto:me@example.com) links in PlDoc[Mar 24 2024]
[Feb 28 2024]
[Jun 3 2024]
[Mar 13 2024]
[Jun 15 2024]
[Jun 10 2024]
[Jun 9 2024]
[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.[Jul 11 2024]
[Mar 28 2024]
[Mar 27 2024]
[Mar 3 2024]
[May 29 2024]
[Jul 11 2024]
[Jun 28 2024]
[May 30 2024]
[Mar 24 2024]
-Werror -c assumes gcc/clang/...
We could use try_compile as in cmake/CheckFloatingPointFormat.cmake
of the main source? [Feb 21 2024][Apr 10 2024]
[Jun 8 2024]
string(Text) as input Added tests for extended
py_string_as().[Jun 7 2024]
py_string_as() option with codes or chars[May 21 2024]
query() + tests for doc examples[May 17 2024]
janus.PrologError[Apr 23 2024]
query() etc optional arguments is called inputs[Apr 16 2024]
[Apr 6 2024]
[Apr 4 2024]
query(): properly handle data conversion
exceptions[Mar 24 2024]
[Feb 1 2024]
--system-site-packages[Jul 23 2024]
getaddrinfo()[Jul 22 2024]
gethostbyname() by getaddrinfo()builtin_names. This used two structs,
one for initialization (bname) and one for access (name) due to the
lack of support for designated initializers in old C. We can now do
it cleanly.[Jul 19 2024]
[Jul 9 2024]
offsetof() where applicable This avoids runtime errors
when using -fsanitize=address[May 5 2024]