Branch: stable (switch to
development),
SWI-Prolog Changelog from version 9.0.3 to 9.0.4
[Jan 27 2023]
- TEST: Run unsafe thread_wait tests only if
SWIPL_TEST_FAIL_ON_UNLIKELY is set to
y
.
- FIXED: `1Inf` should be invalid syntax.
[Jan 26 2023]
- DOC: Foreign language details. Notable PL_raise_exception().
[Jan 23 2023]
- FIXED: With
float_undefined
set to nan
, 0/0
must return NaN.
[Jan 20 2023]
- FIXED: with_output_to/3 to flush the streams before finishing the
capture.
- ADDED: Sdprintf() and friends to accept the
t
integer size specified
for ptrdiff_t
.
[Jan 19 2023]
[Jan 17 2023]
- FIXED: Windows: string_length/2 did not handle UTF16 surrogate pairs
correctly.
- DOC: Document PL_write_term()
[Jan 16 2023]
- FIXED: Possible deadlock in a transaction commit due to different
ordering in locking L_GENERATION and L_PREDICATE locks.
[Jan 14 2023]
[Jan 13 2023]
- FIXED: Issue#195:
cmpFloatNumbers()
for NaN.
[Jan 12 2023]
- FIXED: Implement A_MPZ and A_MPQ instructions when using LibBF
binding. This fixes using such numbers in expressions compiled with
optimization enabled. Reported by Rick Workman.
[Jan 11 2023]
- FIXED: Issue#1091: optimised compilation of clauses containing big
integers or rational numbers in expressions.
- FIXED: Issue#1092: term_hash/2,4 crashes on Unicode strings.
- ADDED: list_debug_topics/1 to search, only print active topics,
etc. This predicate now uses print_message/2. debugging/0 is hooked
to show the active topics.
- ADDED: debugging/0: allow extensions using
prolog_debug_tools:debugging_hook/0
- DOC: Fixed PL_Q_CATCH_EXCEPTION interaction with the debugger.
- DOC: Reviewed and updated foreign language sections on exception
handling. Thanks to Peter Ludemann for pointing the many parts of
the docs that were unclear or outdated.
[Jan 10 2023]
- DOC: Added some details for PL_exception()
[Jan 5 2023]
- FIXED: Issue#1087: crash on inlined unification against a rational
number.
[Dec 28 2022]
[Dec 19 2022]
- PORT: msys2, add %MINGW_PREFIX%/bin to dll path
- PORT: msys2, do not copy system dlls into home
- ADDED: Prolog flag
msys2
to detect the MSYS2 installation.
Package archive
[Dec 21 2022]
- PORT: Simply use int64_t as older 3.x libarchive versions do not
define la_int64_t. Simply using
int64_t
seems the easiest way out.
Package clib
[Jan 26 2023]
- FIXED: uri_iri/2 to not decode encoding
&=;
in the query string.
[Jan 9 2023]
- FIXED: detach_IO/1: Protect I/O stream against garbage collection.
Package http
[Jan 27 2023]
- FIXED: `1Inf
->
1.0Inf` syntax.
[Jan 23 2023]
- ENHANCED: More robust restoring of current output after redirection
to the CGI stream.
[Jan 11 2023]
[Jan 9 2023]
- FIXED: Avoid recursion when garbage collecting HTTP sessions under
Redis session management.
- ENHANCED: Do not try to send websocket broadcast messages after
shutdown progressed too far.
[Jan 6 2023]
- ADDED:
library(http_unix_daemon)
to broadcast http(shutdown)
before
calling halt(0)
.
- ENHANCED: http_absolute_uri/2 to use the setting
http:public_scheme
or the port to find the scheme (http
or https
)
[Jan 4 2023]
- ENHANCED: Redis http session plugin to use caching to speedup checking
whether a session is alive.
[Dec 21 2022]
- FIXED: Issue#120: term//2 (term to HTML) rendering of infix terms if
these contain "member" terms with arity 2.
Package odbc
[Dec 18 2022]
- PORT: More odbc type work around. As we do not use long [long] int
sizes or availability, just leave them undefined and let unixODBC do
its magic.
- PORT: Include patch from Debian for some 32-bit systems. Some versions
of sql.h depend on
HAVE_LONG_LONG
. Our code does not use any of
the properties for `long int`.
Package pldoc
[Jan 25 2023]
- FIXED: Possible race condition when pldoc is loaded concurrently from
multiple threads. Hook is installed before the predicates it needs
are defined.
Package redis
[Jan 2 2023]
- ENHANCED: Avoid hanging connection on invalid authentication.
[Dec 30 2022]
- ADDED: Split authentication for the redis instances from the sentinel
network.
- FIXED: Also connecting to the sentinels require authentication.
[Dec 28 2022]
- ADDED: Connect to a master through a sentinel network.
- ADDED: Support Redis TLS connections.
Package sgml
[Jan 18 2023]
- FIXED: Back skip over UTF-16. @UweR.
[Jan 17 2023]
- ENHANCED: Partial support for full Unicode handling ion Windows
(UTF-16).
[Jan 16 2023]
- ADDED: Add
ignore_doctype(+Bool)
option to explicitly ignore DOCTYPEs
embedded in XML
Package ssl
[Jan 14 2023]
- FIXED: Allow HTTPS server to be started as Interface:Port.
Package sweep
[Jan 23 2023]
- DOC: improve documentation for holes
[Jan 22 2023]
- ADDED: command to pipe output of Prolog goals to Emacs buffers *
sweep.c (
sweep_open_channel()
, sweep_fd_open()
): new helper functions
for obtaining Prolog streams from Emacs pipe buffers. * sweep.pl
(sweep_async_goal/2, sweep_interrupt_async_goal/2): new predicates.
- sweeprolog.el (sweeprolog-async-goal): new command, executes a goal
in a separate thread and redirects its output to a buffer with mode..
(sweeprolog-async-goal-output-mode): new major mode, derived from
Compilation mode. (sweeprolog-mode-map, sweeprolog-prefix-map,
sweeprolog-menu): bind sweeprolog-async-goal. * README.org (Executing
Prolog Asynchronously): new manual section.
[Jan 21 2023]
- FIXED: possible race condition when signaling new top-level threads
[Jan 20 2023]
- ENHANCED: consult with library index for finding predicate defs *
sweep.pl (sweep_predicate_location_/4): also check library_index/3.
- sweeprolog-tests.el: add test for finding the source location of
a predicate in the package clib.
- FIXED: stale xref data when jumping across files with M-.
[Jan 19 2023]
- ADDED: right-click context menus in sweeprolog-mode *
sweeprolog.el (sweeprolog-context-menu-find-module)
(sweeprolog-context-menu-find-module-other-window)
(sweeprolog-context-menu-describe-module)
(sweeprolog-context-menu-find-file)
(sweeprolog-context-menu-find-file-other-window)
(sweeprolog-context-menu-describe-predicate): new commands, add to
context menus by... (sweeprolog-context-menu-for-predicate)
(sweeprolog-context-menu-for-module)
(sweeprolog-context-menu-for-file): new functions, used in...
(sweeprolog-context-menu-functions): new abnormal hook, used by...
(sweeprolog-context-menu-function): new function. (sweeprolog-mode):
add it to context-menu-functions.
- README.org (Context Menu): new section.
[Jan 16 2023]
- ADDED: short description for tokens on mouse hover (help-echo)
- sweep.pl (sweep_predicate_dependencies/2): new predicate. *
sweeprolog.el (sweeprolog-enable-help-echo): new user-option,
when non-nil sweeprolog-analyze-region-start-hook
and sweeprolog-analyze-region-fragment-hook are
extended with... (sweeprolog-analyze-start-help-echo)
(sweeprolog-analyze-fragment-help-echo): new functions, manage the
help-echo text property for Prolog text. * README.org ("Hover for
Help"): new section about help-echo.
- ENHANCED: improve semantic highlighting for several constructs
[Jan 14 2023]
- DOC: improve listings in the "Editing Prolog Code" section
[Jan 12 2023]
- ADDED: command for sending a goal to top-level from any buffer
- sweeprolog.el (sweeprolog-top-level): extract buffer setup
logic to... (sweeprolog-top-level-buffer): new function.
(sweeprolog-top-level-send-string): new function, used by...
(sweeprolog-top-level-send-goal): new command, reads a goal
from the minibuffer and sends it to a Prolog top-level buffer.
(sweeprolog-mode-map): bind it to C-c C-q. (sweeprolog-menu): add
"Send Goal to Top-level" entry. * README.org ("Sending Goals to the
Top-level"): new manual section.
[Jan 8 2023]
- DOC: explain how to follow source locations in top-level messages
- MODIFIED: do not force set next-error buffer to Prolog buffer
[Jan 7 2023]
- ENHANCED: use terms at point as "future history" for term-search *
sweep.pl (sweep_terms_at_point/2): new predicate. * sweeprolog.el
(sweeprolog-terms-at-point): new function. (sweeprolog-read-term):
use it for setting the future history. (sweeprolog-read-goal):
new function. (sweeprolog-term-search): use it for reading a goal
when called with prefix argument.
[Jan 6 2023]
- ENHANCED: Support refining term searches with arbitrary goals *
sweep.pl (sweep_term_search/2): extend with an extra goal argument.
- sweeprolog.el (sweeprolog-read-term): new function, similar to
read--expression but for Prolog terms rather than Elisp expressions.
(sweeprolog-term-search): use it, and prompt for goal with prefix arg.
[Jan 5 2023]
- ENHANCED: restore original point when a term search is quit
[Jan 4 2023]
- ADDED: command for finding terms subsumed by a given
term * sweep.pl (sweep_term_search/2): new predicate. *
sweeprolog.el (sweeprolog-term-search-in-buffer): new function.
(sweeprolog-term-search): new command. * README.org ("Term Search"):
new manual section.
[Jan 1 2023]
- FIXED: find next predicate definition more reliably
- ADDED: user option to control predicate documentation composition *
sweeprolog.el (sweeprolog-insert-pldoc-for-predicate): remove in
favor of... (sweeprolog-insert-predicate-documentation): new function.
(sweeprolog-format-term-with-holes): new utility function,
used by... (sweeprolog-read-predicate-documentation-with-holes)
(sweeprolog-read-predicate-documentation-default-function):
new functions, used for...
(sweeprolog-read-predicate-documentation-function): new user option,
used by... (sweeprolog-read-predicate-documentation): new function,
used by... (sweeprolog-document-predicate-at-point): refactor.
[Dec 22 2022]
- ADDED: New command sweeprolog-insert-term-with-holes *
sweep.pl (sweep_format_term/2, sweep_current_functors/2): new
predicates. * sweeprolog.el (sweeprolog-read-functor-history):
new variable, history list for... (sweeprolog-read-functor):
new function. (sweeprolog-forward-hole-repeat-mode): rename
to... (sweeprolog-forward-hole-repeat-map): corrected name
for keymap. (sweeprolog-analyze-end-font-lock): don't rely
on sweeprolog--next-hole to move point. (sweeprolog-at-hole-p,
sweeprolog-beginning-of-hole) (sweeprolog-end-of-hole): new functions,
used by... (sweeprolog--previous-hole, sweeprolog--next-hole):
revise. (sweeprolog--precedence-at-point): new function,
used by... (sweeprolog-insert-term-with-holes): new command.
(sweeprolog-mode-map): bind it to C-c C-m * sweeprolog-tests: test
it. * README.org ("Filling Holes"): move to top and rename to...
("Holes"): document sweeprolog-insert-term-with-holes.
[Dec 21 2022]
- ENHANCED: use variable names from docs when inserting next clause
- ENHANCED: highlight holes in incomplete terms * sweeprolog.el
(sweeprolog-predicate-completion-at-point): fontify holes when
inserting them. (sweeprolog-analyze-start-font-lock):
reset font-lock-face in analyzed region.
(sweeprolog-analyze-fragment-to-faces): fix syntax
error handling, don't highlight holes as it is done by...
(sweeprolog-analyze-end-font-lock): new function, highlights holes
in analyzed region when sweeprolog-highlight-holes is non-nil.
(sweeprolog-analyze-region-end-hook): add it. (sweeprolog--hole):
fix text property used for setting stickiness.
[Dec 18 2022]
- FIXED: possible crash after calling sweeprolog-restart
Package swipl-win
[Jan 25 2023]
- PORT: qmake.pro and includes to compile in QtCreator (up to Qt 6.4)
Package xpce
[Jan 24 2023]
- TEST: Skip test if xpce cannot be found.