Branch: stable (switch to
development),
SWI-Prolog Changelog from version 9.2.0 to 9.2.6
[Jul 24 2024]
- BUILD: Added CMake options SWIPL_CC and SWIPL_CXX This selects the
defaults for the
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]
- FIXED: #1300 Modify prefix block operator to plain term if there is
no argument.
[May 16 2024]
- CMAKE: Fixed
-DCMAKE_BUILD_TYPE=Sanitize Defaults to
-fsanitize=address.
[Apr 26 2024]
- BUILD: Extended
scripts/configure to include termux
[Jul 23 2024]
- FIXED: using big integers as trie value when using LibBF
[May 29 2024]
- ADDED: PL_api_error() to signal invalid use of the API
[Jul 23 2024]
- ADDED: Dummy PL_free_term_ref()
[Jul 22 2024]
[Jul 19 2024]
- FIXED:
qlf app to not import the compiled library into user.
This leads to conflicts.
[Jul 18 2024]
[Jul 12 2024]
- FIXED:
swipl pack install . to install using a symlink.
[Jul 11 2024]
- PORT: Another iteration trying to tame MacOS.
- PORT: Deal with
wcsxfrm() nor immediately returning required size
[Jul 10 2024]
- FIXED: Type for PL_get_intptr_ex(). Breaks on Win32
[Jul 9 2024]
- CLEANUP: Make all code clean for clang-18 -fsanitize=undefined
[Jul 5 2024]
- ENHANCED: Added 'c_cxx' flag and env SWIPL_CXX for packs
[Jul 8 2024]
- FIXED: #1292: possible stack corruption in exception handling.
Probably can only be triggered if SECURE_GC is enabled which wipes
the unused parts of the stacks in
trimStacks().
- SANDBOX: Allow for term_singletons/2
[Jul 1 2024]
- FIXED: #1292 Possible stack corruption after exception.
[Jun 7 2024]
[Jun 3 2024]
- ENHANCED: make/0: no longer try to update the indices of system
libraries. These libraries are properly maintained by the build and
installation process while the time stamps are often wrong after the
installation process.
[Jun 1 2024]
- DOC: time/1: we do support per thread CPU time on MacOS.
[May 31 2024]
- FIXED: Properly export
environment_frame in foreign predicate redo.
The incorrect setting causes problems in the new consistency checks
for term_t as well as confusing backtraces.
- WASM:
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]
- FIXED: =@=/2: attributed variables must be handled as normal variables.
[May 28 2024]
- FIXED: Determine file exports under conditional conditional
compilation.
- FIXED: Process multiple predicates from export/1 directives.
To determine file exports, we considered only a single predicate
for export/1.
- FIXED: '$open_xterm'/5: raise exeption if we cannot run xterm.
Used to hang, waiting for output from the xterm process.
- MODIFIED: Renamed open_xterm/5 as private
'$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]
- FIXED: Build dependency of documentation on
utf8proc package
- ENHANCED: call_in_thread/2 error handling.
[May 24 2024]
- TEST: test_interrupt: skip test if alert signals are required but
they are disabled.
[May 25 2024]
- DOC: fix typo and improve cmake instructions
[May 24 2024]
- FIXED: thread_create/3: handling of
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]
[May 20 2024]
- FIXED: Generating variable names may conflict with user variables.
- FIXED: Links to FAQ pages.
[May 15 2024]
- FIXED: Enabled pre-check for left-shift of large integers This both
avoids possible GMP exceptions and allocating huge amounts of memory.
- ENHANCED: Clarify shifting negative integers This patch also avoids
relying on undefined C behavior.
- FIXED: shift (<< and >>) of zero.
[May 14 2024]
- DOC: Add `--sigalert=NUM
to swipl --help`.
[May 13 2024]
[May 12 2024]
[May 4 2024]
- CLEANUP: Avoid UBSAN error Test for arity > 0
[May 3 2024]
- CLEANUP: workaround for an UBSAN error UBSAN complained about a left
shift of -1
- CLEANUP: avoid UBSAN error in mkvmi.c The error is raised because we
have e5 -= 0 for e5 == NULL
- CLEANUP: Use
unsigned int for variable table bitmap. This avoids
an officially undefined shift in C.
- FIXED: Possibly undefined too large shift
- FIXED: bf_set_si for -INT_MIN avoid undefined behavior raised by UBSAN
[May 2 2024]
- PORT: !1269 Deal with the type
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]
- DOC: write_term/2: document interaction between portrayed and
numbervars
- FIXED: Do not name binding variables if the answer options to not
handle
'$VAR'(N)
[Apr 26 2024]
- PORT: Fix case conversion for Unicode characters on Windows.
- TEST: Disable case test for u00ff on Windows.
towupper(0xff)
returns 0x9f on Windows.
- FIXED: prolog_walk_code/1: no matching rule from goals reached from
a :- initialization.
[Apr 25 2024]
- PORT: Include Ubuntu 24.04 (Noble Nombat) in PPA builds
- PORT: Use -funwind-tables on ARM systems with glibc, also for clang
[Apr 24 2024]
- PORT: Deal with Android
android-execinfo library.
[Apr 17 2024]
- FIXED: generation of swipl.pc pkg-config file Now uses LIBSWIPL_DIR to
get the correct -L flag when the system is installed as global library.
[Apr 16 2024]
- FIXED: Reconsult when the loaded code sets the
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]
- FIXED: WASM: fix fid arg position in this.query call in
__call_yieldable
- FIXED: #1262 upcase_atom/2 and friends on ISO -> wide If input is
ISO-Latin-1 and the converted character requires wide characters
the system trapped an assertion error. Now correctly converts to
wide characters.
- FIXED: Clang handling of
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]
- FIXED: comparison of MPZ and MPQ with 64 bit integers if long is
4 bytes
- FIXED: Normalize LibBF numbers created from 64 bit integers on VS2022
VS2022 does not support 128-bit integers and therefore we must use
32-bit "limbs"
[Apr 6 2024]
- COMPAT: Introduce abstract types for PL_new_hash_table() and friends
Rather than hard coded
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]
- TEST: Disable
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]
- FIXED: write clauses holding > 0xffff Unicode chars in strings to
QLF on Windows.
[Apr 3 2024]
- FIXED:
forAtomsInClause() handling of B_*_?C instructions These called
PL_unregister_atom() on the atom, rather than the argument function.
[Mar 29 2024]
- FIXED: Temp buffer handling when stack is close to top of address range
[Mar 28 2024]
- DEBUG: Fixed chk_secure report on invalid term due to
PushPtr()/PopPtr() This construct to turn raw pointers into term
references to preserve them during GC can create referenc pointers
to the local stack. Another possible fix is to turn such references
into direct term references. That avoids local stack references,
but as this is only used around GC and GC itself uses local stack
reference pointers, there is little to gain.
[Mar 27 2024]
- FIXED: unifiable/3 internal consistency Unifiable did not correctly
handle stack resizing. This is detected when running using chk_secure.
Not sure whether it can also cause real issues, but the new code is
simpler and safe.
[Mar 26 2024]
- FIXED: powm/3 function: wrong type check on 3rd argument.
- FIXED: Declaration of term stack for evaluating expressions
- FIXED: Write bignums when inside arithmetic. Should normally not be
needed, but debugging is much easier if we can.
[Mar 25 2024]
- PORT: Avoid spurious warnings from spoiling
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.
- FIXED: use_module/2 with except and reexport/2 with except to
print warning These predicates failed if the source did not export
the excluded predicate. Now it prints a warning and ignores the
non-existent predicate.
[Mar 24 2024]
- FIXED: Another fileno issue.
- ADDED: library(sandbox): allow for
Dict.get(key,Default)
- FIXED: Stream initialization for
swipl-win.exe Was broken since
recent changes keeping track of fileno. Reported by Jan Burse.
[Mar 23 2024]
- ADDED: PL_system_error() This patch also adds documetation for
PL_fatal_error().
- ADDED: Prolog flag
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.
- ENHANCED: Use temprary malloc API for bignum arithemetic
- ENHANCED: Keep small bignums on the stack
- CLEANUP: Simplify arithmetic context This is no longer nested and can
(thus) be simplified.
- FIXED: format/3: Ensure balanced AR_BEGIN()/AR_END() On errors it was
possible that AR_END() was not called. This may lead to memory leaking
and errornous operation when linked in a process that also uses gmp.
[Mar 21 2024]
- ENHANCED: Improve memory reuse after writing huge integers.
[Mar 18 2024]
- FIXED: #1254 crash in PL_get_mpq()
[Mar 15 2024]
- FIXED: tell/1: properly manage standard stream references.
- FIXED: Stream reference counting and reset when closing a standard
stream.
- FIXED: Memory leak in string_bytes/3.
- FIXED: Properly close temporary redirect to a string
tellString()/toldString() could fail to reclaim the temporary stream
object.
[Mar 14 2024]
- ENHANCED: Use a segmented stack for dealing with findall/3.
This avoids memory fragmentatation when findall/3 is deeply nested.
Although that is a rare occasion, deeply nested findall/3 leads to
poor memory reuse. As activating and deactivating is stacked anyway,
a segstack avoids the fragmentation.
- ADDED:
help(Name/Arity): handle user predicates.
- FIXED: xref_source/2: keep processing PlDoc commants after including
a file.
[Mar 13 2024]
- ADDED: help/1: give help on a specific user predicate using Module:PI.
- ENHANCED: help/1: filter user predicates on the module class.
This use to filter on whether they are documented in the manual,
making it impossible to show documentation for loaded predicates that
conflict with something defined in the manual.
- FIXED: Thread I/O streams may be invalid If a thread is created
using thread_create/3 with the
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]
- FIXED: help/1 to deal with help on public predicates in included files.
help/1 finds the predicate and, if necessary, reloads the file in
which it is defined to get the documentation. If the predicate is
defined in an include file it should reload the main file to get the
module context right.
[Mar 11 2024]
- ENHANCED: trace/1,2 and friends. - Code cleanup - Support conditional
trace using
trace(Head, Port(Condition))
[Mar 12 2024]
- FIXED: Ensure correct setting file handle for std streams. This was
broken after adding the
fileno field to the IOSTREAM struct.
[Mar 11 2024]
- MODIFIED: Discontinue thread_exit/1 on Windows The implementation was
broken for some time. The reason is not entirely clear, but possibly
related to issues in pthread-win32. As the predicate is unsafe and
deprecated anyway, it has now been removed from the Windows version.
[Mar 10 2024]
- FIXED: pack metadata checking for
prolog:Feature requirements.
[Mar 7 2024]
- FIXED: make
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]
- CLARIFIED: PL_free_blob() can be called multiple times. This patch
changes subsequent calls to a no-op that returns
FALSE and document
this is valid. After comment by Peter Ludemann.
[Mar 5 2024]
- CLEANUP: Do not call blob
release() on GC or cleanup after
PL_free_blob()
[Mar 4 2024]
- ENHANCED: Answer/query expansion. Toplevel variable ($Var) handing
is now always handled, regardless of the expand_query/4 or
expand_answer/2 hooks. The expand_answer/2 hook is
superseded by expand_answer/3.
- DOC: Deprecate format/3 with a non-list 3th argument.
[Mar 3 2024]
- FIXED: Setting the C-stack limit to values not a multiple of the page
size Causes problems on some platforms.
[Mar 2 2024]
- DOC: Use ASCII LaTeX ``word''
- FIXED: Preserve atributes set on foreign functions for saved states.
This bug causes http_stream:stream_range_open/3 not be to transparent
when reloaded from a saved state. This in turn raises an error with
http_open/3 on HTTPS and chunked streams.
[Mar 1 2024]
- ENHANCED: coverage/2: analyze and annotate included files.
The coverage analyzer now deals with files that are included. Files
that are included multiple times in different modules get their
numbers aggregated.
- FIXED: Crash when using '$cov_data'/3 if there is no coverage data.
[Feb 27 2024]
- ADDED: library(sandbox): allow for current_predicate/1 without modules.
- FIXED: Using the
-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.
- ENHANCED: #1237 check_installation/0: hide details. Due to changes
in the message format failing to load shared objects, failing tests
due to shared object failures causes long error reports.
[Feb 26 2024]
- FIXED: Highlighting (SWISH). Avoid double brace_term_open/close for
{} goal terms. Still needs proper highlighting in SWISH, as it is
now just marked as brace term.
[Feb 23 2024]
- DOC: Clarify details of PL_get_chars() et al
[Feb 16 2024]
- DOC: pack management and a few minor patches.
[Feb 20 2024]
- DOC: Replaces !1232 with example for using PL_rewind_foreign_frame().
[Feb 14 2024]
[Feb 12 2024]
[Feb 9 2024]
- DOC: pack_install/2. Missed most of the documentation due to
unintended blank line in the comment.
[Feb 7 2024]
- PORT: Deal with config and data direcotory search on Windows platforms.
[Feb 6 2024]
- FIXED: Search for home directory using a relative compiled-in path
findExecutable() must return a Prolog path (using /). Improved debug
messages.
[Feb 3 2024]
[Feb 2 2024]
- ENHANCED: file_autoload_directives/3: Consider files from already
existing directories.
- FIXED: file_autoload_directives/3: avoid importing as name//a and
name/a. Imports now prefer the DCG notation if the defining library
uses that in the export and in any case avoid importing both forms.
[Jan 26 2024]
- DOC: Clarify some details about foreign blobs
[Feb 1 2024]
- FIXED: #1228 Restoring default options for "stand-alone" states.
- DOC: Update documentation for building a 32 bit version on Ubuntu. [no
ci]
- FIXED: pack_publish/2 using a URL.
- FIXED: #1227 Installation from HTTP URL
Package clib
[Jun 21 2024]
- PORT: Proper ip6 support detection for OpenBSD
[May 25 2024]
- DOC: change example to use stream pairs
[May 5 2024]
- CLEANUP: Use unsigned integers for bitmaps Avoids undefined shifts
and makes the code more readable.
[Mar 23 2024]
- PORT: Avoid warning on __RCSID() in bsd-crypt.c Suppresses a warning
on CRAN win builder
Package cpp
[Jul 23 2024]
- TEST: Disable scoped term tests for 9.2.x
[Jul 1 2024]
- ENHANCED: Use read mutex for AtomMap::
find()
[Jun 30 2024]
- ENHANCED: added move constructor to PlRecord to support
make_pair()
[Jun 29 2024]
- FIXED: base class visibility
[Jun 28 2024]
- DOC: fix some obsolete function names
[Jun 21 2024]
- ENHANCED: convenience methods in PlRecordExternalCopy
[Jun 14 2024]
- ENHANCED: Experimental PlTermScoped API
- DOC: PlTail is now PlTerm_tail + fix examples
[Jun 21 2024]
- PORT: OpenBSD does not have malloc header
[Apr 2 2024]
- MODIFIED: PL_get_integer() no longer accepts floats
[Mar 25 2024]
- TEST: exceptions in blob callback
- DEPRECATED: PlStream::
tell(), PlStream::seek() Also fixes initilization
errors. Uses PL_system_error() to signal misuse rather than assert()
[Mar 23 2024]
- FIXED: Possibly uninitialized variable This is a temporary patch.
blob
compare() and acquire() cannot raise a Prolog exception.
This should print a message and abort the process.
[Mar 15 2024]
- FIXED: handle nil blobs in callbacks
[Mar 2 2024]
- DOC: improve non-det example (and tests)
- DOC: Use ASCII LaTeX ``word''.
[Feb 23 2024]
- CLEANUP: tests and clarification of term to string conversion.
[Feb 20 2024]
- DOC: add missing method/function documentation
[Feb 19 2024]
- FIXED: term-to-string and related functions
- ENHANCED: added PlTerm::must_be*() methods
- ENHANCED: remove unnecessary "const ...&" from parameters; deprecate
some dubious functions
[Jan 14 2024]
- DOC: Add some background documentation for C++ constructors,
destructors, unique_ptr
[Jan 2 2024]
- ENHANCED: added PlBlob::
pre_delete()
Package http
[Jul 23 2024]
- DOC: Fix building docs in single threaded version.
[May 28 2024]
[May 27 2024]
- FIXED: Failure to serve data with unknown mime type.
[May 19 2024]
- DOC: Server-sent events support
[May 17 2024]
- ADDED: Support for server-sent events These patches allow for
streaming output which is enabled by default if the content-type is
text/event-stream. Still needs documenting.
[May 12 2024]
[Apr 29 2024]
- MODIFIED: json_write/3 and friends: no spacing with
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.
- DOC: http_post_data/3: document
string([Type], String) data
[Apr 24 2024]
- MODIFIED: library(http/http_load) to verify certificates This library
allows for loading files from http/https URLs. It used to skip
certificate checking. Checking is now enabled and the Option argument
may be used to disable it (using the
cert_verify_hook option).
[Apr 11 2024]
[Mar 10 2024]
- TEST: Don't reuse original test port for HTTP proxy Instead, use port
assigned by OS.
- FIXED: Make http session GC thread inherit from
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]
- FIXED: HTTP Sessions using Redis to properly handle concurrent delete.
Multiple participants may decide to delete a session. By checking
the removal from the timeout queue we avoid that two nodes delete
the same session.
- ADDED: HTTP session management
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]
- ENHANCED: http_upgrade_to_websocket/3: discard a websocket on failure.
When using the
guarded(false) option, the created web socket is now
only left open if the passed Goal succeeds.
[Mar 7 2024]
- DOC: http_server/2: Explictly mention the possible use of
AF_UNIX
sockets
- ENHANCED: Implementation of
open_files in server stats.
[Mar 6 2024]
[Mar 5 2024]
- ADDED:
library(http_server_health)
[Feb 28 2024]
- ENHANCED: http_read_data/3: map syntax errors to status 400 If
reading the data results in a syntax error we add context that causes
http_exception.pl to map the error to a HTTP 400 reply rather than
HTTP 500.
[Feb 26 2024]
- FIXED: HTTP Session data plugin for Redis timeout handling.
[Feb 21 2024]
- ENHANCED: Redis support for HTTP sessions This patch deals with IPv6
peers and allows for specifying both an RW and RO Redis database.
An RO Redis database may be used for high-availability (sentinel)
or clustered Redis DB.
[Feb 19 2024]
- FIXED: json_write/2,3: deal with high Unicode characters on Windows.
- FIXED: use-after-free memory access error This notably causes the
close/0 on a stream opened using http_open/3 to fail on some platforms.
[Feb 14 2024]
- FIXED: http_open/3: avoid TSL handshake error when reading data If we
have an HTTPS connection, some servers hangup the line after sending
the reply rather than using the proper TLS EOF handshake. This patch
uses a range stream to read only the indicated content-length bytes,
also if we agree to close the connection after the transfer.
- FIXED: http_open/3: reconnect a Keep-alive connection if we read an
empty header.
[Feb 8 2024]
Package jpl
[Jun 7 2024]
- TEST: removed Garbo.java This file uses the deprecated
finalize()
method and does not seem to be used anywhere.
[May 31 2024]
- TEST: Find hamcrest needed for JPL tests on Fedora
[May 30 2024]
- FIXED: Illegal use of SWI-Prolog API Code as modifying predicate
arguments.
[May 16 2024]
- TEST: Search for junit.jar as well as junit4.jar. Fedora only ships
with
junit.jar. We'll assume version 3 and older have died by
this time.
Package ltx2htm
[May 31 2024]
- FIXED: Avoid overwriting predicate argument
[Mar 2 2024]
- FIXED: handling of final single quote
- ENHANCED: Warn on non-ASCII characters. We can't handle these.
Package pengines
[Jun 7 2024]
[Jun 6 2024]
- ADDED: Add support to collate multiple output events. This extends
the HTTP protocol to wait for more output, sending multiple output
events as one chunk. The chunk is ended if no more output is timely
available, the max of (currently 100) output events is collected,
or a non-output event is found.
Package pldoc
[May 1 2024]
- ADDED: plDoc: support
__text__ and **text** for strong.
- ADDED: Support
[Label](mailto:me@example.com) links in PlDoc
[Mar 24 2024]
- ENHANCED: Deal with a large selection of diacritics in the LaTeX
backend. When converting PlDoc markdown to LaTex, we now generate
proper LaTeX sequences for ten common diacritics.
[Feb 28 2024]
- ENHANCED: Better ordering of predicates comming from other files.
pldoc for "re-exported" predicates are now ordered by position, i.e.,
file name and line number.
Package plunit
[Jun 3 2024]
- FIXED: run_tests/0-2: correctly report combined CPU usage.
[Mar 13 2024]
- FIXED: Report tests where the setup goal fail as failed and print
output.
Package protobufs
[Jun 15 2024]
- CLEANUP: tests now run outside the build
[Jun 10 2024]
- TEST: Use cmake's built swipl executable where possible
[Jun 9 2024]
- DOC: examples+tests using updated protobuf-compiler package
Package redis
[Feb 16 2024]
- ADDED: sentinel_slave/4
- FIXED: redis_get_list/3,4:
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.
Package semweb
[Jul 11 2024]
[Mar 28 2024]
- FIXED: #112 C11 compatibility (no declaration after label)
[Mar 27 2024]
- FIXED: Message propagation when rdf_load_db/1 fails.
- FIXED: Type error
[Mar 3 2024]
- FIXED: #110 Allow blank nodes as graph in TRiG format.
Package sgml
[May 29 2024]
- FIXED: Avoid referencig an invalid term_t
Package ssl
[Jul 11 2024]
- CLEANUP: Abstract from OpenSSL/LibreSSL versions and use more CMake
[Jun 28 2024]
- PORT: Fix building with modern LibreSSL versions LibreSSL 3.5.0.
[May 30 2024]
- FIXED: Illegal use of SWI-Prolog API
[Mar 24 2024]
- PORT: Fix test for X509_get0_signature() on Windows
[Feb 21 2024]
Package sweep
[Apr 10 2024]
- FIXED: workaround Emacs incompatibility with certain locales The Emacs
Elisp reader only works with locales that have "." as their decimal
separator, but Prolog initialization sets up the locale according to
the environment variables. Therefore we need to reset the locale
after initializing Prolog in case the environment prescribes a
locale with a different decimal separator, such as fr_FR. See also
https://github.com/SWI-Prolog/packages-sweep/issues/1
Package swipy
[Jun 8 2024]
- FIXED: accept
string(Text) as input Added tests for extended
py_string_as().
[Jun 7 2024]
- ADDED: support for
py_string_as() option with codes or chars
[May 21 2024]
- ENHANCED: Context manager for janus.
query() + tests for doc examples
[May 17 2024]
- FIXED: #9 PrologError exceptions cannot be caught as
janus.PrologError
- FIXED: py_is_object/1: Need to grab the GIL
[Apr 23 2024]
- DOC: janus.
query() etc optional arguments is called inputs
[Apr 16 2024]
- FIXED: Memory leak when generating a Prolog dict from a Python dict
[Apr 6 2024]
- FIXED: Wrong Python refcount update. Reported by Jerry James as !8.
That is is not entirely correct though.
[Apr 4 2024]
- FIXED: iterator janus.
query(): properly handle data conversion
exceptions
[Mar 24 2024]
- ADDED: py_import/2: Allows to import a module with a different name.
[Feb 1 2024]
- PORT: search for libpython3.dll in msys2
- FIXED: Take care of Python virtual environments created with
--system-site-packages
Package xpce
[Jul 23 2024]
- PORT: Make compile on Windows after switching to
getaddrinfo()
[Jul 22 2024]
- PORT: #1299 Replace deprecated
gethostbyname() by getaddrinfo()
- PORT: Initialization of
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]
- PORT: Work around MacOS 15 (beta) pulling socket.h with sys/ioctl.h
[Jul 9 2024]
- CLEANUP: Use
offsetof() where applicable This avoids runtime errors
when using -fsanitize=address
[May 5 2024]
- CLEANUP: Avoid relying on too big integer shift Also document that
the save format is not 64-bit robust. I do not know the consequences.
Probably it just limits the size of some objects.