Did you know ... Search Documentation:
Title for pldoc(default)
Branch: stable (switch to development),
version to version

SWI-Prolog Changelog from version 6.6.4 to 6.6.6

[May 28 2014]

  • FIXED: Avoid crash in signal-checking when called from a non-prolog thread. This fixes atom-completion in swipl-win.exe on Windows. Reported by Douglas Miles.
  • FIXED: Meta-declaration for on_signal/3.
  • FIXED: Do not expand :- at_halt(G). when cross-referencing.

[May 27 2014]

  • DOC: Be more precise on when temporary files are deleted. Matt Lilley.

[May 26 2014]

  • FIXED: Invalid (but harmless) directive generated from exporting operators. Trapped by sandboxed loading.

[May 28 2014]

  • FIXED: Possible crash reloading a file. Jacco van Ossenbruggen (hand-copied from 47100fd1c436d58e9ff767db5fc7592e926077bd)

[May 22 2014]

  • FIXED: Prepare for errors while reading the history. Philippe Chatalic.

[May 20 2014]

  • FIXED: Do not save anything from volatile predicates that are not dynamic or multifile.
  • FIXED: '$qlf_include'/5: inconsistent representation of files. Causes problems if :- include/1 is the first term of a file. Douglas Miles.

[May 19 2014]

  • DOC: Path for MacOS app commandline version. Ognjen Savkovic.

[May 18 2014]

  • FIXED: Allow colouring options for predicates that have otherwise specified colour instructions. E.g., the 2nd argument of load_files/2.
  • FIXED: format_time/3: %f rounding. Igor Wojnicki.

[May 17 2014]

  • ADDED: library(prolog_colour): meta_declarations(Extra) to support variations on meta-predicate declarations.
  • FIXED: JIT clause indexing could mis the right argument in the following scenario: - There is a best index Ib, which is poor.
    • There is a normally better index I2, but the corresponding argument is not indexable.

    Although the scenario is not that common, it can lead to a huge slowdown. Found by Jos de Roo.

[May 14 2014]

  • FIXED: Location in error message when reading from a stream swapped line and line position.

[May 13 2014]

  • FIXED: Wrong declaration (new warning). Jacco van Ossenbruggen.

[May 12 2014]

  • FIXED: Avoid type error on arg(_, atom, _). Samer Abdallah.

[May 10 2014]

  • BUILD: Added missing dependency to support parallel build. Roberto Bagnara.

[May 7 2014]

  • FIXED: qsave_program/2 failed with autoload(false) The cleanup in commit 8f6a3ee28795c0bed893974ad07d0122be67b81c caused qsave_program/2 to fail anytime the autoload option was set to false. This restores the intended behavior of skipping autoload/0 in that case.

[May 2 2014]

  • DOC: Updated open/4 (Wouter Beek).

[Apr 28 2014]

  • ENHANCED: Base stack traces in Linux on backtrace(), dladdr() and addr2line(1). This produces stack traces at the line level and removes the need for libunwind on Linux.
  • FIXED: link local variable if it appears as Var:G or G@Var. Without, uninitialised memory may be used for Var, causing a crash. Guenter Kniesel.

[Apr 27 2014]

  • FIXED: variant_sha1/2 gave same hash for all indirect types (big integers, floats and strings). Jacco van Ossenbruggen.

[May 17 2014]

  • FIXED: JIT clause indexing could mis the right argument in the following scenario: - There is a best index Ib, which is poor.
    • There is a normally better index I2, but the corresponding argument is not indexable.

    Although the scenario is not that common, it can lead to a huge slowdown. Found by Jos de Roo.

[Apr 25 2014]

  • FIXED: Prepare to update git submodules

[Apr 22 2014]

  • GIT: Avoid directory names in git submodules to facilitate github Conflicts: .gitmodules
  • FIXED: Reading one byte after static array (innocent).

[Apr 18 2014]

  • FIXED: possible signed overflow when creating stand-alone resource archives. Very unlikely to occur in practice

[Apr 17 2014]

  • PORT: Avoid dependency on 8-byte atomic operations on 32-bit platforms. Allows compiling on ARMv6 (e.g., the Raspberry Pi)

[Jan 30 2014]

  • FIXED: Use atomic instructions for managing the thread signal mask. Using a mutex (as it was) can lead to a deadlock if raiseSignal() is interrupted by a signal.

[Apr 17 2014]

[Apr 16 2014]

  • FIXED: print_message/2: do not worry if user_outout does not exist (is flushed before writing to user_error to ensure proper ordering of buffered output).
  • ADDED: create_prolog_flag/3: option keep(true) to keep the flag at its current setting if it is already defined.
  • ENHANCED: Do not generate an error if the commandline history cannot be written.

[Apr 11 2014]

  • FIXED: source location of syntax errors

[Apr 9 2014]

  • FIXED: previous patch left is_resource_error() undefined
  • FIXED: Implement outOfStack() using more low level primitives, avoiding term references. This saves stack space (which may be scarce) and avoids overwriting body terms written by ARGP, which may crash GC.
  • FIXED: library(prolog_colour): Deal with incomplete position information
  • SECURITY: Windows: update OpenSSL dependency to 1.0.1g.

[Apr 7 2014]

  • PORT: Avoid looking for clock_gettime() on MinGW because we have our replacement and it clock_gettime(CLOCK_REALTIME) returns bogus on MinGW4.8 on Win32.
  • MINGW: Fixed detection of pthread_getw32threadhandle_np() vs pthread_gethandle()

[Apr 6 2014]

  • CLEANUP: Avoid some benign type conversion warnings
  • PORT: Updated README.mingw to document compilation on Ubuntu 14.04/MinGW 4.8
  • PORT: PL_atom_generator(): fixed thread-specific data handling (0 is a valid key).
  • MINGW: Make NSIS script deal with different thread models.
  • MINGW: Pass detected pthread library to Makefile and NSIS
  • MINGW: Deal with versions that needed pthread-win32 and recent versions that have that bundled.
  • MINGW: Do not install SSL documentation as the .pod file do not process in Ubuntu 14.04 and we do not need these for building.
  • PORT: Install proper support libraries
  • PORT: Allow using MinGW 4.8 default pthread emulation

[Apr 5 2014]

  • PORT: Avoid undefined timespec_to_double()
  • PORT: Be prepared that dtoa and strtod are macros
  • PORT: Avoid dependency on ms_snprintf() in pl-stream.c
  • FIXED: library(prolog_stack): avoid error if source location is incomplete.

[Apr 4 2014]

  • FIXED: library(prolog_colour) to color quasi quotations that produce a goal term. Conflicts: library/prolog_colour.pl
  • FIXED: possible crash when reading very large multibyte characters
  • FIXED: possible crash when using excessively large character codes with atoms

[Apr 3 2014]

  • ENHANCED: Make PL_chars_to_term() process a plain number by bypassing the while Prolog machinery. This allows for (relatively) fast parsing of e.g. large integers.

[Apr 2 2014]

  • FIXED: off-by-one error in signal handlers
  • ENHANCED: Avoid tracing into arithmetic expansion

[Apr 1 2014]

  • FIXED: Possible non-termination in code walker due to incomplete source information.

[Mar 31 2014]

  • FIXED: Feedback output of commandline tracer in Windows swipl-win.exe was broken. Grishma Jena.

[Mar 30 2014]

[Mar 28 2014]

  • FIXED: Some enhancements to listing/1. Notably make listing(module:_) list all predicates in module. Jan Burse.

[Mar 27 2014]

[Mar 26 2014]

  • FIXED: Also need to check we have a thread in the libunwind version. Keri Harris.
  • FIXED: Missing break; in ar_pow, leading to an assertion error. Markus Triska.

[Mar 25 2014]

  • ENHANCED: CLP(FD): Stronger exponentiation. Previously:
    %?- A^2 #= C, C in 253..257, A #> 0.
    %@ A in 15..16,
    %@ A^2#=C,
    %@ C in 253..256.

    Now:

    %?- A^2 #= C, C in 253..257, A #> 0. %@ A = 16, %@ C = 256.

  • FIXED: save_backtrace() if threads are not yet initialized.

Keri Harris.

[Mar 23 2014]

  • FIXED: Integer size issues with creating saved states. Roberto Bagnara.
  • FIXED: Max stack-size warning for 64-bit platforms
  • FIXED: Possibly listing of predicates multiple times due to changed semantics of list_to_set/2.
  • FIXED: Handling of {G} in //-annotated arguments. Samer Abdallah

Package debian

[Apr 3 2014]

  • FIXED: Debian/Ubuntu packages: install static library also in /usr/lib. With help from jon judge and Eugeniy Meshcheryakov.

Package archive

[Apr 23 2014]

  • FIXED: Release archive stream when closing archive
  • FIXED: Avoid access to archive after closing
  • FIXED: archive_next_header/2: Raise a permission error if the previously opened entry has not been closed.

[Mar 20 2014]

  • PORT: Omit filter property for older libarchive versions. Carlo Cappelli.

Package clib

[May 14 2014]

  • FIXED: Crash in crypt/2 on unsupported hash type.
  • ADDED: rlimit/3: limit as (address space)
  • FIXED: rlimit/3 for 64-bit machines

[May 2 2014]

  • DOC: Typo in example. Reported by Raivo Laanemets as comment.

[Apr 13 2014]

  • FIXED: Bug#174: uri_encoded/3 should encode IRIs and %. Raivo Laanemets.

[Apr 5 2014]

  • FIXED: cgi_get_form/1 to use Prolog's parser for numbers. This avoids locale issues and supports unbounded integers.

[Apr 3 2014]

  • FIXED: possible off-by-one error when processing URIs

[Apr 2 2014]

  • FIXED: possible hang when processing invalid query string

[Mar 31 2014]

  • FIXED: Allow for tcp_bind(localhost:Port), i.e., bind to an interface, but leave the port to the system.
  • DOC: Updated tcp_bind/2 docs

Package http

[May 26 2014]

  • MODIFIED: Renamed http/examples/debian-init-script to linux-init-script.
  • PORT: Bug#175: Port init script to support Linux lsb. Now runs on at Debian and Redhat based systems. Contributed by Joachim Neubert

[Apr 16 2014]

[Apr 5 2014]

[Mar 31 2014]

  • TEST: Added test to verify that the server closes the connection if requested to by the client.
  • FIXED: Make sure http_server(http_dispatch, localhost:Port) is documented and works.
  • FIXED: Bug#172: connection(close) is ignored for requests that are handled through exceptions. This results in waiting for the server keep-alive timeout for clients that assume that the server will close the connection. Raivo Laanemets.

[Mar 29 2014]

  • FIXED: Bug#170: http_open/3 with empty server response causes confusing error message. Raivo Laanemets

[Mar 27 2014]

  • FIXED: Bug#168: json_read/2 can fail on illegal input. Should be det and throw an exception. Raivo Laanemets.

[Feb 21 2014]

  • FIXED: Json convert rule ordering if last properties are ignored.

[Feb 12 2014]

  • UPDATED: library(mimetype): Mime type for Turtle, added n-triples and nquads.

[Feb 8 2014]

[Feb 4 2014]

  • ADDED: Bug#159: http_open/3: support for method(put). Raivo Laanemets

[Jan 24 2014]

  • ENHANCED: Do not print somewhat alarming messages on normal termination of HTTP handler threads.

[Jan 22 2014]

[Jan 19 2014]

  • DOC: Add PlDoc module comments to remaining files.

[Jan 17 2014]

  • ADDED: directory_index//2 to library(http/http_dirindex) to allow for embedded listings. Also added options for sorting files.
  • ADDED: library(http_dirindex): pass page style dir_index(Dir, Title) to allow for styling the page.

[Jan 16 2014]

  • FIXED: Parsing of "Status NNN Comment" from CGI replies.

Package jpl

[May 7 2014]

  • PORT: Use javadoc -Xdoclint is supported. Deals with javadoc v8.

Package nlp

[Apr 3 2014]

  • FIXED: tokenize_atom/2 now uses PL_chars_to_term() to translate recognised numbers into Prolog integers. This implies: - Numeric tokens are not locale sensitive - Integer tokens profit from unbounded arithmetic

Package odbc

[Mar 28 2014]

  • FIXED: possible memory leak when reading large strings from database
  • FIXED: possible crash when reading large strings from database

Package plunit

[Apr 2 2014]

  • ENHANCED: Avoid trapping the tracer on the test internals.

Package semweb

[May 20 2014]

[May 17 2014]

  • TEST: Asynchronous RDF GC can cause test for zero literals to fail, while the actual destruction is just delayed.
  • TEST: Use assertion/1 instead of homebrew
  • ADDED: rdf_current_predicate/1, rdf_subject/1 and rdf_resource/1 now fail silently if the argument is a literal. Used to raise a type error. This provides more logical support for generated goals, such as optimizing rdf(S,_,_) to rdf_subject(S).
  • FIXED: rdf_reset_db/0 could crash.
  • FIXED: Do path normalization on URLs that are relative to the base. We also collapse sequences of // to a single /. Rapper does not appear to do so. Jacco van Ossenbruggen.

[May 7 2014]

  • PORT: 32-bit version of modified deallocation of triples.

[May 6 2014]

  • FIXED: Delay unregistering atoms and literals from triples until the triple is really deleted. Without, we may still process the triple after it has been deleted.
  • FIXED: Added enter/exit scan to update_duplicates() to avoid that duplicate detection crashes on freed triples.

[Apr 30 2014]

  • ADDED: rdf_statistics/1: lingering(-Triples), showing #triples freed but not yet released for re-use
  • ENHANCED: Limit considered size for O and PO indexes to the number of triples (because we do not have resource GC, this may be higher).

[Apr 29 2014]

  • FIXED: Stop transactions from garbage collecting reindexed triples.
  • FIXED: Only the tail of a ->reinidexed chain can be considered garbage.

[Apr 28 2014]

  • FIXED: Triple copying while extending the hash tables during a transaction causes modifications to survive if the transaction is discarded. Wouter Beek.

[Apr 25 2014]

  • FIXED: Make erase_triple() thread-safe. This is called concurrently when asserted triples are erased for discarding a transaction.
  • ENHANCED: Better message if the Turtle empty prefix is not defined.

[Apr 24 2014]

  • FIXED: library(semweb/rdf_library) to find input that has a .gz (or other registered storage extension). Chris Dijkshoorn, Jacco van Ossenbruggen.

[Apr 22 2014]

  • FIXED: MD5 computation of qualified literals may crash.

[Apr 16 2014]

  • FIXED: Attach to a read-only database is supposed to raise only a warning

[Apr 2 2014]

  • FIXED: Include <stdio.h> to get swprintf().

[Apr 1 2014]

  • FIXED: Use defferred finalization to get rid of predicate clouds. Fixes an early free when closing a query.
  • TEST: Start random tests from printed seed, so we can replay them.
  • TEST: Fixed replaying of failed rdfs:subPropertyOf sequences
  • FIXED: Literal reference count was 24 bits and not checked for overflow. Now 32-bit with assert-based overflow checking.
  • FIXED: We must always lock queries.write.lock when removing a triple in GC, both to update the hash chains and to ensure consistent update of triple->linked.

[Mar 28 2014]

  • FIXED: Use atomic inc/dec to make sure the count for the number of triples per graph is accurate.

[Mar 27 2014]

  • ADDED: Media types for ntriples and nquads

[Mar 24 2014]

  • OOPS: Revert "CLEANUP: library(rdf_ntriples): synchronise iriref reading" This reverts commit c58c0d2ff233e41e478dfbfe11365507ec221d9a. I mistakingly though that the iriref was synchronised between Turtle and ntriples. This does not seem to be the case.
  • CLEANUP: library(rdf_ntriples): synchronise iriref reading
  • MODIFIED: library(rdf_ntriples): synced character classification with Turtle. Effectively makes detection of language tags and blank nodes compatible with the RDF 1.1 spec.

Package sgml

[May 23 2014]

  • FIXED: xpath/3: enhanced determinism.

[May 6 2014]

  • MODIFIED: sgml_parse/2: unknown options are now silently ignored.

[Apr 14 2014]

  • ADDED: Warning when trying to use SYSTEM entities if this is not allowed.
  • FIXED: possible crash while reporting markup syntax errors
  • SECURITY: provide a max_memory/1 option to load_structure/3 to stop entity-expansion blowup
  • SECURITY: disable SYSTEM entity expansion by default

Package ssl

[Apr 24 2014]

  • FIXED: Avoid reading past end-of-string for time conversion.
  • FIXED: Convert subject/issuer fields to UTF-8, so the appear as proper Unicode names in Prolog.

[Mar 28 2014]

Package xpce

[Apr 23 2014]

  • FIXED: X11: possible curruption of window administration.

[Apr 22 2014]

  • FIXED: Wrong detection of changed device. Performs read access to xpce Int array one past end of local array (this is innocent).

[Apr 16 2014]

  • ENHANCED: Only set the message_ide flag if it was not set before.
  • ENHANCED: Be silent about errors saving PceEmacs bookmarks

[Apr 7 2014]

  • FIXED: Handling of type 1.2..2.4 in locales that do not use . for decimal point.

[Mar 30 2014]

  • ENHANCED: Avoid a non-terminating loop of errors if (some component of) xpce cannot be found. It is very hard to recover cleanly from this condition, so we just terminate the process :-(