Dear SWI-Prolog user,
I’m happy to annouce SWI-Prolog 8.1.28. This version is a step towards
version 8.2, i.e., it mainly concentrates on bug fixes and stuff that
needs to be stabilized before a new stable release. Highlights:
- Cleanup various installation and testing issues with Lev Lamberov.
- Fix SSL performance and memory issues with help from Matt Lilley and
Markus Triska. - Re-enable large file (>2Gb) support on 32-bit platforms, found broken
by Nicos Angelopoulos. - James Cash implemented AF_UNIX sockets (client side), I have added the
server side. - Edison Mera helped fixing a memory issue in the new allocation code.
- The new allocation code also surfaced a bug writing long strings to
streams that are redefined in Prolog (SWISH uses this). - Added list_cross_module_calls/0,1 to find
Module:Goal
calls where
Goal is a private predicate after discussion with Matt Lilley. - Matt did more work on canonical XML (c14n) needed for signing
XML documents. This now includes adding w3c tests. - Completed usage of the new autoload/1,2 directives in all libraries
and packages. That should allow everything to work normally with
autoloading turned off. - Added missing tcmalloc dependency to MacOS binary bundle.
- Quite a bit of small stuff.
Memory management, notably for busy HTTP(S) servers, seems to be much
better since 8.1.27. The HTTPS problems were caused by bugs in
library(ssl). The biggest improvement comes from using a combination of
tcmalloc and direct virtual memory management to reduce memory
fragmentation.
I think 8.2 is not far away. There seem to be issues with the ODBC
driver that require attention and I’d like to see automation to create
and maintain use_module/1,2 or autoload/1,2 dependencies.
If you stick to the stable releases, please consider this a pre-release
for 8.2 and start testing your software such that issues can be resolved
before 8.2.
Enjoy --- Jan
SWI-Prolog Changelog since version 8.1.27
-
DOC: aggregate_all/3: document constant memory usage of special
cases. Boris Vassilev. -
DOC: Update number/1 for rationals. David Tonhofer.
-
PORT: Check for AF_UNIX socket support.
-
FIXED: library(sandbox): we need to load our dependencies explicitly
as the sandbox library requires its dependencies while being loaded. -
FIXED: message_to_string/2 to handle ansi(Class, Fmt, Args) as
Fmt-Args
rather than ignoring it. -
CMAKE: Config error for Windows.
-
FIXED: Possible race condition in reference counting for predicates.
-
FIXED: findall/3 memory pool allocation for new tmp_malloc().
With help from Edison Mera. -
FIXED: Possible data corruption, in most recent versions crash,
when writing a long string using a Prolog-defined stream (see
open_prolog_stream/4). -
PORT: Support large files on 32 bit platforms. Nicos Angelopoulos.
-
TEST: Added Tests component when installing the test database.
Lev Lamberov. -
ADDED: library(check): list_cross_module_calls/0,1.
-
CLEANUP: Cleanup cross module calls.
-
ADDED: prolog_walk_code/1: option trace_condition/1.
-
INSTALL: Fixed installation in /share for the documentation.
Package clib
-
ADDED: Server support for AF_UNIX sockets and a test
-
ADDED: unix_domain_socket/1, providing access to AF_UNIX sockets.
Package cpp
- CLEANUP: Removed old files, updated README.
Package http
- INSTALL: Removed demo_body from INSTALL_TESTS. Seems unused.
Package ltx2htm
- CLEANUP: Use autoload/1,2 and replace most deprecated predicate calls.
Package paxos
- AUTOLOAD: Use autoload/1,2
Package pengines
- AUTOLOAD: Use autoload/1,2.
Package plunit
- AUTOLOAD: Use autoload/1,2
Package semweb
- FIXED: Allow rdf_meta/1 to act on a module-qualified head to support
multifile predicates. Joost Geurts.
Package sgml
-
TEST: Added test cases from w3c for c14n.
-
FIXED: Preserve prefix name in xmlns declaration if ns/2 is in use
Package ssl
-
ENHANCED: Share certificates between all SSL contexts that only use
the system root certificates. -
ADDED: ssl_property/2. Used to maintain compatibility wrt the
close_parent property of the HTTP SSL hooks. -
ENHANCED: Share the certificate stack between SSL contexts, making
cloning these stacks a lot cheaper. -
ENHANCED: Avoid general SSL context initialization just to replace it.
-
FIXED: Missing prefix on SignedInfo means that the hash is not
correctly computed, which means that signatures are not correctly
verified -
ENHANCED: HTTP SSL plugin: moved setting
close_parent(true)
to
creating the SSL context so we can share the same context for each
accepted connection instead of duplicating the context. -
INSTALL: Add component to installation of demo
etc
and tests.
Package tipc
- AUTOLOAD: Support autoload/1,2.
Package xpce
-
FIXED: PceEmacs compiler warning intercept to handle newer message
elements such as ansi(Class, Fmt, Args). Matthias. -
CLEANUP: Make internal cross-module calls declared.