Branch: stable (switch to
development),
SWI-Prolog Changelog from version 7.6.4 to 8.0.1
[Jan 23 2019]
- FIXED: add -rdynamic to cflags to export symbols (fix #420) Only do
this if we do not put the Prolog core in a shared object. * After
cmake 3.4 -rdynamic is not added when building a
target. This breaks the android termux build. This patch
solves the problem.
- TEST: Fixed test that broke due to assert to a static procedure
unrelated to the test.
- FIXED: Issue#81: assert/1 and friends must produce a permission error
if the predicate is not dynamic and defined.
- FIXED: in_temporary_module/3: destroy the load context for files
loaded into this module.
[Jan 22 2019]
- FIXED: load_files/2: Added predicate option declaration for
dialect(+Dialect)
[Jan 21 2019]
- CLEANUP: Proper range test (LONG_MAX -> INPTR_T_MAX)
[Jan 18 2019]
[Jan 17 2019]
- FIXED: possible crash when loading saved states that contain procedures
with NULL modules
- PORT: Generate i386 binaries on x86_64 Debian based Linux systems.
- BUILD: Updated minimum CMake version required to 3.5
[Jan 15 2019]
[Jan 14 2019]
- DIST: added packages/windows directory to source archive. Keri Harris
- PORT: Get WSAPoll() for Windows.
- DOC: LaTeX error
- DOC: thread_at_exit/1: goal is run without signal processing.
[Jan 13 2019]
- MODIFIED: run thread exit mode while signal handling for the dying
thread is disabled. This guarantees that if an already dying thread
is aborted using a signal it still executes its cleanup.
- FIXED: Various issues concerning stream error propagation.
[Jan 10 2019]
- STABLE: Initial merge from development version
[Jan 9 2019]
- MODIFIED:
close(StreamPair)
now closes its output before the input.
- FIXED: Windows version: make wait_for_input/3 available again.
With help from Keri Harris.
[Jan 8 2019]
- ADDED: PL_get_stream(): allow for SIO_NOERROR flag to suppress errors.
[Jan 7 2019]
- DEBUG: Print C-stack when falling back to C-defined
printMessage()
because the Prolog one is not available.
[Jan 4 2019]
- FIXED: Issue#403: clause_info/5: binds DGC tail when decompiling a
DCG rule if the first statement is a terminal.
[Jan 2 2019]
[Jan 1 2019]
- FIXED: library(prolog_colour): exception when zero-argument compounds
are passed to a meta-argument with integer > 0.
[Dec 30 2018]
- ENHANCED: goal expansion for library(yall). Patch by Paulo Moura,
[Dec 24 2018]
a printf(3)
format and the third the arguments passed to it.
[Dec 26 2018]
- FIXED: Issue#392: use install target at final fallback for SWI-Prolog's
home.
[Dec 17 2018]
- ADDED: command line option --no-threads to avoid starting threads
at startup.
- ADDED: foreach//2 to the high order DCG library.
- ADDED: Sandbox declarations for DCG high order predicates.
[Dec 16 2018]
- ENHANCED: html_text/2: support cell alignment and horizontal rules
in table bodies using the Prolog style definitions (class=hline).
- ENHANCED: html_text/2: better distribution of column widths.
- ADDED: html_text/2: handle colspan.
[Dec 15 2018]
[Dec 14 2018]
[Dec 13 2018]
- FIXED: Track exceptions from hooks called at thread
termination. Currently prints them en clears them.
- MODIFIED: Consider an exception from an asynchronous signal handler
a fatal error. It is not allowed to call Prolog from such a handler
anyway, so there cannot be an exception. XPCE used to call such a
handler on SIGPIPE.
- DEBUG: Also test wheher an exception is pending at the start of
a foreign function. Should improve debugging incorrect exception
handling in foreign code.
[Nov 27 2018]
- DEBUG: If supported, print location where an ignored exception was
triggered.
[Dec 13 2018]
- FIXED: thread_send_message/2,3: possibly double unlock of the message
queue when receiving a signal while waiting.
[Dec 12 2018]
- BUILD: Add
nlp
package dependency for building pldoc2tex.
- ENHANCED: Declare library(solution_sequences) predicates transparent
for the profiler.
- BUILD: Document
-DSWIPL_INSTALL_IN_LIB
[Dec 11 2018]
- ADDED: identifier_parts/2: deal with Prolog singleton identifiers.
- ENHANCED: identifier_parts/2: support Prolog symbol identifiers.
- MODIFIED: The Prolog flag
posix_shell
is no longer initialised
from SHELL
to avoid getting a non-posix shell such as tcsh
.
Nicos Angelopoulos and erlanger.
- BUILD: Make sure documentation generation (pldoc2tex) using UTF-8
encoding, regardless of the environment. Lev Lamberov.
[Dec 10 2018]
- TEST: Use '-f none' for testing saved states. Nicos Angelopoulos.
[Dec 8 2018]
[Dec 6 2018]
- ADDED: library(atom), providing operations on atoms that are now
duplicated over various places in the libraries and extensions.
- DOC: Broken example.
[Dec 5 2018]
- PORT: calculate alignment at compile time
- DOC: Added library(ansi_term) to main manual.
- ENHANCED: Handle, notable portray, errors while printing a message
more elegantly. After discussion on the list with Peter Ludemann.
[Dec 4 2018]
- TEST: Avoid loading plunit from different locations. Keri Harris.
- DOC: document PL_current_prolog_flag
[Dec 3 2018]
- FIXED: load_files/2: save/restore
xref
flag. Also combine setup
and cleanup in new predicates, preparing for safe aborts of ongoing
compilations.
- MODIFIED: Only handle
error(_,_)
exceptions inside load_files/2,
allowing for abort, time limits, etc. This is the first step.
As is, cleanup after exceptions is poorly implemented in the compiler
frontend.
- FIXED: Failure to close Windows WIN32_FIND_DATA handle if file name
length is exceeded.
- FIXED: Memory leak in read_term/3 and derived friends (all parsing
predicates) when raw reading produces a syntax error. This notably
harms atom_to_term/2 on syntactical incorrect input.
- PORT: Make profiling guided optimization work for Windows.
- DOC: Missing Prolog flag documentation for
windows
and
wine_version
.
[Dec 2 2018]
- DOC:
CMAKE.md
for new cross-compilation support.
[Dec 1 2018]
- TEST: Cleanup and streamlining both the normal test and test on the
installed system.
[Nov 21 2018]
- ENHANCED: allow installation of tests with -DINSTALL_TESTS
[Nov 29 2018]
[Nov 28 2018]
- DOC: Building did not always update the manual because PlDoc comments
were already embedded into the
man/pldoc2tex
state.
- FIXED: PL_cut_query() and PL_close_query() may encounter a
Prolog exception if pending choice points call Prolog due to
setup_call_cleanup/3 and friends. These functions now return an
int
which is FALSE if an exception occurred.
[Nov 27 2018]
[Nov 26 2018]
- DOC: Quintus compatibility math predicates.
[Nov 23 2018]
- INSTALL: Android: create tmp_dir if it does not exist
[Nov 26 2018]
- PORT: Added endianness tests
[Nov 23 2018]
- TEST: accept different representations for NaN, needed esp. for Android
- FIXED: Issue#371: duplicate run of initialization goals that appear
in the system init file ($PLBASE/swipl.rc). Jan Burse.
[Nov 22 2018]
- ADDED: Prolog flag
tmp_dir
reflecting the directory for temporary
files. This flag is initialised from the environment and may be
changed.
- INSTALL: Allow installing libswipl in the public library directory
instead of the Prolog tree.
- PORT: Link to liblog.so needed to write to android syslog equivalent
- PORT: Set proper android arch
[Nov 23 2018]
- PORT: support older versions of cmake for cross-compiling to Windows
[Nov 22 2018]
- ADDED: Prolog flag
posix_shell
. Used by shell/2 and qsave_program/2.
- PORT: shell/2 (called by shell/0 and shell/1) now used
execve()
for better support on Android termux.
- PORT: Link packages to libswipl.so and libm.so on Android
- FIXED: staged generation of autoload index files did not close
the file.
[Nov 21 2018]
- PORT: support zlib that does not export internal macros
- DOC: Module handling for operators.
- MODIFIED: op/3 and current_op/3 now default to the typein module
module rather that the hard coded
user
module.
- ADDED: meta-predicate declaration for op/3 and current_op/3.
- CLEANUP: Use staging interface for library index files rather than
a local solution.
- FIXED: Use file staging for .qlf files to avoid concurrent processes
to stumble on incomplete files.
- ADDED: '$stage_file'/2 and '$install_staged_file'/4 to stage file
creating, avoiding incomplete intermediate products.
- FIXED: Do not try to add .qlf files to a library index.
[Nov 20 2018]
- FIXED: Remove hint to removed -v cli option. Falco Nogatz.
- DOC: improve SWIPL_NATIVE_FRIEND explanation
- BUILD: Allow qlf compiling using friend compiler
- ENHANCED: Allow compile time specification of unix shell
- BUILD: Build and install the manual index doc/manindex.db
- DOC: Replace -tty with --no-tty. Peter Ludemann.
[Nov 19 2018]
- PORT: use the `friend Prolog system for boot compilation`
- ADDED: `swipl --dump-runtime-variables
emits
PLBITS=NN` to indicate
the VM word size.
- PORT: Introduce CMake variable ${SWIPL_NATIVE_FRIEND} to specify a
native Prolog for doing the build steps that require Prolog.
- TEST: Added cmake option BUILD_TESTING to disable testing using
-DBUILD_TESTING=OFF
[Nov 18 2018]
- PORT: Use host compiler to build mkvmi and defatom
- CLEANUP: Remove jasmine and space submodules
- DIST: Update scripts/make-src-tape to omit documentation and generated
files.
- CLEANUP: Remove autoconf/make build infra structure
- ADDED: thread_create/3: option queue_max_size. Also cleans up
internal typing, extend attributes for PL_thread_attach_engine()
and some doc fixes.
- PORT: Android minizip USE_FILE32API only in 32 bit targets
[Nov 17 2018]
[Nov 15 2018]
- ADDED: catch_with_backtrace/3 and print backtraces for -g and
initialization goals. After discussion with Peter Ludemann.
- MODIFIED: Print stack frames for uncaught exceptions using ~p (print)
instead of ~q (quoted write). Peter Ludemann.
- FIXED: WASM: Use
BINARYEN_TRAP_MODE=clamp
to avoid traps when
converting large floats to integers.
[Nov 9 2018]
- PORT: Support building the SWI WebAssembly (WASM) version using
cmake. Contributed by Raivo Laanemets.
[Nov 13 2018]
- ADDED: csv_read_stream/3. Suggested by Nicos Angelopoulos.
- ADDED: csv_read_file/3: option
skip_header(+Start)
to skip all lines
starting with Start. Suggested by Nicos Angelopoulos.
- CLEANUP: Consistent types for
llvm_dummy()
- BUILD: Provide an option -DUSE_SIGNALS=OFF to disable all handling of
signals by SWI-Prolog. Intended for embedded minimal configurations
and environments such as emscripten that do not provide signal
handling.
[Nov 12 2018]
- PORT: Find executable for WASM
[Nov 13 2018]
- MODIFIED: pack_install/1, etc. Find a C compile by trying to find one
of the following on $PATH:
gcc
, clang
or cc
. Fixed to first
try the environment variable CC and finally use the old default,
the c_cc
Prolog flag indicating the compiler used to build Prolog.
After discussion with Fabrizio Riguzzi and Paulo Moura about compiler
selection on MacOS.
- FIXED: Ensure that destruction of a temporary module resets the current
procedure of associated source files if this is a predicate from the
temporary module. Can cause a crash.
- FIXED: cross-referencer: undefined predicate in reexport handling.
- FIXED: Possible crash compiling aux predicates.
[Nov 11 2018]
- CMAKE: Finding cmake binary directory for built system for systems
that do not manage binaries using a permission flag.
[Nov 8 2018]
- FIXED: call_residue_vars/2: possible crash during GC. Jan Burse.
- FIXED: Recent patch for C_LIBPLSO could leave this undefined.
- PORT: MacOSX: Fixed passing proper -Ldir to pack build process
- CMAKE: Get
c_libplso
prolog flag initialized properly on non-ELF
systems.
[Nov 5 2018]
- TEST: Add travis-ci configuration.
[Nov 6 2018]
[Nov 5 2018]
- FIXED: Saved state reloading could crash with a segv while initializing
path translation options.
- PORT: Several aspects for swipl-ld, notably dealing with relocatable
executables and rpaths.
- ENHANCED: Access to the runtime configuration, notably required for
foreign extensions and embedding. The work for --dump-runtime-variable
has been moved from C to Prolog.
[Nov 3 2018]
- FIXED: Avoid MSB(0). Mostly harmless. Abramo Bagnara.
[Nov 2 2018]
- BUILD: More flexible search for the source directory when running from
a cmake build environment. Notably allows building in the source dir.
- FIXED: possible (benign) overlapping string copy using
strcpy()
that may trap a C runtime library exception.
[Oct 31 2018]
- DOC: Fixed several documenation errors detected by new TeX
preprocessor.
- DOC: Replaced Perl TeX preprocessing with a Prolog based translator
[Nov 1 2018]
- FIXED: Emit colour call for empty export list. Required for SWISH.
- FIXED: Paths in swipl.pc (pkg-config). Carlo Chapelli.
[Oct 31 2018]
[Oct 30 2018]
[Oct 17 2018]
- ENHANCED: A slightly more efficient version of the select/3.
Deterministic on last element.
[Oct 30 2018]
- ADDED: Make help/1 output hookable.
- FIXED: library(prolog_colour): handle body terms of the form
[X,Y|Z]
.
Note that normally this indicates an error but if Z is unbound this
is not strictly the case.
- FIXED: xref_public_list/3: thread-safety and cache results.
- FIXED: Cross_referencer: consider a possible
:- encoding(Enc)
when looking for the module header.
- FIXED: git_shortlog/3: report
committer_date_unix
field as an
(integer) time stamp instead of an atom.
[Oct 29 2018]
- FIXED: Create the resource file as read-only file and delete it before
writing to ensure already running Prolog processes will not see an
invalid resource file.
- FIXED: read_term/3: subterm_positions option when reading from an atom
or string. This fixes coloring queries with leading comment in SWISH.
- FIXED: Install package documentation from the binary dir
[Oct 28 2018]
- DOC: Fixed typos in documention of round/1.
[Oct 27 2018]
[Oct 26 2018]
- FIXED:
closeStream()
: consistent unlocking. Analysed by Keri Harris.
- CMAKE: Support PGO compilation
- CLEANUP: Fix some benign compiler warnings.
[Oct 24 2018]
- PORT: Create a MacOS bundle installer.
[Oct 23 2018]
[Oct 22 2018]
- FIXED: Path computation in shadow home dependencies.
[Oct 21 2018]
- BUILD: Added ltx2htm to default packages as this is needed by current
builds
- TEST: fixed calling modified test.pl
[Oct 17 2018]
[Oct 15 2018]
- SCIENCE: New journal paper reference about Boolean constraints.
A preprint of this publication is available from:
https://www.metalevel.at/boolean.pdf
To the best of my knowledge, this is the first portable CLP(B) system.
A new and much faster SICStus port is also available. Please see the
paper and https://www.metalavel.at/clpb/ for more information.
- CMAKE: Directory targets depend on generator :(
- MODIFIED: qsave_program/2 does not add `.exe` on windows if the
stand_alone
option is set to false
.
- FIXED: `swipl -c ...` to honour e.g., `--no-autoload` negated options.
[Oct 14 2018]
- BUILD: check for environment variables that may upset the build.
[Oct 13 2018]
- CMAKE: Work on partial installations.
[Oct 12 2018]
- CMAKE: Deal with package dependencies
- FIXED: table/2: do not confuse the cross reverencer.
- CMAKE: Support -DSWIPL_SHARED_LIB=OFF to get a statically linked core.
- PORT: MacOSX: both look for the module extension (so) and the shared
object extension (dylib).
- PORT: Be explicit about using @rpath on MacOS to avoid cmake policy
warnings.
[Oct 10 2018]
- DOC: Make documentation generation work again with autoconf/make.
[Oct 9 2018]
[Oct 8 2018]
- FIXED: Install library index files (INDEX.pl) atomically such that
concurrent Prolog processes will not be faced with an incomplete index.
[Oct 7 2018]
- CMAKE: Generate documentation using a pldoc as saved state.
[Oct 8 2018]
- MODIFIED: `swipl -c file.pl` now loads the system init file (-F)
and attached packages.
[Oct 7 2018]
- CLEANUP: Use pldoc2tex.pl instead of txttotex.pl for converting
package Markdown files to TeX.
- CLEANUP: Merged man/libtotex.pl and packages/pltotex.pl into
man/pldoc2tex.pl
- CMAKE:
swipl_plugin()
: Allow specification of C include dirs and
multiple Prolog target directories. This allows for specifying
most plugins in a single call and keeps most reorganization in a
single place.
[Oct 6 2018]
- CMAKE: Fix creating directories in home on Ninja and Makefiles.
- CMAKE: Fixed for Unix Makefile generator. Paulo Moura.
- CMAKE: Avoid wrong dependency on swipl.prc
- CMAKE: Make documentation generation work in the build tree and
reduce dependencies
- DOC: LaTeX typo
- MAINTAIN: Be more careful printing messages during the boot compilation
so we are more likely to see the real reason for a failure.
- CMAKE: Support setting flag
system_thread_id
on Linux.
- ADDED: help/1: Prolog flag
help_pager
to control pager handling.
Also added more documentation to this library.
- CMAKE: Make documentation available for local version.
[Oct 5 2018]
- ENHANCED: help/1, do not use the pager when running under emacs. Wel,
this relies on the
emacs_inferior_process
which seems unreliable.
- CMAKE: Build Prolog target files in CMAKE_BINARY_DIR, so we build
the indexes and run the system
[Oct 4 2018]
- CMAKE: create version file in build dir.
- CMAKE: Run package test in build directory.
[Oct 3 2018]
- CMAKE: Indirect installation of sources over our own function
- CMAKE: Use silent installation
- ADDED: Build-tree system initialization file that allows running the
system as if it was installed from the source tree.
- MODIFIED: Load the system init `-F file` as first step of the
initialization, such that it can impact the toplevel initialization.
- CMAKE: Basic selection of optional components
- CMAKE: Support single threaded building
[Oct 2 2018]
- MODIFIED: replace plain text manual with HTML driven manual.
[Sep 29 2018]
- DOC: Make generating of .pdf from PostScript silent.
- CMAKE: Copy manual figures.
- DOC: Several small fixes
[Sep 28 2018]
- ENHANCED: print_message/2:
ansi(Style,Format,Args)
switches back to
the original settings.
[Sep 26 2018]
- FIXED: explain/1: Avoid dependency on
library(helpidx)
that is going
to be discontinued.
[Sep 24 2018]
- CLEANUP: Avoid unused variable and possibly uninitialized variable
warnings if NDEBUG is set.
[Sep 23 2018]
- FIXED: Issue#336: Meta calling @(_,_) loops. Markus Triska.
- CMAKE: Allow setting the build type and have a default anyway.
[Sep 22 2018]
- BUILD: better organisation of platform specific cmake files.
- BUILD: Deal with modified generated programs in old Makefiles
- MODIFIED: Always look for swipl.prc as last resort for the startup
file.
- BUILD: Removed various obsolete configure tests
- ADDED: PL_w32_running_under_wine() and a Prolog flag
wine_version
.
Also fixed swipl.exe console for raw wine I/O (without wineconsole).
- TEST: Allow running from other directory
- BUILD: Allow helpers to dump generated file in binary directory and
only update if the file has changed.
- TEST: Avoid error if memfiles are not supported
- DOC: importing wrong docs
- BUILD: Support cmake
[Sep 14 2018]
- FIXED: Erasing a rule from a dynamic predicate failed to update the
number_of_rules
predicate property.
- FIXED: Issue#77: when reconsulting a file holding a dynamic predicate
with clauses coming from the file, all dynamically asserted clauses
were wiped.
[Sep 13 2018]
[Sep 11 2018]
- FIXED: Meta predicate declararion of reset/3. Paulo Moura.
[Sep 2 2018]
- PORT: avoid duplicate z_crc_t definition
- PORT: minizip z_crc_t types based on NOCRYPT/NOUNCRYPT zlib config
- PORT: autoconf 2.63 for still-supported LTS OS/distros
[Aug 29 2018]
- TEST: Fixed singleton tests (failed after changing message format)
[Aug 28 2018]
- MODIFIED: Message term for singleton and multiton messages changed
from one to arguments, passing the whole term. This can be used to
provide more detailed analysis, give more precise messages or suppress
the message depending on the context.
- ADDED: must_be/2: type
type
[Aug 27 2018]
- DOC: Avoid LaTeX duplicate label for sec:dicts (library and builtin)
[Aug 24 2018]
- DOC: Issue#320: debugger overview.
[Aug 12 2018]
[Jul 27 2018]
- DOC: Added dicts.pl to main library documentation. Peter Ludemann.
[Jul 26 2018]
- ADDED: git_shortlog/3: option
revisions(+Revisions)
to allow
generating changelogs between revisions.
[Jul 21 2018]
- FIXED: Ensure declared operators are defined in the target module
when QLF compiling a module with exported operators.
- ADDED: Script to upload packs to github
- FIXED: select_option/4: only delete an option if found
[Jul 19 2018]
- DOC: Added link to stack_limit flag.
[Jul 12 2018]
- DOC: PL_put_term_from_chars() foreign API.
[Jul 10 2018]
- PORT: Avoid undefined behavior and implementation defined behavior
in shift.
- PORT: Avoid some undefined C behavior.
- CLEANUP: Avoid GCC compiler warning due to strict aliasing. Spotted by
Andrew Pinski.
[Jul 9 2018]
- FIXED: Meta-predicate declaration for mode-directed tabling helper
resulted in false undefined predicate warnings.
[Jul 8 2018]
[Jul 6 2018]
- FIXED: Avoid crash in mode-directed tabling if a mode-directed call has
an incompleted variant in a parent environment. Unclear whether the
current results are `sufficiently correct' (whatever that means ...)
[Jul 3 2018]
- MODIFIED: debug_message_context/1 has been replaced by the generic
message context mechanism. The predicate is deprecated, but provides
a fair enulation for the common cases.
[Jul 2 2018]
- FIXED: listing/0,1,2: Item#313: when reusing source variables we must
be careful not to collide with generated variable names.
- FIXED: Declare mode-directed tabling sandbox-safe
- FIXED: Issue#312: explain malfunctioning: crashed on atoms and failed
to report predicates from name/arity notation.
- FIXED: BOM checking should not set the end-of-file condition, avoiding
a paste-end-of-file error on the first read.
- FIXED: fill_buffer/1 should not retry if the buffer is at the end of
the file.
- FIXED: past-end-of-file detection and reporting.
[Jun 27 2018]
- FIXED: open/4: Leaking file handles if incorrect options cause the
open to fail. Cleanup.
- MODIFIED: Clear error flag on streams after raising an exception due
to e.g., I/O errors. After discussion with Jose Morales, Per Mildner
and Joachim Schimpf.
[Jun 21 2018]
- ADDED: Allow hooks to extend the message prefix with additional
information.
[Jun 15 2018]
- ADDED: paxos package to standard build
- ADDED: Package paxos
[Jun 27 2018]
- FIXED: read_term/2,3:
singletons(Vars)
option did not include normal
variables after recently changed semantics. Added test set.
[Jun 26 2018]
- FIXED: Mode-directed tabling. This is an elaborate rewrite of the
Prolog driver for tabled predicates. It relies on the component
support introduced in the C layer. It splits most of the code between
the plain and mode directed tabling because, as the number of required
conditions was growing, two separate implementations are both faster
and easier to read.
- ADDED: allow creating sub components for tabling. This is needed
for mode directed tabling.
- TEST: Tabling: add tests that require sub components. Fabrizio
Riguzzi.
- ENHANCED:
swipl-bt
script to pass SIGUSR2 to Prolog.
[Jun 25 2018]
- FIXED: Prolog flag
unknown
handling. Tomoki Aburatani.
- MODIFIED: read_term/2,3: option
singletons(-Vars)
to return all
singleton variables rather than those we think we should warn about
as demanded by ISO. Paulo Moura.
[Jun 21 2018]
- ADDED: load_files/2: option
optimise
. Paulo Moura.
- DOC: swipl.1. Paulo Moura,
[Jun 20 2018]
- FIXED: Close file handle twice. Benign.
[Jun 18 2018]
- FIXED: Cross-referencer: avoid adding a parsed structured comment
multiple times if the comment precedes a term that is term_expanded
into multiple terms. This results in multiplying comments for e.g.,
git_shortlog/3 after showing the highlighted sources. Jacco van
Ossenbruggen.
[Jun 15 2018]
- FIXED: Stand-alone configure called Prolog with
-dump-runtime-variables
. Must be `--dump-runtime-variables`.
- FIXED: Issue#73: number//2 non-terminating when called in mode +,//
and the argument is not a number.
[Jun 12 2018]
- PORT: Cross-compilation of defatom tool.
[Jun 11 2018]
[Jun 12 2018]
- MODIFIED: Removed undocumented Prolog flag
thread_message_prefix
and
added message_context
, which provides a list of context info to add
to warning and error messages. Notable intended for server log files.
- FIXED: CSV writer to write an empty row.
- ENHANCED: Sandbox limitation message if safety could not be proved
due to an instantiation error.
[Jun 11 2018]
- FIXED: NLP -> PCRE copy/paste error
[Jun 5 2018]
- FIXED: Issue#305: compute result size for ^/2 was off by a factor 8.
Results in a signalled stack overflow while there is plenty of space.
- ENHANCED: csv_write_file/3 and csv_write_stream/3 to run phrase per
row and thus avoid creating a giant string in memory. Suggested by
Nicos Angelopoulos.
- FIXED: If the encoding is explicitly stated we should not check for
a BOM marker. Arthur Wang.
- CLEANUP: abstract the interface to the data storage.
[Jun 4 2018]
- MODIFIED: Turn paxos as a mapping of arbitrary ground keys to
ground values. This changes the message format. It also changes
paxos_get/2 and paxos_set/2. Otherwise the term view where the key
is the name+arity is maintained using keys '$c'(Name,Arity).
- PORT: Zip based resource manager for libz < 1.2.7 and OpenBSD I/O
functions. Patch by Alexander Shendi.
[Jun 3 2018]
- PORT: Support a program to run the cross-compiled executable such as
wine, node, etc.
- PORT: When EMMAKEN_JUST_CONFIGURE is set, configure as target
wasm-emscripten
- PORT: Better detection of requirements for getting
tgetent()
.
- FIXED: Detection of -c -o compiler flag handling for compilers that
know
main()
is special.
- BUILD: Use host compiler for compiling defatom
[Jun 1 2018]
- WINDOWS: Binaries: updated OpenSSL to 1.1.0h and zlib to 1.2.11.
- MODIFIED: Issue#290:
statistics(memory, X)
now returns 0 if we cannot
get a reliable value for the RSS from the OS.
[May 31 2018]
- PORT: Make zip based archives handling work on systems that lack
memory mapped files.
- FIXED: Attribute management for reloading sources in single threaded
mode.
- FIXED: Validate existence of streams in single threaded mode.
Without this patch some operations could work on a closed stream,
either leading to incorrect results or a crash.
- TEST: Add condition on test that require threads.
- PORT: Make system compile again using `--disable-mt`.
[May 30 2018]
[May 29 2018]
[May 28 2018]
- FIXED: Hiding built-in predicates in listing/0.1. Paulo Moura.
- ENHANCED: Avoid deleted breakpoint messages from clause garbage
collection.
- ENHANCED: Position management for breakpoints.
- FIXED: various issues for setting breakpoints. Avoid double admin,
run callback atomically and handle setting a breakpoint on a location
that already has one properly. Together with a series of related
changes this makes breakpoint handling signal-safe.
- FIXED: '$break_at'/3: proper clause reference in exception term when
removing a non-existing break.
- FIXED: with_mutex/2: do not consider exceptions uncaught when they
are caught outside the with_mutex/2.
- FIXED: read_term_at_line/6: do not silently catch non-error signals.
- FIXED: read_source_term_at_location/2: use setup_call_cleanup/3 to
avoid permanently suppressing messages in the event of a unexpected
exception.
- DEBUG: Add Prolog predicates to examine saved C exceptions.
- CLEANUP: Safer error handling in
callEventHook()
. Probably benigh.
- FIXED: Ensure consistent state for calling GC after an uncaught
exception.
[May 26 2018]
[May 25 2018]
- FIXED: Allow current_op/3 to work safely on temporary modules that may
destroy themselves while current_op/3 is in progress in another thread.
This fixes a crash in SWISH.
- FIXED: Make stack overflow message self-contained, so we can print
it from another thread.
- ENHANCED: Also avoid GC while unwinding to a watched frame in debug
mode.
- FIXED: Propagate raised stack overflow from
garbageCollect()
- FIXED: Maintain global/trail ratio when distributing remaining stack
space after the desired sizes exceed the limit. Avoids programs
doing only garbage collection.
- FIXED: It is no longer needed to run GC while unwinding to watched
stack frames as the
frameFinished()
handler can run GC when needed.
With very deep stacks holding many watched frames (call_cleanup/2),
this may lead to very slow exception handling.
[May 21 2018]
[May 18 2018]
- FIXED: Garbage collection while unwinding exceptions.
[May 16 2018]
- ADDED: listing/2: option
source(true)
to list collected snippets from
the source files. Practical for multifile predicates! Suggested by
Paul Tarau, Kyndi.
- MODIFIED: listing/0,1,2, portray_clause: default settings generate
the preferred layout (indent 4, spaces, ! on a line).
- ADDED: listing/2 to provide options. Currently supports variable_names
option. Preparing for more options.
[May 15 2018]
- DOC: Fixed docs for PL_thread_attach_engine() changes for 7.7.14.
- ENHANCED: listing/0,1: try to restore the original variable names
using clause_info/5. Suggested by Paul Tarau, Kyndi.
- FIXED: Avoid nested
acquire_def()
. Benign, but triggers an assertion
failure when compiled for maintenance debugging.
- FIXED: Possible GC crash related to exception unwinding where the
topmost goal is a meta-called control structure.
- DOC: Fixed errornous
-S
and --M
options.
[May 14 2018]
[May 13 2018]
- ENHANCED: In gen_assoc/3, automatically use get_assoc/3 if Key is
ground. This can significantly improve efficiency in cases users use
gen_assoc/3 instead of get_assoc/3. Importantly, this also improves
determinism and retains full generality. A motivating example was
recently provided by Boris Vassilev when implementing a DFA that can
both parse and generate lists. The transition table can be modeled via
nested association lists, associating states to further associations
that map characters from the alphabet to subsequent states. With this
patch, using gen_assoc/3 for the latter ensures determinsm if possible
and still lets you generate all solutions for more general queries.
[May 14 2018]
- FIXED: Issue#71:
format('~f', [1e100])
on Windows truncated to 27
characters due to pre-C99 version is snprintf()
. Note that recent
versions of Windows should be C99 compliant according to the MS docs.
New code should work with both versions.
- MODIFIED: Load stack and table space limitations from register keys
stackLimit
and tableSpace
. The latter is new. The stacks were
handled individually.
- FIXED: Reclaiming stack space while unwinding an overflow exception
did not GC when the overflow was caused by the local stack while the
global stack is tight.
- FIXED: read_term/3: Possible crash when running out of stack and
subterm positions are requested.
[May 9 2018]
- FIXED: Make spare space on local stack large enough to call
debugmode()
.
[May 7 2018]
- TEST: Accept modified overflow context
- FIXED: Processed commandline arguments must not go to argv.
[May 6 2018]
- MODIFIED: Dumped the long options with a single
-
. This was
deprecated for a long time. Improved option processing consistency
and --help output. Use --stack_limit=size and --table_space=size
rather than the old C-Prolog derived -Lsize, etc.
- TEST: Speedup test_code_type.pl test
[May 5 2018]
- ADDED: Prolog flag stack_limit.
- MODIFIED: Replaced separate local, global and trail stack limits with
a single stack limit.
- MODIFIED: Enforce trail limit to be 1/6h of the global limit.
About to delete altogether.
- FIXED: On resource errors we need to enable the spare room of all
stacks.
[May 4 2018]
- FIXED: Pass through the stack that cannot be grown to avoid messages
about stack overflow for the wrong stack.
[May 7 2018]
- FIXED: tabling: collision of variant term between predicates with
the same name but different tabling modes. Wouter Beek.
[May 3 2018]
- FIXED: Avoid trying URIs as file names.
[May 2 2018]
- ENHANCED: Handle broken QLF files that are write protected
- ENHANCED: Automatically recompile .QLF files when they are
incompatible.
- CLEANUP: QLF error handling, recover from QLF errors.
- ENHANCED: QLF error handling.
- MODIFIED: '$qlf_info'/7 moved from 5 to 7 arguments. New version is
should reliably raise an exception if the file is not a valid QLF file.
- ENHANCED: Avoid unrecoverable error if we find an illegal string on
a QLF file.
- ENHANCED: Reduce memory usage and remove 96M constant limit from
saved states.
[May 1 2018]
- DEBUG: uninstantiated var
- ENHANCED: Save/load unsigned integers for various properties.
- ENHANCED: Use unsigned integers for XR references in QLF files.
- ENHANCED: Store opcodes as unsigned integers. Makes states more
compact and faster.
- MODIFIED: QLF file integer encoding to be both more space and time
efficient. Based on zigzag encoding.
- DOC: Move tabling documentation to core
- MODIFIED: Moved library(tabling) to the preloaded core so we do no
longer need to load the library. This notably improves compatibility
with other Prolog implementations that provide tabling.
- ENHANCED: Output arguments in mode-directed tabled predicates must
be unbound. Now throws an
uninstantiaton_error(NonVar)
. Discussed on
mailinglist.
- MODIFIED:
current_prolog_flag(argv, Argv)
now includes options (-*)
that are not processed by Prolog. The documentation already suggested
this, but in practice such options were silently ignored.
- MODIFIED: More consistent commandline argument processing.
In particular, drop +tty and -tty, replaced by --tty[=bool].
In general all boolean options may now be specified as --name=bool,
--name, --no-name or --noname. Updated manpage (including updated
license statement).
- FIXED: loading qlf files does not decrement the reference count of
atoms loaded from the qlf file. This is typically no problem as such
atoms are generally static anyway, but does prevent our obfuscation
check to work. Paulo Moura.
[Apr 30 2018]
- DISTRO: Drop Ubuntu zesty and add bionic.
- DOC: final review
- DOC: New options for saving programs.
- MODIFIED: saved states now by default use
halt
as toplevel if at
least one goal is specified.
- DOC: Document additional mode directed tabling modes for YAP. Paulo
Moura.
- DOC: Typo in mode-directed tabling options.
[Apr 29 2018]
- FIXED: qsave_program/2 entry point handling for imported entry
points. Nicos Angelopoulos.
- FIXED: Premature free of deep index. Must be left to lingering.
Searched this for some time. Reports and comments from Johan Romme,
Edison Mera and Keri Harris.
- MODIFIED: initialize color terminal after loading ~/.swiplrc but
before loading other source files. Used to be just before entering the
interactive toplevel only. Based on pull request #295 by TymonSerock.
- FIXED: New BaseName() may yield incorrect results.
- DEBUG: we should not check the stats of incomplete indexes as they
are concurrently updated. Unlikely to be broken anyway.
- DEBUG: we must sync checking the predicate for retractall/1
- FIXED: pack_install/1 from a file:// uri. Nicos Angelopoulos
[Apr 27 2018]
- PORT: Make new runtime support compile on Windows
- MODIFIED: zipper_goto/2 fails instead of raising an exception.
[Apr 26 2018]
- ENHANCED: predicate_property/2: avoid that
predicate_property(iso,
+Head)
autoloads the predicate. This can lead to non-terminating
autoloading and generally creates unnecessary predicate imports.
[Apr 23 2018]
- DOC: New runtime facilities
- ADDED: Prolog flag
res_keep_foreign
to stop deleting temporary
shared objects for debugging purposes.
[Apr 21 2018]
- ADDED: --enable-one-file option to create a single-file executable
for ELF systems
[Apr 20 2018]
- MODIFIED: Deleted save class
kernal
. This didn't do anything
any more, but was still allowed and documented.
[Apr 19 2018]
- ADDED: control method and compression level for adding files.
- FIXED: Interactive redefinition of modules.
- ADDED: Allow cloning a zipper so we can provide concurent access.
This change switches for file-based handling of zip files to memory
mapping.
- MINIZIP: Added
unzClone()
to clone a context for concurrent access.
[Apr 17 2018]
- ADDED: Hook the core file predicates when they encounter an IRI.
[Apr 24 2018]
- TEST: Several new file handling tests
- SECURITY: Various possible buffer overruns in file name operations.
- DOC: Document modified file_directory_name/2 and file_base_name/2.
- MODIFIED: Make file_base_name/2 POSIX compliant.
- CLEANUP: Changed calling convention for BaseName() as this will
not always be the tail of the input and thus requires a buffer like
DirName().
- MODIFIED: Make file_directory_name/2 compliant with POSIX dirname.
This notably implies that `/a/b/` is translated to `/a` rather than
`/a/b`. Volker Wysk.
[Apr 20 2018]
- FIXED: read_link/3 respecting the file system character encoding.
Volker Wysk.
[Apr 17 2018]
- CLEANUP: Additional documentation and cleanup of the naming.
- FIXED: Close underlying stream on zip_close/1.
- ADDED: Allow closing zipper while an entry is open for reading.
[Apr 16 2018]
- DOC: Document code obfuscation
- MODIFIED: autoload/1: using
undefined(error)
it throws an exception
existence_error(procedures, List)
, where list holds the undefined
procedures and the places these are called from.
- CLEANUP: Make parts of list_undefined/0 reusable.
- CLEANUP: Merge saved state option handling and checking to use one
declaration.
- FIXED: save state handling of multifile predicates where the saved
clauses use explicit context: new clauses should do so too.
- ENHANCED: Do not keep track of source files and source lines when
code obfuscation is enabled.
[Apr 12 2018]
- ADDED: $map_id/2 to map identifiers (atoms and functor) while saving
a state.
[Apr 10 2018]
- FIXED: '$size_stream'/2: raise exception if this value is not known.
[Apr 6 2018]
- TMPO: Avoid exytra field
- CLEANUP: Misleading indentation
[Apr 9 2018]
- BUILD: Restore old --server= behavior to only specify the host.
[Apr 8 2018]
- FIXED: get_single_char/1 to clear timeout error from stream after it
is mapped to an exception. Reported by Jamie Moschella.
[Apr 6 2018]
- DEBUG: Lock predicate while running
checkDefinition()
[Apr 5 2018]
- FIXED: Possible crash of
markPredicatesInEnvironments()
locking
LD->clauses.local_shift_mutex while the thread dies and this mutex is
being deleted. Removed the lock as the race it protects is already
handled by LD->thread.scan_lock.
[Apr 4 2018]
- ADDED: tmp_file_stream/3 has a new mode -File,-Stream,+Options and
takes the options encoding and extension.
[Apr 3 2018]
[Mar 31 2018]
- DOC: Updated "Is SWPL right for me?"
[Mar 30 2018]
- TEST: Make static code protection tests conditional so we can run
code analysis.
- DOC: Typos
[Mar 15 2018]
- FIXED:
liubrary(prolog_colour)
: avoid exception if module is not
valid and colour invalid modules as an error.
[Feb 24 2018]
- ENHANCED: Do cheap tests in growStacks before doing anything.
[Mar 23 2018]
- DOC: Fixed several typo's.
[Mar 22 2018]
- CLEANUP: Remove conditional autoconf stuff and other MSVC targeted
parts of the prepare script. They are out of date anyway.
[Feb 18 2018]
- BUILD: "prepare" script rewritten prepare script rewritten for
legibility and to reorganize really bizarre (and suspiciously
problematic) stuff that looks like an accumulation of historical
"quick fixes". Especially the download of documentation was overly
complex and frankly inscrutable. Used bash-isms instead of pure "sh"
mold. The code has been checked with https://www.shellcheck.net/ Works
on Linux. Unfortunately I have no access to a mingw installation,
so it needs to be run there too.
[Mar 15 2018]
- FIXED:
liubrary(prolog_colour)
: avoid exception if module is not
valid and colour invalid modules as an error.
[Mar 9 2018]
- TEST: Fixed shared dynamic predicate test.
[Mar 7 2018]
- TEST:L Modify test_shared_dynamic testcase to support multiple
producers+consumers so that clause/index accesses are put under
increased concurrency pressure
- FIXED: wait for incomplete indexes to complete before retracting
clauses
[Feb 24 2018]
[Feb 19 2018]
- FIXED: failure to clear LD->outofstack if
unify_finished()
raises
a stack overflow. Results in fatal error: failed to recover from
global-overflow.
[Feb 16 2018]
- PORT: Make our portability layer for accessing shared objects available
from libswipl to simplify the portability of
library(ffi)
.
- PORT: Added libffi to the MinGW prerequisites, preparing future
Windows builds.
[Feb 17 2018]
- DOC: CLP(B): Add usage example for cardinality constraint.
[Feb 24 2018]
- ENHANCED: Wait for indexes to complete rather than creating them
opportunistically.
- CLEANUP: Consistently use iarg_t for indexed argument positions.
- ENHANCED: Do cheap tests in growStacks before doing anything.
- FIXED: concurrent/2 and concurrent_maplist/2-4: if no threads are
used still commit to the first solution of the called goals.
[Feb 19 2018]
- FIXED: failure to clear LD->outofstack if
unify_finished()
raises
a stack overflow. Results in fatal error: failed to recover from
global-overflow.
[Feb 16 2018]
- PORT: Make our portability layer for accessing shared objects available
from libswipl to simplify the portability of
library(ffi)
.
- PORT: Added libffi to the MinGW prerequisites, preparing future
Windows builds.
[Feb 17 2018]
- DOC: CLP(B): Add usage example for cardinality constraint.
[Feb 16 2018]
- FIXED: Lazy restart of "gc" thread. This notably causes the
test_gc_thread_startup.pl test suite to fail. As stopping this thread
is not commonplace this only causes problems in extreme use cases.
[Feb 13 2018]
- FIXED: indexing of dynamic predicates used during compilation.
- FIXED: predicate_property/2: last_modified_generation property for
thread-local predicates. Also fixes (rather theoretical) integer
overflow for counted clauses.
[Feb 8 2018]
- DOC: DCG basics processes upper- and lowercase hexadecimal digits.
[Feb 7 2018]
- DOC: Improve description of the new mitigate_spectre flag. In
particular, note that the ability to run subsets of Prolog code, let
alone arbitrary Prolog code, is not a necessary condition for Spectre
attacks. It suffices that sensitive data is speculatively accessed,
and that this data can be leaked. Also trusted code may be vulnerable
to this if it contains branches that are dependent on untrusted data.
Decreasing the resolution of timers does not reliably prevent
Spectre attacks. Full mitigation may require compiler support to
disable speculative access to sensitive data.
See https://github.com/SWI-Prolog/roadmap/issues/54 .
- SECURITY: allow reduced timer resolution to mitigate Spectre, notably
in Pengine (SWISH) server.
- FIXED: PL_get_nchars() to raise an error of CVT_EXCEPTION and
REP_ISO_LATIN_1 are give and the input contains characters > 255.
[Feb 6 2018]
- DOC: CLP(B): Shorten pigeons example.
- FIXED: stream_property/2 to return the correct value for
buffer_size
before the buffer is allocated.
- DOC: Clarified handling cut in *->/2. Paulo Moura.
[Feb 5 2018]
- FIXED: issue#285: library(apply_macros): maplist/N expansion if the
closure is expanded to a qualified qoal. Markus Triska.
[Jan 26 2018]
[Jan 23 2018]
[Jan 22 2018]
- DEBUG: Add thread id to Foreign predicate %s did not clear exception
warning.
[Jan 17 2018]
- FIXED: Use Prolog character classification routines to determine
whether or not we need a space. Kilian Evang.
- FIXED: '$btree_find_node'/5 if key is not in tree. Boris Vassilev.
[Jan 16 2018]
- ENHANCED: get_assoc/3: use '$btree_find_node'/5
- MODFIED: '$btree_find_node'/4 has become '$btree_find_node'/5, using
a more flexible and intuitive interface.
- FIXED: compilation of pl-hash.c for WORDSBIGENDIAN machines. Richard
Jackson.
- PORT: Move defining _POSIX_PTHREAD_SEMANTICS to configure to also
fix Solaris issues in other files.
[Jan 15 2018]
- FIXED: library(prolog_xref): operator handling. This fixes notably
locally defined operators for library(prolog_colour).
- FIXED: library(prolog_colour): handle
:- op(Pri, Type, []).
that
should define the list as an operator.
- PORT: Find proper grep for float_words_bigendian test. Richard
Jackson.
- PORT: Avoid shell syntax error on empty IFPROLOG. Richard Jackson.
[Jan 14 2018]
- PORT: get POSIX
sigwait()
on Solaris. Richard Jackson.
- PORT: do not use flags for compiling mkvmi.c. Richard Jackson.
- PORT: write special floats for machines with
fpclass()
(Solaris).
Richard Jackson.
[Feb 16 2018]
- FIXED: Lazy restart of "gc" thread. This notably causes the
test_gc_thread_startup.pl test suite to fail. As stopping this thread
is not commonplace this only causes problems in extreme use cases.
[Feb 13 2018]
- FIXED: indexing of dynamic predicates used during compilation.
- FIXED: predicate_property/2: last_modified_generation property for
thread-local predicates. Also fixes (rather theoretical) integer
overflow for counted clauses.
[Feb 8 2018]
- DOC: DCG basics processes upper- and lowercase hexadecimal digits.
[Feb 7 2018]
- DOC: Improve description of the new mitigate_spectre flag. In
particular, note that the ability to run subsets of Prolog code, let
alone arbitrary Prolog code, is not a necessary condition for Spectre
attacks. It suffices that sensitive data is speculatively accessed,
and that this data can be leaked. Also trusted code may be vulnerable
to this if it contains branches that are dependent on untrusted data.
Decreasing the resolution of timers does not reliably prevent
Spectre attacks. Full mitigation may require compiler support to
disable speculative access to sensitive data.
See https://github.com/SWI-Prolog/roadmap/issues/54 .
- SECURITY: allow reduced timer resolution to mitigate Spectre, notably
in Pengine (SWISH) server.
- FIXED: PL_get_nchars() to raise an error of CVT_EXCEPTION and
REP_ISO_LATIN_1 are give and the input contains characters > 255.
[Feb 6 2018]
- DOC: CLP(B): Shorten pigeons example.
- FIXED: stream_property/2 to return the correct value for
buffer_size
before the buffer is allocated.
- DOC: Clarified handling cut in *->/2. Paulo Moura.
[Feb 5 2018]
- FIXED: issue#285: library(apply_macros): maplist/N expansion if the
closure is expanded to a qualified qoal. Markus Triska.
[Jan 26 2018]
[Jan 23 2018]
[Jan 22 2018]
- DEBUG: Add thread id to Foreign predicate %s did not clear exception
warning.
[Jan 17 2018]
- FIXED: Use Prolog character classification routines to determine
whether or not we need a space. Kilian Evang.
- FIXED: '$btree_find_node'/5 if key is not in tree. Boris Vassilev.
[Jan 16 2018]
- ENHANCED: get_assoc/3: use '$btree_find_node'/5
- MODFIED: '$btree_find_node'/4 has become '$btree_find_node'/5, using
a more flexible and intuitive interface.
- FIXED: compilation of pl-hash.c for WORDSBIGENDIAN machines. Richard
Jackson.
- PORT: Move defining _POSIX_PTHREAD_SEMANTICS to configure to also
fix Solaris issues in other files.
[Jan 15 2018]
- FIXED: library(prolog_xref): operator handling. This fixes notably
locally defined operators for library(prolog_colour).
- FIXED: library(prolog_colour): handle
:- op(Pri, Type, []).
that
should define the list as an operator.
- PORT: Find proper grep for float_words_bigendian test. Richard
Jackson.
- PORT: Avoid shell syntax error on empty IFPROLOG. Richard Jackson.
[Jan 14 2018]
- PORT: get POSIX
sigwait()
on Solaris. Richard Jackson.
- PORT: do not use flags for compiling mkvmi.c. Richard Jackson.
- PORT: write special floats for machines with
fpclass()
(Solaris).
Richard Jackson.
[Jan 12 2018]
- CLEANUP: Avoid strict-aliasing issues in some of the Windows code.
- FIXED: Port to 32-bit platforms. Fixes
73e5eb44f40ae3e96e25bff39d7c50c2e016f6d9.
- FIXED: Possibility of GC thread missing signals, notably to abort
when the system is idle.
[Jan 10 2018]
- FIXED: Avoid message that [] threads did not terminate. This MODIFIES
the return type for the PL_thread_attr_t.cancel function from
int
to an enum rc_cancel
. Old code is binary compatible but leads to
a C compiler warning.
[Jan 9 2018]
- PORT: do not bump predicate generations twice on 32 bit Windows when
calling
setGenerationFrameVal()
[Jan 8 2018]
- ENHANCED: self-kill after receiving a fatal signal
- ADDED: set_prolog_gc_thread/1 to control the
gc
flag using a
supported API.
- ADDED: prolog_alert_signal/2 to query/set the signal used for alerts
dynamically.
- ENHANCED: Avoid using signals to talk to the
gc
thread. This reduces
signal dependency.
- FIXED: Compilation error for single-threaded version. Roberto Bagnara.
- FIXED: debug message on signal processing
[Jan 5 2018]
[Jan 2 2018]
[Dec 29 2017]
- FIXED: Resolve a race condition if two threads join the same thread.
This happens in particular when calling halt/0 while a thread is
being waited for. The second thread now raises an existence error.
Wouter Beek.
[Dec 22 2017]
- ENHANCED:
sigCrashHandler()
to self-kill the specific thread
[Dec 21 2017]
- TEST: Relax
agc-2
test as it may legally fail on heavily loaded
and/or slow machines. Keri Harris.
[Dec 20 2017]
- FIXED: format/3: Slock()/Sunlock() balancing.
- FIXED: Errornous calls to new
setGenerationFrame()
.
- PORT: install TeX fonts for generating plaintext manual.
- ENHANCED: library(nb_set): avoid cyclic term error when compiled with
occurs check set to error.
[Dec 19 2017]
- DEBUG: Fixed consistency check in nextClause__LD().
- MODIFIED: current_atom/1 no longer returns the reserved atom
'<garbage_collected>'. This atom blocks internal consistency checks.
- DEBUG: make -d chk_secure work again.
- TEST: findnsols/4 AGC interaction.
- FIXED: findnsols/4: prevent early release of findall bag, causing a
crash in AGC. Found by Wouter Beek.
- TEST: Make save state tests run on Windows.
- TEST: Avoid loading
library(limit)
if the shared object does not exist.
- CLEANUP: format/3 and friends: avoid start/endCritical to allow for
signal processing and move Slock() to the wrapper to make its use
obviously correct.
- FIXED: Avoid critical regions to stop processing fatal signals such
as SEGV. Synchronous handling of such signals in Prolog leads to a
signal handling loop.
[Dec 18 2017]
- TEST: Allow save-program tests to run concurrently by avoiding fixed
file names.
- CLEANUP: variant/2: Avoid copying inunstantiated data. Although
benign, the old implementation leads to messages from debugging tools
and performs unnecessary work.
- FIXED:
markAccessedPredicates()
did not use atomic management of the
last access generation.
- FIXED: mistakes in previous commit
- FIXED: Race conditions establishing the generation at which a
predicate is about to be accessed for retract/1, retractall/1,
clause/2 and nth_clause/3. May lead to accessing freed clauses,
typically causing a crash.
- CLEANUP: retract/1: remove start/
endCritical()
calls. They are no
longer needed and were not properly balanced.
- CLEANUP:
gcClauseRefs()
can be static in pl-proc.c
- FIXED: race condition when adding a fresh atom to a bucket while
rehashing is in progress that may cause the bucket to become corrupted
[Dec 16 2017]
- FIXED: Use UTF-8 encoding for CLP(FD) source code, closing #281.
Without this directive, you may get warnings when CLP(FD) is used in
non-UTF8 environments.
For example, with LANG=C, I previously got:
Warning: clpfd.pl:5463: 'clpfd.pl':5463:26: Illegal multibyte
Sequence
Warning: clpfd.pl:6101: 'clpfd.pl':6119:21: Illegal multibyte
Sequence
Now, library(clpfd) is loaded without warnings also with LANG=C.
- PORT: Provide fallback for
sigCrashHandler()
- PORT: Win32:
pthread_setname_np()
is a stub in some versions of the
winpthread library. Avoid it.
- CLEANUP: Avoid compiler warnings
- PORT: Updated build instructions for Ubuntu 17.10
- TEST: Added test case used for tracking AGC issue
- CLEANUP: marking atoms
- FIXED: Possibility that atoms are not marked for GC. With Keri Harris.
[Dec 15 2017]
- DEBUG: More atom debugging stuff
- DEBUG: Make -DO_DEBUG_ATOMGC work again.
- ENHANCED: Avoid looping when catching a fatal signal in foreign
extensions. Now tries: get back to Prolog using
a
longjmp()
. Note that this may leak resources.
If that fails, try to print a stack trace and exit.
Abramo Bagnara.
[Dec 13 2017]
- FIXED: mutex_statistics/0 printing wrong value for lock count if the
mutex is locked (this predicate only supports analysis
of performance issues in multi-threaded applications).
- MODIFIED: Exit with status 4 when using 'e' from the debugger.
Indicate exit status on the terminal with exitting from
the debugger and system errors.
- DOC: wrong arity for thread_join/1, so it doesn't show up in the
manual completion.
[Dec 12 2017]
- TEST: Make test thread_agc_findall.pl both test different and equal
prefixes, stressing AGC better.
- TEST: Do not considet queue_gc tests failing to reclaim the queues
a fatal test failure. This just can happen.
- FIXED: retract/1: terminate with error if decompilation raises an
error. Without, it is possible that retract/1 should
logically succeed on a clause but skips the clause due
to e.g., a resource exception.
[Dec 11 2017]
- FIXED: Race condition updating the frame generation and the notion of
the global generation. Solution suggested by Keri Harris.
- CLEANUP: Move
global_generation()
to pl-inline.h for all platforms
for better readability.
- TEST: Remove more concrete file names to allow tests to run
concurrently.
- TEST: Avoid hard-coded file names such that we can run the test from
the same directory concurrently.
- FIXED: Lowering the oldest_generation must be thread-safe. Spotted by
Keri Harris.
- FIXED: Dirty predicates activated while CGC is running must have
their active generation updated.
- FIXED: race condition for cleaning lingering data on predicates.
[Dec 10 2017]
- FIXED: If we push an accessible predicate while clause GC is active,
we must update the generation if it is dirty.
- DEBUG: Protect against recursive use of
acquire_def()
- FIXED:
acquire_def()
cannot be used recursively. Doing so in
hashDefinition may lead to early release of indexes and
clause references.
[Dec 9 2017]
- FIXED: Possible race extending referenced predicate dynamic array.
- FIXED: Test for
kill()
, such that core dumps work after fatal signals
are trapped.
[Dec 8 2017]
- FIXED: Could not build due to syntax error. Wouter Beek.
[Dec 7 2017]
- ADDED: PL_cvt_i_uint(), PL_cvt_i_ulong(), PL_cvt_i_uint64()
- MODIFIED: PL_get_integer() no longer silently converts a float that
happens to be integer into an integer if O_GMP is used.
This is a remain from the days that floats were used as
a poor mens replacement for large integers.
- ENHANCED: On 64 bit machines we do not have to check bignums as these
never fit an int.
- ADDED: PL_cvt_i_uchar() and PL_cvt_i_ushort()
[Dec 6 2017]
- ADDED: PL_cvt_i_char() to accept one-character atoms, strings and lists
[Dec 5 2017]
- FIXED: open_string/2: double free if stream argument is instantiated.
[Dec 4 2017]
- FIXED: debug/1, nodebug/1: possible duplication of clauses when called
at the same time from multiple threads. Wolfram Diestel.
[Dec 1 2017]
- FIXED: perform DCG and goal expansion if the result of term-expansion
is a list.
- FIXED: Find clauses if depth limit for deep indexing is exceeded. Jos
de Roo.
[Nov 29 2017]
- ADDED: PL_cvt_i_char(), PL_cvt_i_short() and PL_cvt_i_int64(),
extending Quintus/SICStus style native C conversions
[Nov 28 2017]
- FIXED: Avoid triggering GC in fast if-then-else condition. If we do
so we have to make sure to mark the `then' branch in GC,
but the simplest seems to avoid GC in the first place.
Also added an assertion that we are not in this position.
Reported by Alan Baljeu.
[Nov 27 2017]
- DEBUG: Fix
print_val()
for summarised atoms
- DOC: Document new indexing
[Nov 25 2017]
- FIXED: Reported location of indexes
- ADDED: statistics/2 indexes_{created,destroyed} keys
[Nov 24 2017]
- ENHANCED: Small speedup of critical
linkVal()
function
[Nov 23 2017]
- ADDED: Report size of index tables. Updated documentation.
[Nov 22 2017]
- TEST: Update for new index representation
- MODIFIED:
predicate_property(P, indexed(Indexes))
.
- CLEANUP: Remove unneeded argument to
clauseNo()
[Nov 21 2017]
- REFACTOR: Move argument info into clause-list, such that it can be
reused in sub-indexes
- HACK: Use `lists' for all indexes to debug this
[Nov 27 2017]
- FIXED: cherry-pick of 4ffba6cc6648e1ef18165d0faf4995327965b25e needed
more edit.
[Nov 26 2017]
- FIXED: exception/3 handling for undefined predicates if the
predicate is locally defined rather than imported and thus
the predicate id does not change. Breaks lazy loading
of wordnet driver.
[Nov 20 2017]
- FIXED: Possibly crash in AGC when another thread is doing findall.
Keri Harris.
- ENHANCED: library(prolog_colour): handling of cross-module calls.
- FIXED: Avoid instantiation errors when colouring insufficiently
instantiated goals.
- ENHANCED: Colour library: classify m:Var and m:noncallable as errors.
- FIXED:
predicate_property(m:P, autoload(File))
raised an instantiation
error instead of enumerating the autoloadable predicates.
- PORT: Global generation handling on machines without atomic
64-bit operations. James Cowgill. This is a temporary
workaround. On the long run we should use libatomic to
guarantee properly ordered operations that are fully
portable. This should be a temporary fix for 32-bit
platforms (mips, mipsel, powerpc, powerpcspe)
[Nov 7 2017]
- ADDED: Multiline CSV rows where newlines are embedded in quoted fields.
[Nov 11 2017]
- FIXED:
atom_is_named_var()
: incorrect classification of wide-character
atoms leading to false multiton messages. Arthur Wang.
- FIXED: _<non-upper> is not subject to multiton check
[Nov 8 2017]
- FIXED: atom-garbage collection when compiled for single
threading. Abramo Bagnara.
[Nov 6 2017]
[Nov 3 2017]
- FIXED: maplist/N expansion for qualified goals. Samer Abdallah.
- FIXED: Engine symbol's are not referenced to allow reclaiming engines
in atom-gc. Thus, we should also not unregister them
on completion.
- DEBUG: Fix printing -1 reference issues
- CLEANUP: Duplicate test in atom-completion
[Nov 2 2017]
- CLEANUP: PL_unregister_atom(): style and properly check for references
dropping below zero.
- FIXED: veto atom-destruction in the type->release and
GD->atoms.gc_hook.
[Nov 1 2017]
- DOC: asserta/1,2, assertz/1,2, assert/1,2: join, add example.
- DOC: LaTeX syntax
- FIXED: Possible write reordering when creating the predicate supervisor
code.
- PORT: Enable shared objects for aarch* architecture on Linux.
- FIXED: possible race when rehashing functors
[Oct 31 2017]
- ADDED: load_files/2: option
check_script(+Boolean)
to prevent checking
for a #! script line.
- FIXED: Race conditions around GD->functors.highest.
[Oct 30 2017]
- TEST: More stressful test that found several issues in atom handling.
- FIXED: Avoid reordering of memory access impact
lookupFunctor()
.
- FIXED: possible race condition when calculating the highest atom index
- CLEANUP: Move
true(type, PL_BLOB_UNIQUE)
to inside the loop.
- FIXED: Allow for safe vetoing of atom destruction from the
release
hook.
- FIXED: Avoid overflow of atom reference counts.
- FIXED: race
condition(s)
when creating new atoms
- FIXED: race condition when iterating over atom table
[Oct 27 2017]
- ENHANCED: Avoid creating modules for '$def_modules'/2 (part of
expansion)
- ENHANCED: Avoid creating modules for qualified goals to non-existing
modules.
[Oct 29 2017]
- FIXED: Issue#275: mv/2 not to demand the target to exist when moving
a single file.
- DOC: number_chars/2 and name/2: clarified.
- DOC: Clarify the set predicates from library(lists). Still incomplete
and their definition is highly dubious.
- DOC: Removed
style_check(+atom)
from the docs and references to
it. Wouter Beek.
[Oct 28 2017]
- DOC: Document that number_codes/2 supports number signs.
- DOC: Document the difference between put_dict/4 and `.'-notation.
- DOC: Fixed documentation of get_dict/5.
- DOC: Typo in website name Wikipedi[A]; also HTTPS.
- DOC: Document the Reference (handle) argument of assertz/2.
- DOC: GET is an HTTP method, not a protocol.
- DOC: Document the support for Wildcard expansion in mv/2.
- DOC: Document important limitations of union/3.
- DOC: Explain the difference between get_dict/3 and `.`-notation.
- DOC: Document the default value of option eof_action/1 to open/4.
Also fixes some small typos.
- DOC: Documented the full range of control characters.
- DOC: Fixed examples that are given for char_type/2.
- DOC: Completed the table of supported types for must_be/2.
- DOC: Fixed typo in example for predicate_options.
[Oct 27 2017]
- FIXED: Race condition in
reserveAtom()
.
[Oct 26 2017]
- FIXED: Way simpler handling for starting AGC/CGC on a separate
thread lazily.
- PORT: Compilation on systems that do not have
pthread_attr_setaffinity_np()
and SCHED_SETAFFINITY. Paulo Moura.
- FIXED: more issues around the creation of the
gc
thread. Note that
these problems only affect programs in the startup phase.
[Oct 25 2017]
- FIXED: Continue if we cannot create the gc thread
- TEST: Test race conditions around gc thread startup.
- FIXED: Added thread_create/2 to xref meta-declarations.
- FIXED: Possible deadlock starting the
gc
threads. With help from
Keri Harris.
- ADDED: thread_affinity/3 to query and control the thread affinity mask
- FIXED: Crash on ARM cpus due to memory access reordering. With lots
of help from Keri Harris. This patch introduces some additional
state in free atoms to make similar issues easier to debug.
- ADDED: thread_create/3: option
affinity(CpuSet)
[Oct 22 2017]
- MODIFIED: current_key/1 used to succeed on empty record lists.
This seems inconsistent with the rest of the recorded database.
- FIXED: Cleanup recorded database after finishing enumeration. Can have
a very big performance impact and memory reduction on programs that
use recorded/2,3. Fabrizio Riguzzi.
- FIXED: recorded database race condition.
[Oct 21 2017]
[Oct 20 2017]
- MODIFIED: Mapping from errno to Prolog exceptions. The following
errors used to be mapped to existence errors and are now mapped to
more meaningful errors: - EPERM, EROFS and ENOTEMPTY are now mapped
to permission_error - ELOOP is now mapped to representation_error
[Oct 19 2017]
- FIXED:
get_procedure()
using GP_FINDHERE should not create the
target module.
[Oct 18 2017]
- ENHANCED: current_op/3: avoid creating a module if the name is
qualified with the name of an non-existing module.
- ENHANCED: time_file/2: support sub-second resolution on systems where
the time field of `struct stat` is a
timespec
instead of time_t
(e.g., Linux).
[Oct 17 2017]
- ENHANCED:
get_procedure()
: avoid creating modules and undefined
procedures.
[Oct 16 2017]
- ENHANCED: source_file/2: avoid creating predicate to find files from
its autoloaded definition.
- ENHANCED: Avoid '$c_current_predicate'/2 from creating the target
module on qualified calls.
- ENHANCED: write_term/2,3: if a
module(M)
argument is provided, but the
requested module does not exist use user
. This avoids recreating
the pengine module if a delayed pull_response query arrives after
the pengine destroy.
[Oct 14 2017]
[Oct 13 2017]
- FIXED: 65581363122939a884ea0583277b98f8e9d59a6e completed to actually
read \r line-terminated CSV files.
[Oct 11 2017]
- DOC: pack_property/2: make clear this concerns local packs.
Nicos Angelopoulos.
- ENHANCED: Issue#274: better determinism of
stream_property(-,+)
. Douglas Miles.
[Oct 10 2017]
- FIXED: pack installation: detect we need to build foreign resources
if configure.ac is present.
[Oct 6 2017]
[Oct 5 2017]
- ADDED: csv//2: allow for \r separated records.
- DOC: link to clib package
- DOC: Removed outdated argv handling example.
[Oct 4 2017]
- FIXED: PceEmacs colour support on the system modules. Requires keeping
track of calls to built-in predicates.
[Oct 3 2017]
- FIXED: fast_term_serialized/2: possible crash in mode (-,+) due to
gc while preparing room for the output term.
- TEST: error handling in fast_write/2.
- FIXED: External record handling crash instead of raising a permission
error when saving blobs. Wouter Beek.
- FIXED: In mode-directed tabling, an answer should be added to the
worklist for further processing if the output arguments have been
updated. This patch causes update/3 to fail if the output
arguments have not changed.
[Sep 29 2017]
- INSTALL: db package was renamed (long ago) to bdb
- FIXED: consider leap seconds when performing date&time calculations
using libtai
[Sep 28 2017]
- FIXED: Missed trailing when qualifying a meta-argument that is passed
a variable. jedixb king.
- FIXED: prolog_frame_attribute/3: properly trail goal arguments.
Shouldn't affect normal programs.
- FIXED: printing pointers in
checkData()
(internal consistency checking)
[Sep 24 2017]
- ADDED: interactor(?Title), complementing attach_console(?Title)
[Sep 20 2017]
[Sep 23 2017]
[Sep 22 2017]
- ADDED: goal_colours/3 hook to allow for context
awareness.
- ENHANCED: More efficient handling of
ord_intersection(S1, S2, [])
.
- ENHANCED: Further optimization of partial evaluation inside
disjunctions by finding shared variables with the remainder of
the body.
[Sep 21 2017]
- ENHANCED: Issue#62: library(prolog_xref): avoid exponential
explosion if the branches are not involved in partial evaluation.
Paul Singleton.
[Sep 20 2017]
- ADDED: Support colouring of {_} if it is a goal.
[Sep 19 2017]
- FIXED: atom reference count handling for both keys and values.
Only affects multi-threaded applications.
- PORT: More Windows SSL library name issues.
- ENHANCED:
library(prolog_code_walk)
: avoid implicit dependency
on gtrace.
- PORT: Deal with OpenSSL 1.1 DLL names for Win32.
[Sep 18 2017]
- FIXED: deal with parentheses_term_position/3 term when adding
meta-arguments. Samer Abdallah.
- PORT: Updated SSL DLL files in Windows distribution to 1.1
Package debian
[Jan 10 2019]
- STABLE: Updated from devel branch
[Nov 19 2018]
- FIXED: Do not call autoreconf
[Oct 29 2018]
- PORT: Avoid env -C for Ubuntu < 18.04
[Oct 21 2018]
- CMAKE: Change
rules
to use cmake
[Mar 22 2018]
[Feb 24 2018]
- PPA: Install package index file
- PPA: Install package index file
[Apr 23 2017]
Package PDT
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package RDF
[Nov 27 2018]
- TEST: Support -DINSTALL_TESTS=ON
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 10 2018]
- MODIFIED: Deleted long deprecated
library(rdf_ntriples)
. This file is
now a local test support file. Use the semweb libraries for reading
ntriples/Turtle and TriG files.
[Sep 22 2018]
Package archive
[Jan 13 2019]
- ADDED: archive_extract/3 add include option and support a list for
the remove_prefix option.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 31 2018]
- CMAKE: Allow setting LibArchive_ROOT as cmake variable
[Oct 29 2018]
- DOC: Added documention for cmake build
[Sep 21 2018]
[Jul 9 2018]
- MODIFIED:
format(all)
now excludes mtree as this format often results
in false detection.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package bdb
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 26 2018]
- PORT: Search for Macports lib and include locations
[Sep 21 2018]
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package chr
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 10 2018]
- BUILT: Make generation and testing work with autoconf
- CMAKE: add tests
- CMAKE: Working CHR build and install
[May 14 2018]
[Oct 30 2017]
- CLEANUP: internally renamed line_number into source_location to
reflect the change of the data structure.
- FIXED: line number patch: part of the code expected an integer
- ENHANCED: Print file name along with line numbers for CHR errors
and warnings. Wouter Beek.
Package clib
[Jan 12 2019]
- FIXED: Make sure
EPLEXCEPTION
is set when raising a socket error.
[Jan 10 2019]
- FIXED: Windows sockets: call WSACloseEvent() to discard associated
events.
[Jan 9 2019]
- CLEANUP: Removed dummy functions, DLL exports, duplicate types, etc.
[Jan 8 2019]
- MODIFIED: tcp_select/3, a replacement for wait_for_input/3 that allowed
for Windows event processing and timeouts has been removed because
this does not fit with the current implementation of Windows sockets.
Cleanup and document related material.
- MODIFIED: use blob for socket handles. These used to be terms of
the shape '$socket'(Integer). Blobs provide safety.
- ENHANCED: Get rid of integer socket wrapper representation, preparing
for blob-handles.
[Jan 9 2019]
- FIXED: Clean shutdown for sockets, notably on Windows.
[Jan 8 2019]
- FIXED: add_stream_to_pool/2 meta predicate arguments (: -> 0).
- FIXED: library(streampool). Use tcp_select/3 on Windows as the library
only works for sockets on Windows. Also updated the comments to be
PlDoc compliant. Note that this library is rarely used since we have
multiple threads.
[Jan 7 2019]
- MODIFIED: library(socket) now throws exceptions of the form
socket_error(Code, Message)
, which used to be Message. Code is
the lowercase version of the C macro, e.g. epipe
. Code handling
socket_error(Message)
must be adjusted. Code that must be backward
compatible must check for both errors.
- ENHANCED: socket error reporting for POSIX systems.
[Dec 18 2018]
[Nov 27 2018]
- TEST: Support -DINSTALL_TESTS=ON
[Nov 22 2018]
- PORT: Always use
execve()
for better portability with Android termux.
- ADDED: process_create/3: option
environment(+List)
compatible with
SICStus 4.1. Unlike the old env(+List)
, the environment is inherited.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Nov 17 2018]
[Oct 27 2018]
[Oct 26 2018]
- CMAKE: Avoid new GREATER_EQUAL
[Oct 23 2018]
- PORT: Allow runtime selection of
posix_spawn()
, fork()
or vfork()
to create processes.
- PORT: Provide process_create/3 based on
posix_spawn()
for better
portability.
[Oct 9 2018]
- ADDED: directory_member/3 to find members of a directory. Offers
various filters and recursive search that is safe against cycles.
[Oct 4 2018]
- PORT: Work around bug un Ubuntu 18.04 uuid-config that claims the
wrong directory for -lossp-uuid. As the name (rather than -luuid on
some platforms) is explicit we retry searching default locations.
- PORT: Stricter checking for OSSP-UUID
- CMAKE: More robust discovery of ossp-uuid library
[Sep 21 2018]
[Jul 20 2018]
- DOC: Document UDP broadcast terms envelope
[Jul 19 2018]
[Jun 27 2018]
- DOC: process_wait/3: document that Status is
timeout
if the time
limit is exceeded.
[Jun 12 2018]
- PORT: Windows handling of IP multicast options.
[Jun 11 2018]
[Jun 10 2018]
- ADDED: support multicast network for udp_broadcast
- ADDED: Support multicast sockets.
- ADDED: Add a hook to implement invited joining to a unicast network.
[Jun 6 2018]
- ADDED: Unicast UDP broadcast handling.
- MODIFIED: Allow specifying the UDP message serialization per scope.
- REDESIGN: Use
poll()
to handle multiple sockets. Preparing for
multiple broadcasting scopes and UDP broadcast/multicast/unicast.
- MODIFIED: Removed host_to_address/2 and
udp_broadcast_service(Scope,Service)
event. Both can easily be
implemented outside the core of this library.
[May 30 2018]
- ENHANCED: UDP broadcasting: implement collecting replies using
wait_for_input/3. This is more robust and cheaper.
- ADDED: tcp_getopt/2 to get info from a socket.
- ADDED: udp_broadcast_initialize/2 now processes an option list.
- MODIFIED: Add a magic string in front of our service such that we
can more easily ignore false messages that are not intended for us.
[May 29 2018]
- ADDED: Hookable UDP serialization
- CLEANUP:
library(udb_broadcast)
: layout, comments, reduce atom usage.
[Mar 17 2018]
[Mar 12 2018]
- ADDED: uri_encoded/3:
segment
encoding that also encodes "/" for
REST requests that include "/".
[Feb 5 2018]
[Jan 8 2018]
- COMPAT: fork/1: Stop
gc
thread using new supported API
[Dec 20 2017]
[Dec 19 2017]
- CLEANUP: remove unused winsock code
- PORT: winsock rewrite to bring Windows socket code in line with POSIX
socket code
- PORT: use correct winsock error codes
- ENHANCED: support blocking UDP sockets
- FIXED: enable signals to be handled when
send()
blocks on a
partially-full TCP buffer
Package clpqr
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
[Jul 3 2018]
- FIXED: clpq was not working with expressions containing floats,
since nf_number/1 was failing for numbers.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package cpp
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package cql
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
[May 22 2018]
- FIXED: Operator priority clash due to table operator.
Package http
[Jan 25 2019]
[Jan 10 2019]
- ENHANCED: library(http/hub), the websocket hub library to silence
epipe exceptions as these are a normal part of the communication.
[Jan 7 2019]
- MODIFIED: prevent printing epipe socket errors to the console.
[Jan 4 2019]
- FIXED: Issue#402: more traces of httpserver images.
- FIXED: Issue#402: httpserver.png was will in CMake spec. Dennis
Mitschell.
[Jan 3 2019]
[Jan 2 2019]
- DOC: status_page_hook/3 documentation improved.
- DOC: Deleted outdated examples and added examples for REST routing
and request rewriting for login management.
- DOC: http_handler/3 and http_dispatch/1.
[Jan 1 2019]
[Dec 31 2018]
- ADDED: Allow extracting values from the HTTP request in the handler
declaration.
- ADDED: Provide path matching to accommodate REST interfaces easier.
[Dec 17 2018]
- ADDED: html//1: Highlighting support for the
Format-Args
construct.
[Dec 8 2018]
- DOC: Install images. Anne Ogborn.
[Dec 6 2018]
[Dec 5 2018]
- FIXED: Make chunked_stream scan for a file handle safe against
concurrent closing of the stream. Could cause crashes when
stream_property/2 was used asynchronously on the chunked stream.
[Nov 27 2018]
- TEST: Support -DINSTALL_TESTS=ON
[Nov 29 2018]
[Nov 23 2018]
- MODIFIED: http_open/3: accept status codes 201 thru 299 as successful.
[Nov 26 2018]
- ADDED: http_server/2: option
entry_page(URI)
to provide more adequate
feedback if a server does not provide / as landing page.
[Nov 20 2018]
- ENHANCED: Avoid dependency of html_write.pl on the entire HTTP
framework.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Nov 11 2018]
- FIXED: http_open/3: an exception during input processing leads to a
leaked file descriptor if
keep_alive
is used.
- FIXED: json_read/2,3: accept exponent with explicit +, as in 3.4e+6.
[Oct 15 2018]
- PORT: Provide toplevel target, do not depend unconditionally on UUID
and only install http_unix_daemon.pl on Unix-like systems.
[Oct 10 2018]
- FIXED: pwp finding index.pwp and directory handling * The logic to
find index.pwp stopped working
because absolute_file_name/3 only works with files
unless
file_type(directory)
is specified as an option.
- This patch fixes the problem and closes SWI-Prolog/swipl-devel#345
[Oct 4 2018]
- TEST: Allow running from another directory.
[Sep 21 2018]
[Aug 14 2018]
[Jul 2 2018]
- ADDED: Setting
http:on_log_error
to act on failures to log HTTP
traffic.
[Jun 27 2018]
- ENHANCED:
library(http_log)
: do not propagate errors, i.e., prevent
service interruption if something is wrong with the log files.
[Jun 26 2018]
- FIXED: http_handler/3: If there are multiple prefix handlers for the
same path, use the one with the highest priority rather than the first.
[Jun 12 2018]
- ADDED: Use new
message_context
flag to add a time stamp to error
messages.
[Jun 8 2018]
- ADDED: Query and update session data from explicit sessions. Needed to
deal with events from websockets in SWISH.
- FIXED: WebSocket hub to acknowledge the close package. Fixes clean
termination of websocket connections if the close is initiated from
the other side.
- ADDED: supply the queue to the http:schedule_workers/1 hook.
- FIXED: Detach worker before exitting.
[May 14 2018]
- ADDED:
library(http_unix_daemon)
: pass timeout and keep_alive_timeout
- DOC: Instead of local, global and trail there is now the
stack_limit
option.
[Apr 16 2018]
- CLEANUP: Avoid singleton-in-branch warning when compiling for
optimisation.
[Apr 5 2018]
[Apr 4 2018]
[Apr 2 2018]
- FIXED: handling of defaults at end of json_object The following was
not properly working: :- json_object
point(x:integer, y:integer,
z:integer=0)
. json_to_prolog(json([x=5,y=6]), PrologTerm)
.
PrologTerm would not be properly instantiated because default values
were not being handled. Defaults worked properly in the middle of the
definition in json_object, but not at the end.
This patch fixes the problem.
[Mar 31 2018]
- FIXED: Improve and document the ambiguity that results from
http_parameters/2,3 processing both request parameters and POST of
form data.
- ENHANCED: If http:convert_parameter/3 throws and error, add an error
context that indicates the error is related to a specified parameter.
[Mar 23 2018]
[Mar 16 2018]
- ENHANCED: Performance improvement parsing HTTP headers.
- ADDED: Start JSON error messages
- CLEANUP: Remove conditional dictionary code
- TEST: Added test cases for all non-200 replies and completed the
implementation of some.
- ADDED: http_server/2: option
silent(true)
to silence the startup
message.
- CLEANUP: Generalise non-200 reply page generation
- MODIFIED: Moved json whitespace handling to C. Also removed //
comment handling that is no longer part of the JSON standard.
Almost doubles the performance.
[Mar 15 2018]
- ENHANCED: Moved reading JSON numbers to C, providing double performance
on a JSON benchmark.
- ADDED: Redirect all non-200 replies that produce data over
status_page_hook/4. This prepares for a non-HTML replies
- CLEANUP: library(http/http_header): generalise internal interfaces,
preparing for better control over non-200 responses.
[Mar 14 2018]
- CLEANUP: Remove outdated conditional code for thread CPU time.
- ADDED: json and yaml media types.
[Mar 9 2018]
- DOC: clarify new hooks as suggested by Markus Triska.
- CLEANUP: add missing multifile declaration.
[Mar 7 2018]
- MODIFIED: Use file_content_type/3 to add a
charset
declaration for
text files
- ADDED: file_content_type/2,3, reasoning about the charset for text
documents. Raised as issue by Markus Triska.
- MODIFIED: `.md` files are served as
text/markdown
instead of
text/x-markdown
.
- ENHANCED: Allow setting the flag
default_mimetype
before loading
library(http/mimetype).
[Feb 23 2018]
- DOC: JSON dict type tags aren't added by default
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package inclpr
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 17 2018]
- FIXED: PL_* functions error checking
[Sep 10 2018]
- CMAKE: Added cmake config
Package jpl
[Dec 13 2018]
- BUILD: Drop RUNPATH pointing at Java installation if
SWIPL_INSTALL_IN_LIB=ON and we are generation a .DEB package.
[Dec 11 2018]
- DOC: Some PlDoc styling and fixes.
- FIXED: CLASSPATH handling. Paulo Moura.
[Dec 10 2018]
- MODIFIED: Search
jpl.jar
over CLASSPATH before extending the
CLASSPATH. Simplifies embedding JPL in saved states. Paulo Moura.
- MODIFIED: When adding jpl.jar to CLASSPATH, do not add `.` if there
is no existing CLASSPATH (SECURITY).
[Nov 25 2018]
- PORT:
find_package(JNI)
not needed on Android
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Nov 1 2018]
[Oct 31 2018]
- TEST: java_in_prolog also requires junit.jar
[Oct 22 2018]
- TEST: Fix prolog-in-java test for changed location of the boot file
in the build tree.
[Oct 12 2018]
- PORT: Try to find junit.jar in Darwin locations.
- PORT: On MacOSX we seem to need a dylib to be loadable into the JVM.
- FIXED: Push the path where libjpl.so resides using -Djava.library.path
rather than the OS search path.
- TEST: Clean up and extended standalone JUNIT test cases
[Oct 11 2018]
- TEST: Fixed Test cases related to Iterator - Aliged to standard
JAVA spec
[Oct 9 2018]
- CLEANUP: Clean up uses of deprecated methods that gave warnings; Fix
casting of Double for Java SE 9 - no use of deprecated consturctor;
fixed JavaDoc warnings
[Oct 6 2018]
- MODIFIED: Aligned Iterator API
hasNext()
and next()
to standard Java
contract, improved javadoc few places
[Oct 9 2018]
- CMAKE: Added option JAVA_COMPATIBILITY to do/do not use -target and
-source options.
- CTEST: Make JPL test for Prolog in Java work
[Oct 8 2018]
- PORT: jpl_config_dylib/0: support libjawt.dylib and do not complain
about missing dependencies. Paulo Moura.
- CMAKE: Make Ctest work for JPL
- PORT: Try using java_home to find Java's home.
[Oct 6 2018]
- CMAKE: Install
library(jpl_config)
on relevant platforms (MacOS). Paulo
Moura.
[Sep 13 2018]
- MODIFIED: Issue#76: Atom.
toString()
now applies the Prolog quoting
rules rather then simply putting the text inside single quotes.
After discussion and code by Wouter Pasman and Paul Singleton.
[Sep 10 2018]
- CMAKE: Build and install jpl.so and jpl.pl
[Jan 16 2018]
- PORT: Do not fail the installation if junit.jar cannot be found.
Package libedit
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 22 2018]
- FIXED: Avoid loading both editline and readline.
[Oct 2 2018]
[Sep 25 2018]
[Jul 2 2018]
- FIXED: Issue#311: Avoid zero divisor when listing alternatives where
the longest is larger than the screen width. Wouter Beek.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package ltx2htm
[Jan 3 2019]
- FIXED: Translation of \term{Name}{} to HTML. Avoid spaces around :
as infix operator.
[Dec 6 2018]
- CMAKE: Add dependency on clib package
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 15 2018]
- PORT: Replace external shell commands with Prolog alternatives.
[Oct 8 2018]
- ADDED: Support \InputIfFileExists and \IfFileExists commands to deal
with conditional parts of the manual.
[Oct 3 2018]
- CLEANUP: Avoid duplicate files
[Sep 23 2018]
- BUILD: Sync latex2html installation with cmake one
[Sep 14 2018]
- ENHANCED: Simplify installation and support --quiet
[Sep 11 2018]
- CMAKE: First config version
Package nlp
[Jan 24 2019]
- FIXED: tokenize_atom/2 when the atom contains an illegal number could
result in a variable (unbound) extra token in the output.
[Nov 27 2018]
- FIXED: tokenize_atom/2: handle illegal floats as sequences of
alphanumerical characters.
[Nov 26 2018]
- ADDED: isub/4: allow for codes or chars input. Also reduces use of
malloc()
to improve the performance.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
[Jul 23 2018]
- FIXED: tokenize_atom/2: properly raise exception on errors converting
the input text.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package odbc
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 6 2018]
- TEST: Replace SQLite driver by SQLite3. Most tests fail. This is
also the case with the autotools version, so we'll investigate later.
- CMAKE: Cmake configuration added.
Package pcre
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 3 2018]
- CMAKE: Mark variables as advanced
[Sep 21 2018]
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package pengines
[Jan 6 2019]
- FIXED: failed pengine destruction if the pengine is aborted during
a timeout.
[Dec 25 2018]
- FIXED: Issue#103: Make write/1 emulation for Pengines compatible with
the normal write/1. Fabrizio Riguzzi.
[Dec 8 2018]
- DOC: Install images. Anne Ogborn
[Nov 21 2018]
- FIXED: Set the typein module while executing a query to facilitate
predicates such as op/3.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Nov 1 2018]
[Oct 30 2018]
- ADDED: Forward help output through pengines.
- FIXED: pengine print_message/2 hook to handle
ansi(Attrs, ...)
when
Attrs is not a list. Also avoid non-determinism that can cause long
delays for printing malformed messages.
[Sep 21 2018]
[Aug 24 2018]
[Jul 22 2018]
[Jun 20 2018]
- FIXED: Issue#39: conflict about listing/2. Wouter Beek.
[Jun 4 2018]
- REVERT: Reverted the changes to move from jQuery to use the new
fetch()
API for pengines.js. There are two many issues with the new
implementation. notably wrt to aborting queries and error handling.
The modifications will be kept in a branch jquery-to-fetch-api
.
[May 15 2018]
- DOC: Issue#35: must not Markus Triska.
[Apr 12 2018]
- FIXED: Support abort on browsers with the AbortController API and
restore the error handling.
[Apr 5 2018]
- COMPAT: Dynamically load fetch and promises if needed.
[Apr 4 2018]
- TEST: Replace phantomjs by slimerjs
[Sep 7 2016]
[Mar 1 2018]
- DOC: Clarified relation between terms parent/child and master/slave
- DOC: Use correct markup
- DOC: Clarified that we treat
parent/child" as synonymous to
master/child".
[Feb 28 2018]
[Feb 25 2018]
- FIXED: Do not send /ping before we got an id. This avoids "bad
request" messages.
[Feb 22 2018]
- FIXED: Relation between projection and $variable_names.
[Feb 21 2018]
- ENHANCED: Update the answer template if it is default and the user
modified the bindings.
[Feb 16 2018]
- FIXED: Properly return on a syntax error.
- FIXED: Instantiation error if no template was provided.
[Feb 13 2018]
- FIXED: Move parsing ask and template options for a remote Pengine
create to the pengine. This is needed as we first need to prepare
the source to get access to the relevant operator declarations.
- ENHANCED: improve determinism of pengine_property/2 by swapping
arguments.
[Feb 7 2018]
- SECURITY: Enable the
mitigate_spectre
flag.
Package pldoc
[Dec 30 2018]
- ENHANCED: Use
cdata(string)
to avoid stress on atom garbage collection
and possibly reduce fragmentation for the manual server.
[Dec 14 2018]
- FIXED: Support synopsis generation for non-terminals.
[Dec 13 2018]
- ENHANCED: Cache the most recent 25 search results to make "Next>"
work faster.
[Dec 12 2018]
- BUILD: Add
nlp
package dependency
- ENHANCED: Big speedup computing the source button link. Also prefer
system predicates when resolving unqualified predicates.
[Dec 11 2018]
- ADDED: Support quoted search
- DOC: Further enhance search. Find numbered variable names as
indication of a type and extend the list of related terms.
[Dec 9 2018]
- ENHANCED: Processing the search field: more selective matching, using
a synonym list and stemming to broaden the scope. Better presentation.
[Dec 8 2018]
- DOC: Issue#25: Extended description of package overview page.
Wouter beek
[Dec 3 2018]
- FIXED: Manual content tree on Windows. Must get canonical filename.
- ADDED: Support
code
and avoid non-determinism for code fragments
with illegal syntax.
- FIXED: Make sure doc markdown processing listens to time limit
exceptions.
[Nov 29 2018]
- DOC: Fixed documentation for library(doc_latex). Paulo Moura.
- FIXED: Issue http#121: images not showing in manual. Reported by
Erik Dominikus.
[Nov 28 2018]
- ADDED: doc_clean/1 to remove collected documentation for a module.
[Nov 26 2018]
- FIXED: Make manindex.db independent from the location where the manual
(and Prolog) is installed. Also makes the file considerable shorter.
- ENHANCED: doc_server/1: print proper location of documentation
server. Nicos Angelopoulos.
[Nov 22 2018]
[Nov 20 2018]
- ADDED: save_man_index/0, providing persistent caching for the HTML
manual index.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 29 2018]
- DOC: Deal with new file search paths for the manual.
[Oct 9 2018]
- CLEANUP: separate manual indexing from the rest of the code such
that we can access predicate summaries without loading the whole
documentation system.
[Oct 6 2018]
- ENHANCED: Use file_search_path/2 to find the HTML manual to be more
flexible about its location.
[Oct 1 2018]
- ENHANCED: Find loading synopsis for libraries without loading them.
[Sep 24 2018]
- FIXED: source_link option processing. Fixed some documentation issues.
[Sep 21 2018]
[Aug 24 2018]
- ENHANCED: Print a message if a <module> comment does not appear inside
a module.
[Jul 5 2018]
- FIXED: source links for predicates that are related to a module should
not resolve to a file defining another module.
[Jun 18 2018]
- FIXED: Illegal <!DOCTYPE> for generated HTML source.
[Apr 29 2018]
- PORT: Update pldoc.js to support jQuery 3. Simplified a lot.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package plunit
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
[Mar 30 2018]
- ADDED: show_coverage/2 sets the Prolog flag
coverage_analysis
to
true
while running to allow conditional code.
- ENHANCED: show_coverage/2: ignore $pred_option, better message,
typo in comments.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
[Dec 11 2017]
- MODIFIED: Depth limit when printing failure terms from 10 to 100.
[Nov 22 2017]
- ADDED: show_coverage/2. Predicate show_coverage/2 receives a list of
module names of interest as second argument and it prints detailed
information of the uncovered clauses that belong to any of those
modules. Statistics have been improved. Clauses originated from system
calls such as :-use_module or pldoc comments are no longer taken into
account to compute for the total number of clauses in a file.
Package protobufs
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 4 2018]
- TEST: Allow running from another directory
[Sep 21 2018]
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package readline
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 31 2018]
- CMAKE: Allow setting LibArchivReadlinecmake variable
[Oct 29 2018]
- CMAKE: Use default
find_path()
logic
- ENHANCED: Use Readline_ROOT instead of Readline_ROOT_DIR for
consistency.
- PORT: Trying to avoid binding to Apple's readline surrogate.
[Oct 22 2018]
- FIXED: Avoid loading both readline and editline interfaces
[Oct 2 2018]
- CMAKE: Fixed checks for readline functions and headers.
[Sep 22 2018]
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
Package semweb
[Nov 27 2018]
- TEST: Support -DINSTALL_TESTS=ON
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Nov 16 2018]
- FIXED: Properly process GRAPH keyword. Wouter Beek.
[Nov 12 2018]
- FIXED: Issue#85: allow for "GRAPH" keyword in TriG format.
Wouter Beek.
[Oct 11 2018]
[Oct 6 2018]
[Oct 4 2018]
- TEST: Allow running tests from a different directory
[Sep 24 2018]
- CLEANUP: Avoid unused variable and possibly uninitialized variable
warnings if NDEBUG is set.
[Sep 23 2018]
- BUILD: Fix building docs after rename of .txt to .md for consistency.
[Sep 22 2018]
[Sep 13 2018]
[Sep 3 2018]
- FIXED: correctly calculate end-position when converting strings with
decimal commas
[Aug 31 2018]
- ENHANCED: rdf_load/2, HTTP plugin: try decompressing also if the
content type is application/octet-stream and the URL ends in .gz.
[Aug 12 2018]
- FIXED: Legal N-Triples escape sequence (\') was not yet implemented.
[Jul 7 2018]
- FIXED: exception on file:// protocol.
[Jul 6 2018]
[Jun 12 2018]
- FIXED: Declare rdf_where/1 (rdf11:{}/1) to as sandbox-safe. Jacco van
Ossenbruggen.
[Jun 6 2018]
- FIXED: make date in example an xsd:date iso xsd:dateTime
[Feb 22 2018]
- DOC: Document the `prefixes/1' option of `rdf_load/[1,2]'.
- DOC: Changed type `TRiG' to `TriG'.
[Feb 20 2018]
[Jan 11 2018]
- DOC: Avoid Unicode in comment.
[Jan 8 2018]
[Jan 2 2018]
- FIXED: Turtle parser error recovery on an illegal IRIREF. Wouter Beek.
[Dec 21 2017]
[Dec 20 2017]
- ENHANCED: Add support for relaxed XSD date/time literal notation.
This adds support for the relaxed XSD date/time literal notations
that are already documented for rdf_canonical_literal/2, specifically:
[Dec 6 2017]
[Nov 22 2017]
- FIXED: prioritize base URI explicitly set through option.
- FIXED: File input clause for read_rdfa/3 would not be reached.
[Nov 4 2017]
- PORT: ntriple parser for platform with unsigned char (arm)
[Nov 3 2017]
- CLEANUP: Move RDF prefix handling into its own library as this can
also be used for XML and other RDF backends.
- FIXED: rdf_nth1/3, rdf_nth0/3: really raise a type error.
Package sgml
[Dec 30 2018]
[Dec 11 2018]
[Dec 8 2018]
- FIXED: Race condition due to misconfiguration in new CMake config.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 27 2018]
[Oct 11 2018]
[Oct 4 2018]
- TEST: Allow running from a different directory.
[Sep 22 2018]
[Jul 27 2018]
- FIXED: Enumerating all nodes for element name '*'. Reported by
Brian Nolan.
[Feb 28 2018]
- MODIFIED: Be more robust parsing incorrectly quoted attributes in
XML and SGML. Only a " or ' immediately following =\s* is taken
to start a quoted value. Quotes in other positions are considered
normal characters, but a warning is displayed.
- TEST: Fixed xsd_time_string/3 test after fixing the code.
- FIXED: Round trip for negative years. Wouter Beek.
- FIXED: Decimal seconds with leading zeros. Wouter Beek.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
[Jan 13 2018]
- SECURITY: Possible buffer overrun when generating error message
[Oct 29 2017]
- MODIFIED: Issue#21: Allow for years with more than 4 digits, as allows
in XML Schema part 2.
Package ssl
[Jan 7 2019]
- CLEANUP: Remove remaining dependencies on clib nonblockio.[ch].
[Dec 3 2018]
- FIXED: Hack to deal with TLSv1.3 possibility of false broken pipe
exception. Work in progress.
[Nov 27 2018]
- TEST: Support -DINSTALL_TESTS=ON
- BUILD: Make sure we have process_create/3 before building certificates
[Nov 21 2018]
- FIX: don't use crosscompiling paths to find openssl
[Nov 20 2018]
- BUILD: Avoid relying on ~/.swiplrc
[Nov 19 2018]
- BUILD: Respect BUILD_TESTING and move all test setup together
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Nov 16 2018]
- PORT: Use native
openssl
when cross compiling.
[Nov 7 2018]
- FIXED: Dependency issue creating ssl test certificates
[Nov 5 2018]
- TEST: Migrated shell script to generate test certificates to Prolog
and generalised it to allow generating the certificates in a different
directory such that we no longer need copy the test configuration to
the cmake binary directory.
[Oct 31 2018]
- CMAKE: Avoid unwanted substitutions in mkcerts.sh script
- TEST: Use a dynamically allocated ports for the test suite to avoid
conflicts from concurrent tests or running services.
- TEST: Get openssl utility from specified ROOT
[Oct 29 2018]
- FIXED: Duplicate
const
declaration in config file.
- PORT: Handle more X509_get0_signature() scenarios.
[Oct 5 2018]
- CMAKE: Make cleaning work, avoiding trying to remove the non-empty
test certificate directory.
[Oct 4 2018]
- CMAKE: build ssl tests in the cmake binary directory and allow running
ssl_test.pl
from the binary directory.
[Sep 29 2018]
- DOC: avoid complaints about odbc.bib
[Sep 25 2018]
- PORT: Added @macro@ to all entries of config.h.cmake
[Sep 22 2018]
[Aug 26 2018]
- CLEANUP: Avoid warning of alpn is not supported in this version
of libssl.
[Aug 24 2018]
- ADDED: Application-Layer Protocol Negotiation (ALPN) support. ALPN is
required for HTTP/2. Provided by James Cash with comments from Markus
Triska and Jan Wielemaker.
[May 16 2018]
- ENHANCED: Always set
close_parent(true)
in HTTP server hooks.
This ensures that HTTP timeouts are properly propagated.
Example:
:- use_module(library(http/thread_httpd)).
:- use_module(library(http/http_dispatch)).
:- use_module(library(http/http_unix_daemon)).
:- http_handler(/, handle_request, []).
handle_request(_Request) :- format("Content-type: text/plain~n~n"),
format("Hello!").
http:ssl_server_open_client_hook(_SSL0, SSL, _Options) :-
ssl_context(server, SSL,
[certificate_file('etc/server/server-cert.pem'),
key_file('etc/server/server-key.pem'),
password(apenoot1)]).
Put this code in http_server.pl and launch the server with:
$ p=etc/server; swipl https_server.pl --https \ --interactive
--port=4090 --timeout=0.1
Then connect with:
$ openssl s_client -connect localhost:4090
It should terminate almost instantly.
[Apr 19 2018]
- DOC: Clarify and update description of ssl_secure_ciphers/1.
- ADDED: Configuration support for TLS 1.3 in min/max_protocol_version.
TLS 1.3 is available with OpenSSL 1.1.1 or later.
Package swipl-win
[Oct 22 2018]
- FIXED: Make Qt Windows set its flags as readonly, so subsequent
setting by the user doesn't break the initialization process (notably:
doesn't load the commandline editors as that deadlocks the Qt console).
[Oct 19 2018]
- UPDATE: Avoid dependency on helpidx.pl. Requires more cleanup and
a new callback to re-add showing the predicate summary on hoover.
- CMAKE: Replace qmake with cmake to get uniform packaging and building.
- PORT: Avoid conflict over CT macro with newer Qt headers.
Package table
[Jan 15 2019]
- DOC: add table package docs
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 21 2018]
- CLEANUP: Avoid compiler warning
[Sep 6 2018]
- ENHANCED: Avoid
alloca()
for potentially large values.
- BUILD: Support cmake
Package tipc
[Jan 8 2019]
- MODIFIED: Use blobs for TIPC sockets, providing safety.
- UPDATE: Use pointer nbio_sock_t, syncing with clib package changes.
[Jan 7 2019]
- MODIFIED: As this library uses
nbio_error()
from the clib package,
all exceptions are now of the format socket_error(Code, Message)
.
This patch updates the documentation and message formatting.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 21 2018]
- BUILD: Deal with renamed overview file.
[Sep 22 2018]
[May 29 2018]
Package utf8proc
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Sep 22 2018]
Package windows
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 21 2018]
- CMAKE: Added cmake specification for
library(registry)
.
Package xpce
[Dec 18 2018]
[Dec 13 2018]
- FIXED: No longer process SIGPIPE and call Prolog. Calling Prolog
from an synchronous signal handler is not allowed, but there is no
point in this handler anyway.
[Dec 6 2018]
- CLEANUP: Moved atom operations to new library(atom). Reusing them
here.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 27 2018]
[Oct 23 2018]
[Oct 9 2018]
- MODIFIED: Remove hooks that redirect help/1 and apropos/1 to the
XPCE GUI. This code was based on the text based manual. As of
now help/1 and apropos/1 work in the commandline and graphical help
is only provided using the online manual at http://swi-prolog.org,
which can be deployed locally.
[Oct 6 2018]
- ADDED: PceEmacs: very minimal cmake mode
[Sep 19 2018]
- CLEANUP: Allow strict aliasing
[Sep 10 2018]
- CMAKE: Fixed font configuration
[Sep 8 2018]
- CMAKE: Config for core library
[Aug 24 2018]
- FIXED: Prolog navigator tracking for loading .QLF files.
[Jul 22 2018]
[Jul 21 2018]
- FIXED: Make pce config load/save work if pce is not imported into
the module user. This patch also fixes the encoding of the config
file to be UTF-8, avoiding limitations and compatibility issues.
[Jul 2 2018]
- PORT: Fixed a number of macro and typedef conflicts with the current
MinGW project.
- COMPAT: Sync stream definition with SWI-Prolog headers.
[May 13 2018]
- ENHANCED: text_buffer<-scan_syntax to handle \ inside quoted strings.
[Apr 24 2018]
- TEST: Avoid dependency on file_directory_name/2 deleting only
trailing /
- DEPLOY: Put all GUI tracer icons in resources such that the GUI tracer
can be included as a program resource.
[Apr 21 2018]
- CLEANUP: Avoid file search path hack
[Apr 22 2018]
- TEST: Explicitly import xpce
[Apr 16 2018]
- MODIFIED: Dropped introducing XPCE operators ?, @ and := at the global
level by default. Synchronised the priority of := from 990 to 800
to sync with the dict declaration.
[Mar 23 2018]
[Mar 22 2018]
- ADDED: PceEmacs: very simple YAML mode, forcing indentation using
spaces as demanded by YAML.
[Mar 15 2018]
- FIXED: Avoid giant exception terms overflowing X11 text drawing limits.
[Mar 3 2018]
- ADDED: Map *.plt to Prolog mode and make default_emacs_mode/2
a multifile predicate.
[Jan 15 2018]
- MODIFIED: If a callback from xpce to Prolog raises an error, this is
printed. XPCE has no proper way to deal with such errors and leaving
them around either causes them to be reported much later or being
ignored and printed as a non-cleared exception.
- FIXED: PceEmacs: avoid errors if a goal functor is not a proper atom.
Package zlib
[Dec 6 2018]
- TEST: avoid using gzip/gunzip utilities during zlib test suite. Extend
tests.
[Nov 18 2018]
- CLEANUP: Remove autoconf/make build infra structure
[Oct 4 2018]
- TEST: Allow test to run from another directory.
[Sep 22 2018]
[Aug 20 2018]
- FIXED: memory leak when gzip input consists of multiple parts.
[Feb 24 2018]
- INSTALL: Fix location of installed HTML for PPA
[Jan 23 2018]
- ENHANCED: More careful implementation of zcontrol