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]
[Mar 12 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]