Did you know ... | Search Documentation: |
Title for pldoc(default) |
[May 27 2024]
[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.toplevel_print_anon
.
This flag is now by default false
, hiding toplevel variables that
start with an underscore.[May 20 2024]
[May 16 2024]
-DCMAKE_BUILD_TYPE=Sanitize
Defaults to
-fsanitize=address
.[May 15 2024]
[May 14 2024]
SWIPL_DEBUG_GC_STACK
is set. to
swipl --help`.[May 13 2024]
[May 12 2024]
[May 5 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.[May 1 2024]
--foreign=copy
to copy DLLs for Windows.[Apr 30 2024]
portrayed(true)
and p
to add it.'$VAR'(N)
sysError()
, assertion failure and fatal signal) call new function
printCrashContext()
that prints more extensive information about
the crashrepresentation_error(size_t)
exception This exception is raised if the trace skip level =
SKIP_REDO_IN_SKIP
.[Apr 28 2024]
[Apr 27 2024]
end_of_file
. Now they raise the exception
syntax_error(end_of_string)
.[Apr 26 2024]
towupper(0xff)
returns 0x9f on Windows.scripts/configure
to include termux
[Apr 25 2024]
[Apr 23 2024]
[Apr 10 2024]
Now all prolog data is 64 bits, also on 32-bit systems and hence we can access all memory using a tagged pointer.
[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 12 2024]
static_assert()
after label[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 9 2024]
[Apr 8 2024]
-Wconversion
With 64 bit word it is easy
to get conversion errors. Compiling with -Wconversion
helps
tracking these.scripts/gdbinit
Share gdb script with useful debugging
commands. [no ci][Apr 5 2024]
[Apr 3 2024]
forAtomsInClause()
handling of B_*_?C instructions These called
PL_unregister_atom() on the atom, rather than the argument function.[Mar 28 2024]
[Mar 27 2024]
$CFLAGS
and $CXXFLAGS
in a CMake build types[Mar 18 2024]
[Feb 1 2024]
This patch also involves small cleanups and fixes encountered while
reading the code and use FOR_TABLE() everywhere, removing the old
for_table()
macro.
[Mar 29 2024]
get_string_text()
markAtomsOnGlobalStack()
safe This could crash on all
platforms. It is notably dangerous using the experimental O_M64
model.[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]
[May 25 2024]
[May 5 2024]
[Mar 23 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]
[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)
[May 16 2024]
junit.jar
. We'll assume version 3 and older have died by
this time.[Mar 2 2024]
[May 1 2024]
__text__
and **text**
for strong.[Label](mailto:me@example.com)
links in PlDoc[Mar 24 2024]
[Feb 28 2024]
[Mar 13 2024]
[Mar 28 2024]
[Mar 27 2024]
[Mar 3 2024]
[Mar 24 2024]
-Werror -c
assumes gcc/clang/...
We could use try_compile
as in cmake/CheckFloatingPointFormat.cmake
of the main source?[Apr 10 2024]
[Mar 12 2024]
[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]
[May 5 2024]