Dear SWU-Prolog user,
SWI-Prolog 9.0.3 (stable) is ready for download. The number of patches is
small. Most of them concern portability and testing.
Enjoy --- Jan
PORT: Fix crash in walking the Prolog stack for gcc 12 on arm
32-bit. This is caused by padding added in
PORT: Fixed rationalize/1 and cmpFloatNumbers() to fail due to
gcc optimization using internal wide float registers rather than
comparing 64 bit doubles. Not entirely sure this is our mistake
or within GCC’s claim to work with the extended float registers.
Bottom line is that comparing a double (from memory, so 64 bits) to
the result of a computation may return non-equal even if the extended
float when forced to 64 bits is equal. This problem surfaced in i386
using gcc 12.2.0.
FIXED: Issue#119: library(apply_macros) goal expansion for phrase/3
using a partial terminal was too greedy. Uwe Neumerkel.
FIXED: Initialise Prolog flag
encodingfrom locale name. Internal
UTF-8 decoding is typically faster than the C library multibyte
FIXED: clause/2,3: possible GC crash when dealing with moved
unification. We cannot have references to the local stack and thus
we must allocate the support variable on the global stack.
ENHANCED: If one of the standard streams of a thread has been closed,
rebind the stream to the original process streams. This can happen
if, for example, we create a thread while output is redirected to
some stream. If now this stream is closed the thread ends up with
a closed standard stream.
- TEST: Avoid using test condition bindings.
- TEST: Avoid recorsive Python exception
- ADDED: current_test_unit/2 to enumerate the available unit tests.
- TEST: More relaxed timing to make test pass on heavily loaded machines.
- PORT: Support full Unicode input for ntriples and trutle on
Windows. Based on PR#108 by @mgondan.
ADDED: new command sweeprolog-infer-indent-style * sweeprolog.el
(sweeprolog-infer-indent-style): new command. * sweeprolog-tests.el:
test it. * README.org (“Indentation”): mention it.
FIXED: stale predicate locations in loaded modified buffers * sweep.pl
(sweep_predicate_location_/2,3): prefer xref over loaded predicate
properties. * sweeprolog.el (sweeprolog-predicate-location): first
analyze buffer if modified to update xref data.
- FIXED: file<-time default was accidentally to
accesswhere it used