SWI Prolog 7.5.10

SWI-Prolog offers a comprehensive free Prolog environment. It has been in development since 1987 and extended for requirements of real world applications, but is also widely used in research and education. It includes a nice command line interface, fast and transparent compilation, a debugger, profiling features. It also has the ability to integrate with C code, and already comes with packages for threading and process management, encryption, TCP/IP, TIPC, ODBC, SGML/XML/HTML, RDF, HTTP, graphics manipulation and output. It's also cross-platform.

Tags prolog compiler software-development
License GNU LGPL
State development

Recent Releases

7.5.1002 Jul 2017 20:05 minor feature: Updated semweb. Updated semweb. Updated http. Upgrade packs that are installed from github archive files. Updated archive. Updated pldoc. DOC: : format_time/3 p may yield `am`/`pm` in some locales. DOC: : surprises caused by variable ordering. Updated ssl. DOC: Mention crypto_n_random_bytes/2 in the documentation of random/1. ENHANCED: Speedup finding the deframe for a redo. Eyal Drechter. thread_get_message/3 (Windows only) using a deadline if the. Updated pengines. ENHANCED: Only print the thread id when printing the thread context in. Updated ssl. cleanClauseIndexes() should be locked with addClauseToIndexes(). Updated ssl. Updated semweb. Updated pldoc. Updated clib. ENHANCED: Faster zcompare/3 when used instead of compare/3. Jan Wiele?. Updated ssl. ADDED: I_INTEGER instruction to speedup integer/1. CLEANUP: Generalise compiler warnings for tests that always yield. HACK: if a first-var integer/1 tests is always false, emit a C_VAR. ADDED: library(prolog_xref): handle :- import(:PI). ADDED: term_singletons/2: find term singleton variables inside a term. Added internal singleton(true) variable property. Removed incorrect ISO claim. Jan Burse. Updated ssl. Updated semweb. ENHANCED: Reduce thread-local-data access. Updated semweb. ENHANCED: Reduce thread-local-data access. Safe must_be/2. Jacco van Ossenbruggen. Updated ssl. Ensure TTY state buffers are fully initialised. Updated ssl. ENHANCED: Avoid creating a choice point for simple conditions in. Updated pldoc. stackshifter to shift the pointer for fast conditions inside. Updated ssl. Updated bench. ENHANCED: Inline arithmetic stack operations. Updated ssl. Small optimization for unifying small integers. Generalise type-test code generation. Generalise type test instructions in VM. ENHANCED: Add common type tests to VM (number, float, atom, atomic,st?. ENHANCED: Reduce thread local data access. PL_get_size_ex(): quick test for tagged integer. ENHANCED: reduce thread local data access. CLEANUP: simplify loc
7.5.810 Jun 2017 11:25 minor feature: Better documentation of zcompare/3, after comments from Carlo Capelli. INSTALL: Avoid loading /.swiplrc during built (done by check-install?. Variables or meta-predicates not marked as non fresh, related to. Updated odbc. Updated http. Introduce up to three indexable arguments. Compute multi-argument hashes. ENHANCED: Pass LD to bestHash(). CLEANUP: make bestHash() return 1-based arguments for consistency. Prepare hash assessment type for multiple arguments. argument skip. CLEANUP: Split accessing clauses to a new function. Compute assessments for multi-argument indexes. 0-based offset. Small cleanup. Print statements. Working again. Use alloca() for the bitvector. Document assess_scan_clauses(). Prepare interface for bestHash() to return multi-argument indexes. Deprint for multi-argument indexes. Sorting poor indexes. Lift management of hash assessments to a new type and functions. First attempt to find 2-argument index. computation of stdev of same-argument buckets. Divide stdev by mean for punishing bad distributions. Cleaner type choice. Actually creating two-argument index. Wrong ordering. Now working. MODIFIED: predicate_property(Head, indexed(Indexes)) now uses a list. Dename of indexes. TEST: Adjusted test cases for modified predicate_property/2. Make demessages conditional. Comment, layout. Updated copyright. Speedup single-argument key computation. Added general infrastructure to deal with lingering objects around. Use generic lingering infrastructure to get rid of old clause indexes. ENHANCED: actually reclaim discarded supervisor code. This was not a. Select proper arguments for multi-argument indexes. Make sure arguments are properly ordered. Typo, deleted unused type. Use array to represent clause indexes so we can sort them. ENHANCED: Keep indexes sorted by quality. allocation. Compile in all modes. sorting and allocation. ADDED: arg_info structure do deal with JITI and meta arguments. Use lg2(buckets) in hints to sync with arg_info. Trying to bas
7.5.619 May 2017 13:25 minor feature: Updated HTTP. MODIFIED: Operations on stream pairs (see stream_pair/3) that are. Avoid stream-pair ambiguity for wait_for_input/3 and. Updated clib, http, semweb and sgml. Update pcre. Update pcre. in_temporary_module/3: handling of possible collisions. Updated pengines. Memory leak for localised predicates that have no clauses as the. Avoid crash when trying to clean all Prolog memory (-DO_DEmode) and. Faster all_distinct/1 with unbounded domains. Julien Cumin. use portray_clause/1. MODIFIED: transpose/2 now fails for ragged matrices. Julien Cumin. git_process_output/3 (and derived predicates): properly read all. : crash when combining tabling and constraints. PORT: : More robust redefinition of __assert_fail(). PORT: Make sure we actually define __assert_fail(). Need to define the __assert_fail() prototype. Updated xpce. Possible crash in considerClauseGC() while clause GC is running. Variables or meta-predicates where not geing marked as non fre?. In predicate prolog_clause:ubody/5, added clause to process. Working __assert_fail() override. PORT: Added qsort_r/qsort_s to configure tests to improve portability. PORT: pl-dict.c: fully portable version of dict sorting using qsort_r. Updated sgml. Updated sgml. Updated pengines. Updated clib. Preparing version 7.5.6. Updated pengines. INSTALL: library(pengines_sandbox) for Windows.
7.5.428 Apr 2017 04:25 minor feature: Updated semweb. Updated odbc. Updated xpce. Updated xpce. Updated http. Updated http. ADDED: stream property write_errors(+How), which can be used to ask. Updated http. MODIFIED: set_stream(S, record_position(true)) now resets the position. prolog_load_context(stream, S) and :- encoding(Enc) when compi?. Updated pengines. Updated http. restarting a continuation should copy flags from the parent. ENHANCED: Raise a `representation_error(continuation)` error if we ca?. MODIFIED: (undocumented) PL_get_term_value() to return new types PL_NIL. Updated xpce. Correct error in partition/5. Steadfastness of partition/5. Updated http. Doc typo. Anton Danilov via annotation. ADDED: reduced/1,3, complementing distinct/1,2. After discussion with. Removed writeln/1 from reduced/ 1,3 . Updated http. format/3: handle error status from low level write operations and. Updated http. ADDED: PL_put_string_nmbchars(). memory in new PL_put_string_nmbchars(). MODIFIED: Replaced PL_put_string_nmbchars() with more consistent and. Possible memory leak creating an atom from a wide character po?. ADDED: PL_new_atom_mbchars(). ADDED: PL_put_term_from_chars(), adding support for different multibyte. ADDED: package pcre. ADDED: pcre submodule. DOC: LaTeX syntax error. Included pcre into check_installation/0. Updated debian. Preparing version 7.5.4. PORT: Add download and install for libpcre to README.mingw. PORT: Install pcre components for Windows. Updated pcre. DOC: absolute_file_name/2: small correction. Added Zesty Zapus (zesty) as ppa target. Updated pcre.
7.5.306 Apr 2017 12:45 minor feature: Updated xpce. Codewalk library: do not propagate bindings between the branches. atom_string/2: generate proper type errors. Updated http. Updated http. Updated xpce. Updated http. Added human message for duplicate_key(+Key) dict error term. ENHANCED: Allow reproducible builds by using the SOURCE_DATE_EPOCH va?. Updated table and xpce. Updated pengines. reverted old long - intptr_t replacement in message. Updated http. CLEANUP: library(csv): make read_row/3 reusable. ADDED: API to read CSV files row-by-row in forwards mode. Allows crea?. Updated http. Updated pengines. Updated pengines. ADDED: Support case conversion while importing CSV files. Updated pengines. Possible too low number of reserved variables for getting. Possible under-allocation of global stack when generating. DOC: wrong link. Updated semweb. Updated semweb. Avoid rewriting of ' aborted' exceptions and thus prevent an. Signal handling while shutdown is in progress. Updated semweb. Spelling. Updated semweb. library(record): module qualification of inlined type checks. Updated pengines. Updated pengines. Updated semweb. Preparing version 7.5.3.
7.5.217 Mar 2017 02:45 minor feature: format_time/3: handling of f. Included file registration if there are multiple levels of. Updated libedit. ADDED: convlist/3, compatible with YAP and SICStus. Spelling in `varpre` documentation, http://www.swi-prolog.org/pldo?. Updated semweb. ADDED: current_type/3 to get a supported interface for querying the. dynamic/1: raise a permission_error on an attempt to change. library(record) if protect_static_code is enabled. Raised by. Updatd http. Avoid warning compiling set_breakpoint/5 in optimized mode. ADDED: attach_packs/2 to add packs at runtime. DOC: attack_packs/0,1,2. TEST: setting protect_static_code during the test suite makes many tests. CLEANUP: db_attach/2: update sync if an existing mapping is re-attached. ADDED: db_attached/1 to query attached state of persistency. Updated libedit. Possibility of dereferencing a NULL pointer. DOC: is_set/1 is semidet. DOC: wait_for_input/3 is det. ADDED: PL_release_stream_noeror(), needed to ws_property/2 in the. Updated http. Avoid deadlock when terminating Prolog if there are streams. Possible double cleanup of a detached thread through. Updated ssl. Handle thread-creation exceptions. pack_search/1: provide message if search gives no result. : additional ; after if () (mostly harmless). : _xos_fopen(): wrong overflow check (cannot harm Prolog. Updated http. Updated http. typo in warning message. Layout and comment. silently skip already installed dependencies. This patch also. Goal feedback after DWIM correcting a goal holding Var refere?. Updated pldoc. Preparing version 7.5.2.
7.5.123 Feb 2017 17:25 minor feature: Updated clib. Removed dropped maildrop generated files. Updated ignore files. Extend Emacs behaviour for Emacs-25+. Updated semweb. Added test files to git. Updated ssl. Updated semweb. Updated semweb. Updated semweb. Updated debian. Preparing version 7.5.0. meta-calling call/N. Samer Abdallah. Updated debian. BUILD: windows clean version check. DOC: LaTeX formatting. PPA: Avoid duplicating version tag. DOC: non-terminated ifnum. DOC: two BibTeX errors. DOC: License text. Updated archive. Updated semweb. Updated ssl and http. Updated clib. Updated xpce. : format_time/3 handling of f. Eyal Drechter. Do not overwrite stream error if a user handler already set it. Updated zlib. : too long options in a saved state were ignored. PORT: Avoid trying to compile dlopen or emulations thereof if. Updated semweb. DOC: powm/3: Instead of ()/2, use ( )/2 for integer exponentiation. Revert "DOC: powm/3: Instead of ()/2, use ( )/2 for integer exponen?. ENHANCED: (#=)/2 now automatically uses powm/3 in many relevant cases. Updated semweb. Make ' find_predicate'/2 fail if the unknown flag is warning. pi_to_head/2: protect against an infinite loop. Updated pengines. PORT: MinGW wrt. ETIMEDOUT. Matthias Gondan. INSTALL: Avoid failing if the documentation is missing. MODIFIED: removed rb_lookupall/3 and rb_in/3. ADDED: rb_fold/4. MODIFIED: library(rbtrees): deleted rb_visit/3, rb_keys/3 and rb_clon?. MODIFIED: Support multiple occurrences of `-g goal` command line options. TEST: Remove test for deleted rb_clone/4. ENHANCED: Do not setup command line editing of the environment variable. PORT: Support compilation without gmp. Matthias Gondan. Avoid crash in findall/3 if we perform a shift/reset (e.g.. Updated semweb. Updated semweb and zlib. Updated xpce. clause_info/4: if decompilation qualifies the head. library(prolog_xref): properly handle op/3 terms in the export. Preparing version 7.5.1.
7.5.002 Feb 2017 08:05 minor feature: Removed obsolete wily from Ubuntu ppa. Enabling of !-based history. Boris Vassilev. Updated http. Updated xpce and jpl. ENHANCED: library(prolog_stack): combine stacks. ADDED:clang-format and scripts/indent.sh, providing SWI-Prolog style. Updated ssl. Updated http. Updated sgml. arity of win_shell in documents. Updated libedit. Updated jpl. Updated libedit. Updated jpl. Updated jpl. ADDED: PL_current_query() to get the id of the currently open query. Updated jpl. Updated jpl. Updated jpl. Updated ssl. DOC: improve description of some Prolog flags. VERSION: Introduce a version tag. Propagate VERSION to relevant files. ADDED: Support tagged versions (e.g. 7.4.0-rc1). VERSION: deal with version tags for Windows installer. No not complain if there is no history to write. RELEASE: Updated MacOS readme files. Updated jpl. Comply with NSIS product version requirement. Include version tag in window title. Force purely numeric version for MacOS. ADDED: Support version tag in `swipl --version` and through. Updated swipl-win. Updated jpl. Make persistent history work if `:- prolog_history(enable).` is. Extended history interface. Updated libedit. Updated clib. REMOVED: library(mime) from Windows installer. Removed library(mime) from check_installation/0. Updated ssl and http. BUILD: Reorganise C and LD flags a little. CLEANUP: allow gcc to prove variables are bound at -O3. Updated clib. Removed dropped maildrop generated files. Updated ignore files. Extend Emacs behaviour for Emacs-25+. Updated semweb. Added test files to git. Updated ssl. Updated semweb. Updated semweb. Updated semweb. Updated debian. Preparing version 7.5.0.
7.3.3511 Jan 2017 07:45 minor feature: Updated libedit. Updated ssl. Updated clib. Updated clib. DOC: Remove traces of readline from core documentation. Updated ssl. Renamed COPYING - LICENSE. COPYING is a GPL convention. Updated ssl. Updated swipl-win. Updated sgml. Updated ssl. Updated libedit. detecting of reference underflow and illegal atoms in PL_unreg?. Updated libedit. License text and installation. Preparing version 7.3.35.
7.3.3321 Dec 2016 22:45 minor feature: possible crash during GC when marking stacks. Updated ssl. possible crash when failing to print an error message via prin?. Ensure foreign frame is always cleaned up in vwarning(). The recorded database (also findall) restores really large GMP. ADDED: Allow the value of a setting to be unbound. Wouter Beek. Updated ssl. compilers may optimize away code that relies on signed integer?. Updated ssl. DOC: Editor Prolog flag documentation pointed to the wrong section in?. DOC: Typo in manual `IF/Proloog'. DOC: Added paragraph on best practice for modules. DOC: Clarified some of the repercusions of using --traditional. Updated ssl. ENHANCED: : try another directory if the first fails. LICENSE: Re-licensed the C core of the system and most of the test suite. LICENSE: Re-licensed most of the Prolog boot files. LICENSE: Move part of the library to BSD-2. Re-licensed other clearly non-disputed parts of the library. Re-licensed last boot file. Small cleanup. ENHANCED: Move must_be(chars codes, Term) to use C based backup. Speeds. Re-licensed library(error) after replacing the non-trivial parts by. Updated ssl. DOC: Ungrammatical sentence "Default can refer to...". ADDED: ' term_size'/3 declared safe, so it can be used in SWISH. Updated ssl. Added PL_license() call for libgmp. Cleanup: unused LD when not compiled with GMP. CONFIG: added --without-gpl and --without-lgpl. MODIFIED: must_be/2 raises different errors on some cases in the new. License changes. TEST: Make all tests pass when libgmp is disabled. Work on better license info and banner. Change general COPYING file. Updated clpqr. ADDED: known_licenses/0. MODIFIED: pack_install/1: now needs a file:// url to denote the direc?. Updated pengines. Added missing comments(-Comments) option declaration. DOC: subterm_positions description of dict layout. MODIFIED: read_term/2 using subterm_positions(-Pos) option now wraps. UPDATED: accommodate new parentheses_term_position/3 term. Updated xpce. Colour location of full sto
7.3.3101 Dec 2016 01:25 minor feature: Updated PPA versions. Updated xpce. Updated ssl. Updated ssl. Added missing #include. MODIFIED: Respect qcompile(When) option of load_files/2 also for. Updated xpce. Updated http. DOC: current_prolog_flag/2: links to set_prolog_flag/2 and. typos. Corrent license title. Updated xpce. Updated ssl and http. Updated ssl. put an attributed variable as a dict value. Eyal Drechter. PORT: sem_destroy( sem_mark); (hurd-i386). PORT: Relax write_term test for NaN. Triggers on mips and hppa. Sync UTF-8 handling in os/windows with central one. This brings. Typing. getenv/2 for Windows for variables with over 1019 characters. Added utf8_code_bytes(). Added environment variable tests. Updated bdb. Updated incpr, nlp and chr. Removed alloca compatibility file. Moved test program to test directory. re-buffering input from read_pending_codes/3. MODIFIED: read_pending_codes/3 now the list on end-of-file. ADDED: fill_buffer/1 to make reliable reading of input using. ADDED: remainder//1 to fetch the remainder of DCG input efficiently. ENHANCED: Major rewrite of library(pure_input) to make it work on str?. MODIFIED: Simplified DCG inlining to simple terminals and non-terminals. Updated nlp. Translation of phrase(M:Goal...). Johan Romme. Updated http and ssl. meta_predicate/1 declaration for arguments 8..16. Edison Mera. ADDED: PL_backtrace_string() to fetch the Prolog backtrace as a. ADDED: script/swipl-bt to dump the backtrace for a running Prolog. avoid crash in freeStream() when not called in the context. Extended swipl-bt with some options to work more selectively. Point at swipl-bt from the manual. Preparing version 7.3.31. Updated OpenSSL for MinGW cross compiler to 1.0.2j.
7.3.2909 Nov 2016 10:05 minor feature: DOC: correct error (uninstantiation error) for put_attr/3. Updated ssl. ADDED: optimise_deProlog flag to specify whether assertions and d?. variable warning. Updated ssl. Find char code = 256 inside an iso-latin-1 string should always. Declare prolog:called_by/4 hook multifile to avoid undefined t?. ENHANCED: check_predicate_options/0: use 'uninstantiated' error (old ?. Updated ssl. CLEANUP: use functions for accessing the global generation so we can ?. PORT: Support 32-bit CPUs that do not have 64-bit atomic integer. ADDED: check_installation/1 to return a list of that allows for. Updated archive. ADDED: Prolog flag `protect_static_code` to disable listing static code. Updated xpce. Updated xpce. library(prolog_xref): avoid registering illegal operarators and. renaming predicates with source info (breaks Logtalk). Paulo. Updated and removed old installation instruction. Point to website to avoid duplicates. possible crash during clause GC due to referencing uninitializ?. ENHANCED: modify internal representation of dicts so that right-recur?. DOC: wrong type and removed duplicate. Updated http and ssl. DOC: Avoid - to appear as send in the output. Simplified. DOC: Clarify *- . Nicos Angelopoulos. Updated ltx2htm. Updated clib and ssl. ADDED: binary (de-)serialization for terms. See fast_read/2, fast_wri?. Consistent write for wide atoms using only symbol characters. DOC: library(ctype) -- library(ctypes). Gniourf. Merge branch 'master' of github.com:SWI-Prolog/swipl-devel. Preparing version 7.3.29.
7.3.2818 Oct 2016 07:05 minor feature: Never consider _ a singleton. explain CLP(H). Added Snil. Typographic. Updated ltx2html and pldoc. more suitable label and references. link to CLP(FD) primer. mention put_attr/3 as an alternative for extra-logical storage bins. Updated http. ADDED: Prolog flag `toplevel_mode`, one of `backtracking` or `recursi?. Updated sgml. ENHANCED: Reuse of toplevel variables displays the reused binding. link to CLP section. Updated jpl, nlp, odbc, tipc and xpce. Updated ssl. Updated sgml and ssl. Added new sgml and ssl libraries to the Windows distribution. ADDED: sandbox: declare name/2 as safe. Updated clib and ssl. Updated pengines. chapref -- secref. Updated ssl. Updated http. ADDED: library(persistency): Allow module qualification of persistent. Updated nlp. Updated nlp. Updated semweb. Updated pengines. library(prolog_colour): support a x syntax. library(prolog_colour): qualified and lists of operators. ADDED: library(prolog_xref): support call/N and maplist/N. ADDED: classification support for `vararg' predicates call/N and. Additional test. Added safety check. We need to clear the local variables after an exception as. We must properly initialise for the alternative clause before. We need to restore LD- mark_bar at some more places to avoid. Preparing version 7.3.28.
7.3.2727 Sep 2016 01:05 minor feature: MODIFIED: Variables are now printed as _ rather than _L. Some cleanup. Include engines in boot distribution. ADDED: var_preflag that demands variables to start with an unders?. ADDED: xref_prolog_flag/4: keep track of flags in xref. Generalise pr?. Updated xpce. Updated pengines. ADDED: library(sandbox): define syntax changing Prolog flags as safe. Apply syntax flags to the right module. Updated http. Updated sgml. Updated sgml. Updated clib. INSTALL: Add library(hash_stream) to the installer. import modules by pattern. Updated pengines. Some cleanup. Make read_clause/2 respect the module settings for the first. Updated pengines. DOC: More information about attribute_goals//1 and copy_term/3. After?. DOC: Correct number of arguments for project_attributes/2. wording. Updated http. wording and more explanations. DOC: Introduction to coroutining. More sensible examples. move documentation of dif/2; explain difference and link to ( =)/2. proper link to predicate. DOC: call_residue_vars/2: Extend explanation. mention the specialized domains. hyperref and location. give an important reason for preferring domain-specific constraints. Possible instantiation error in DWIM. Nicos Angelopoulos. DOC: More information about ( =)/2, aligning the description with tha?. reword CLP(FD) example and explanation. add index information. DOC: Add "To be done" to attr_unify_hook/2 with explanation and refer?. wording. make PDF work again. add URL. URL to "validation suite for conformance with part 1 of the st?. "Special Variables" -- "Attributed Variables". correction. DOC: Mention important additional application of attributed variables. correction. DOC: Move "Global variables" from "Attributed Variables and Coroutini?. wording. improve examples and explain important concepts related to coroutining. wording; reorder so that the deprecated predicate appears last. missing cuts after has_type/2. do not save dynamic predicate attributes in a saved state if a?. clear P_DIRTYREG f
7.3.2605 Sep 2016 13:05 minor feature: wording: `t` -- empty. Updated semweb. update http, semweb. wording. wait_for_input/3: when using poll(), it sets POLLHUP rather. ENHANCED: Cleanup message context for threads. Provide a flag to. ENHANCED: Pack building: use a thread to relay the output from. Updated cpp. COMPAT: Extended src/compat/YapInterface.h: Updated http. wording: assoc -- association list. Updated http. base/2 should also consider the //2 operator that can be prese?. Removed unneeded comments. DOC: Removed local copy of url.sty as it is in texlive. DOC: Use href URL Text instead of url Text URL . Updated ltx2htm and pldoc. Updated http and clib. DOC: CLP(FD): Document floored integer division. Boris Vassilev. Updated ltx2htm. Updated http. link to download page (update URL, use href) and show home page URL. Updated http. email usage. Updated xpce. library(dialect/sicstus/system): get shell/0 from library(shell). Avoid compiler warning. Clarify the promise. Boris Vassilev. link to purity. wording. use HTTPS link. wording. mode of empty_assoc/1. DOC: CLP(FD): Link to declarative deging explanation. DOC: CLP(B): Link to declarative deging explanation. focus on termination as the more fundamental property. ENHANCED: xref_source/1: avoid getting trapped in too many partial. ADDED: threads/0: display memory allocated for the stacks. Updated http and clib. wording. Typo in comment. layout. Early signal handling if condition variables return on receiving. Updated http. Updated zlib. Updated sgml. Updated ssl. Updated ssl. thread_create_in_pool/4: share Id to options. Eyal Dechter. Updated http. Updated http. MODIFIED: Concurrent retract on the same predicate can no longer. UP: erase/1 should fail if the object is already erased. Documented. Updated sgml. MODIFIED: Respect logical update semantics for retract/1. This was br?. A mistake in the documentation of string_lower/2. Preparing version 7.3.26. PlDoc comment. Various documentation patches.
7.3.2509 Aug 2016 21:05 minor feature: PORT: Cleaner implementation of engine_fetch/3, which also avoids a. Allow for `?- " /..." .`. Updated http. atom//1: test for non-var. Markus Triska. DOC: Move documentation of library(simplex) to PlDoc. More to follow. Remove simplex.doc (moved to by PlDoc). ENHANCED: Type for PL_set_resource_db_mem() changed to unsigned char. Cleanup signed/unsigned char. DOC: Include library(simplex) from PlDoc. Updated cpp. Updated cpp. DOC: LaTeX. Nicos Angelopoulos. Small optimization. Demessages. Cut in condition of *- when not executed on the first success. DOC: Do not depend on user's TEXINPUTS. BUILD: Updated documentation to build the documentation. DOC: CLP(FD): Move documentation to LaTeX for more flexibility. DOC: CLP(FD): Reorder predicate overview for greater accessibility. More about membership constraints. More about enumeration predicates. More about reification. More about global constraints. Move zcompare/3 to reification subsection. More about reflection predicates. libdoc header. Correct section nesting. Add closing and opening words about CLP(FD). Line break in reference. Indentation and spacing. BUILD: ltx2html -- ltx2htm. Updated cpp. xref_source/1: process comments after last predicate. DOC: add missing predicate summary for CLP(FD) constraints. DOC: CLP(FD): Fetch predicate documentation from PlDoc. Recommend all_distinct/1 over all_different/1. Link to pertaining sections. Include description of (# )/2 again. DOC: More information about library(simplex). Include main file. Clpfdpreds.txt - clpfdlib.md. Correct disjoint2/1 entry. Updated cpp. DOC: Document nb_current/2 as alternative to nb_getval/2. Added man/libtotex.pl --module=Module option. Indentation. Use new --module option to avoid pulling in predicates from other lib?. Wording. Update links and add descriptions in GNU Emacs section. Updated pengines. Updated cpp. Inherit of thread deproperty. Jedixb King. Reassure users that they can use the predicates of this library. Move Sudoku exa
7.3.2405 Jul 2016 18:05 minor feature: PL_recorded_external(): consistently `put' the value instead. PL_record_external(): deal with MPZ integers. Abramo Bagnara. Updated http. Updated sgml. ADDED: CLP(FD): Rudimentary support for bitwise operations. Jan Burse. use DCGs to shorten predicates describing lists. ADDED: CLP(FD): More reasoning about bitwise operations. updated welcome message. document support for bitwise operations. simplification in reification. naming, in preparation for unary functions. ADDED: CLP(FD): Support the bitwise operations msb/1, lsb/1 and popco?. for efficiency when using (#=)/2, add goal expansion for lsb, msb and?. formatting. Updated sgml. Revert "use DCGs to shorten predicates describing lists". Updated sgml and ssl. BUILD: Adjust doc2tex script for new versions of Perl. ENHANCED: library(git): avoid empty print_message/2 calls. git_show/4: deal with empty body. CLP(FD): Goal expansion for undefined ground expressions. Jan ?. db_sync/1: Sync if database is empty and dirty. Updated semweb. Updated semweb. Updated semweb. Updated semweb. Updated semweb. LICENSE: Relicensed resource management library. LICENSE: Relicensed Windows console code and installer script to Simp?. LICENSE: Re-licensed low-level code to Simplified BSD. ADDED: PL_set_resource_db_mem() to support booting from a resource db. Updated http. Updated http. Updated debian. Cleanup unused thread status constants. MODIFIED: Identify anonymous threads using blobs. This causes access ?. Updated xpce and http. Refactor local data initialization from pl_thread_create(). Reused copy_local_data() in PL_thread_attach_engine(). PORT: Updated MinGW dependency versions and locations. Updated jpeg dll for installer. ENHANCED: CLP(FD): Faster propagation for exponentiation. Julien Cumin. statistics/1 (duplicate key exception). I_YIELD in demode. ADDED: Support engines (interactors) as first class citizens. See. Updated xpce (support engines). Added forgotten engines documentation. COMPAT: thread_statistics/1 to use
7.3.2215 Jun 2016 03:05 minor feature: DOC: Do no skip a level in section headers. Updated pldoc and ltx2htm. DOC: typos. Added dcgsummary macro. Declare sandbox hooks in library(prolog_xref). DOC: Various small inconsistencies. Updated pldoc and ltx2htm. Updated http. more information about declarative arithmetic. ADDED: ' flush_predicate'/1 to materialize the current set of predicates. ENHANCED: Make adding or deleting a :- table directive take immediate. ADDED: Allow for :- multifile declarations in sandboxed code. If we are not loading a source file, ' flush_predicate'/1 must succeed. Small doc enhancements. Added and now using ' flushed_predicate' to deal with the tabling dec?. Updated http. Updated space. still more about declarative arithmetic. Updated semweb. ADDED: predicate_property/2 implementation_module(-Module) to simplif?. Updated pldoc. DOC: include library(error) in the main docs. DOC: wrong references. shorten. Updated http. Updated http. ENHANCED: Use visibleClauseCNT() in all searching operations. Deleted some no-longer-used declarations. Layout. CLEANUP: Group lock-free access pointers. Removed outdated comment. ENHANCED: Clause GC invocation timing. Parameters that control this now. Updated pldoc. MAINTENANCE: Make configure --disable-mt work again. Updated semweb. MODIFIED: Do not call goal_expansion/2 on module:Var. Updated semweb. Updated http. Updated semweb. DOC: unclear documentation of nextto/2. Updated semweb. Updated semweb. Updated pldoc and http. addition and clarification. strengthen. Updated http and pengines. Preparing version 7.3.22.
7.3.2125 May 2016 02:05 minor feature: in monotonic execution mode, use #/1 instead of ?/1 in residual goals?. Updated sgml. typo. doc typo. Wouter Beek. Merge branch 'master' of github.com:SWI-Prolog/swipl-devel. Updated archive. Updated pengines. Updated pengines. build warnings on Cygwin. thread-safety of Sfileno(). Updated http. Updated semweb. Updated semweb. Updated plunit. race-condition when resizing a hash-table. If a late-arriving ?. Updated pldoc. ENHANCED: Revert to put_attr/3 if the attribute_goals//1 fails. ENHANCED: CLP(B): Make residual goals work for recorded constraints. prevent from appearing as value of global variables on backtracking. Updated semweb. Updated semweb. ENHANCED: refactor compareStandard() into smaller functions. By avoiding. Don't enable O_PROFILE if O_PLMT is disabled. `atom_codes(hello,"hello")` in string mode. Daniƫl de Kok. Added mark_active_environment(), sharing the code-walking with GC. Added FR_KEEPLTOP flag to avoid destroying the stack on deterministic. Added MSG_CONTINUATION detopic. Avoid name conflict with shift/1 in test suite. ADDED: Delimited continuation: reset/3 and shift/1. Together with. Added test case. Stack shifter assertion failure because clause-references for. Local stack expansion in call_continuation/1. Trail variables in the environment. Added assertion. Turns out we have a problem with temporary clauses. WORKAROUND: We cannot deal with compiled meta-calling inside reset/3. ENHANCED: Reclaim unneeded stack after shift/1 and maintain the. Added PL_const_list_v() to create a list from an array of term-refere?. ENHANCED: Pushing the whole continuation in call_continuation leads to. merge conflict. Added missing callpred atom. Update for changed clause and clause reference structure. Typo. new frame must have FR_MAGIC set. updated http sgml. wording. improve readability. Updated ssl. Updated http. Avoid unused warning. CLEANUP: current_functor/2: removed redundant test. Paulo Moura. PORT: Avoid local dynamic array, which is not (no
7.3.2017 Apr 2016 21:45 minor feature: clause indexing on 32-bit hardware for integers tagged ints ?. library(prolog_xref): avoid a dead loop if files mutually include. Updated pldoc. discontiguous warnings were no longer working on first load. Updated zlib. Updated http. add link to PDF. add link to PDF. wording. library(prolog_colour): complete colouring on unknown option n?. xref_source/2: Defile process_includes option. MODIFIED: library(prolog_xref): call prolog:xref_source_file/3 hook b?. ADDED: xref_source/2: option process_include(+Boolean) to select whether. Updated RDF. Updated xpce. Updated pengines. Updated pengines. COMPAT: Make library(statistics) work with --traditional. Rewrite of statistics/0. CLEANUP: Prepare to introduce read_pending_chars/3. MODIFIED: Replaced read_pending_input/3 by two new predicates: Updated Ciao emulation to use read_pending_codes/3. Updated packages to use read_pending_codes/3. CLEANUP: Removed no longer needed call. Print source location if message system is not yet available. memberchk/2: process interrupts and detect cyclic li?. ENHANCED: Do not generate deinfo for library(statistics). ENHANCED: Faster version of list_to_set/2 based on the ECLiPSe. ENHANCED: Make memberchk/2 behaviour consistent for cyclic lists. Use size_t for list length. Updated pengines. Come clear about the aspiration of this library. Updated windows and archive. reorder paragraphs. wording. wording. ADDED: Ability to emit a dot/1 term for rendering the BDD in SWISH. fontname property can now be used. move graphviz projection to a dedicated renderer (see SWISH). use clpb module qualifier in residual goals. ADDED: varnumbers_names/3. Updated sgml. excellent and free support is provided on stackoverflow.com. SWISH: Create clpfd_monotonic flag so that it works correctly for dif?. small correction. enforce acyclic SAT formula. ADDED: CLP(B): New flag clpb_monotonic makes CLP(B) monotonic. ADDED: CLP(B): Tentative syntax for monotonic reasoning: v/1 terms de?. acyclic_term() and skip_l
7.3.1920 Mar 2016 07:45 minor feature: Updated semweb. Updated http. Updated ssl. shift more attention to all_distinct/1. Updated semweb. ENHANCED: xref: do not verify sandbox rules while cross-referencing. Cleanup duplicate rules. Added prolog:residual_goals//0 as hook. xref: take care of the possibility that built-in predicates ar?. Updated semweb. Updated semweb. Updated http. ENHANCED: Stop tracing internals of phrase_from_file/3. Updated space and swipl-win (license). Updated semweb and xpce. Updated clib. Updated http and pengines. Updated table. DOC: must_be(between(L,U), T). Updated pengines. library(prolog_colour): string literals. ENHANCED: Use murmurhash for all indirect types. Simplifies code, pro?. TEST: indexing indirect types. BUILD: make `configure --without-*` work. MODIFIED: library(prolog_colour): Signal in setof/3, etc. as `ext_q?. Updated semweb. findnsols/4: incorrect report of global overflow when applied ?. Updated pengines. Small style improvements. list_undefined/0 removed old deprint statement. Updated http. Updated semweb. : lazy_list_location//1 for the very first character. Updated semweb. check visibility attribute support of compiler. Merge branch 'master' of github.com:SWI-Prolog/swipl-devel. Updated xpce and semweb. Updated xpce and semweb. Preparing version 7.3.19.
7.3.1725 Feb 2016 16:05 minor feature: Updated semweb. wording. Updated clib. numeric comparision of NaN and NaN. ENHANCED: Exception for absolute_file_name/2. Updated sgml and semweb. Updated clib. Updated semweb. DOC: Forgotten argument, typo. Eyal Drechter. ENHANCED: use poll() rather than select() for timeout handling on str?. PORT: Partial poll() support for Windows. PORT: Avoid undefined shift of negative integer. Updated http. Properly use setup_call_cleanup/3. Run initialization/1 goals when loading a.qlf file. Paulo Moura. Updated sgml. wording, layout. zcompare/3: more explanation. Comment and destatements. Updated clib and pengines. Updated packages for license change. ' sig_atomic'/1 is now implemented such that an exception rais?. MODIFIED: exception_hook/4 can now be called with `CatcherFrame` equa?. tprofile/1: called undefined show_profile/2. Avoid dependency on pce_expansion:push_compile_operators/1 and. list_undefined/1: when checking system modules silence reports on. Loading a.qlf file using file executed the initialization d?. Updated http. Updated pldoc. Updated semweb. Updated semweb. Updated cpp. Updated xpce and http. ENHANCED: Raise permission error when dereferencing too deeply nested?. Minor spelling in library(dcg/basics). Updated semweb. Avoid warning. INSTALL: Windows: use nsExec::ExecToLog() to get rid of the popup win?. Updated sgml. Preparing version 7.3.17. Updated sgml and semweb.
7.3.1604 Feb 2016 04:45 minor feature: Updated sgml. Updated debian. save for flag/3 structures. Kuniaki MUkai and others. module/1 to allow new modules. error in module xrefing prolog_read_source_term/4. Updated http. possible use-after-free when rehashing functor tables. Updated http. Updated http. Updated pengines. ' attvar_assign'/2: pre-allocate space for the assignment. incorrect discontiguous warning when reloading dynamic predica?. Possible crash in tracer on FAIL port due to overwritten choic?. Updated http. document combination of attributes in verify_attributes/3. Updated http. Updated clib. Updated http. ENHANCED: library(sandbox): get better stack info if meta-call analys?. Updated pengines. Updated http. Updated pengines. be more precise: the content is placed at the exact position where th?. wording. correction and emphasis in first sentence of this paragraph. correction and wording. Typo. Updated http. Updated http. Simplification for collect_va_goal_list/3. Douglas Miles. Exceptions using foo(). Gnu - GNU. occured - occurred. Updated xpce. Reverted chr to pre-verify-attributes. REVERT: Reverted introduction of verify_attributes/3 as attributed. Preparing version 7.3.16. CLPB: Documentation enhancements. LaTeX typo.
7.3.1514 Jan 2016 00:45 minor feature: PORT: Compile on Windows. consistency. Updated http. Updated http. Avoid repetitive printing of uncaught exceptions in recursive ?. calling potray/1 when printing an atom did not pass on exception. Limit recursive nesting of calls to portray/1. Unbounded. PORT: PL_register_foreign(): define function pointer as void seems to. Typo in section label. Throw exception from signal handler. Gniourf. MANPAGE: Document "swipl file1..." invocation, as in swipl --help. DOC: Updated Unix man page. Updated http. TEST: reload test to reflect currently intended behaviour. Possible unrecoverable local stack overflow for clauses with m?. Updated pldoc. LICENSE: Updated header skeleton for new files. ADDED: git_shortlog/3: Unix time stamp to output record. Updated pldoc and plunit. tentative support for #/1 in addition to ?/1. Ulrich Neumerkel. MODIFIED: Reimplemented attributed variable hook infra structure. The?. DOC: Document new verify_attributes/3 hook. Use phrase for dif/2 internals. PORT: Use new verify_attributes/3 hook. PORT: Use new verify attributes hook. PORT: Use new verify_attributes/3 hook. Also lifts limitations. PORT: Use new verify_attributes/3 hook. Updated CHR. Added verfify_attributes/3 as possible hook. ADDED: library(sandbox): support new verify_attributes/3 hook. Cycle-safe detection whether a term contains functions. This i?. for #101 - Adding variables with attributes to the toplevel reus?. DOC: typo and ephrased ungrammatical sentence. listing/1 for predicates that were made transparent by means o?. actually remove clauses of the last clause(s) of a static pred?. Cleanup code organisation for writing floats. Updated cpp. ADDED: Syntactical support for float infinity and NaN according to. Updated sgml. Updated 10 packages to BSD. COMPAT: Make NaN handling compatible with ECLiPSe, after comments from. Updated comment. Updated http. Updated sgml and semweb. ENHANCED: speedup =..(-,+) and make sure wakeup happens in this mode.?. Updated semweb. Added gp
7.3.1423 Dec 2015 20:25 minor feature: INSTALL: Try multiple servers for downloading the documentation. ENHANCED: Lock-free and thread-local-data free lookup of existing mod?. More LD passing around procedure lookup to speedup meta-calling. More passed LD. load_files/2: execute initialization/1 directives when loading?. ADDED: library(sandbox): allow for :- initialization directives. Updated chr. Allow actually using the expand_query/4 and expand_answer/2 ho?. ADDED: hook prolog:residual_goal/1 to allow applications to make thei?. ADDED: library(hprolog): make_get_store_goal_no_error/3 to support CHR. Updated pengines and CHR: Updated xpce and chr. Predicate count statistics was not incremented for local defin?. Possible crash in ' thread_local_clause_count'/3. Updated http. PORT: MacOSX: Use /usr/lib/java_home to find Java. ENHANCED: cache absolute_file_name/3 search results for a configurable. Updated pengines. Typo in comment. Updated pengines. MODIFIED: replaced prolog:residual_goal/1 hook with a. Updated chr. Ignore failure from residual_goals callback. Updated chr. thread_send_message/3: failed to reset `wait_for_drain`. Sandbox cleanup. Updated chr. Typo in 081ab0a. Updated chr. Updated chr. Updated semweb. arity, typo. Preserve variable identity for residual goals produced by. Updated CHR. MODIFIED: Changed prolog:translate_bindings/4 to prolog:translate_bin?. Updated pengines. SANDBOX: Allow monotonic CLP(FD) via the flag clpfd_monotonic. SANDBOX: Obtaining BDDs by setting clpb_residuals to bdd is safe. Updated semweb. Updated header. MODIFIED: Run specific stream hooks before the global hooks tha?. Make getStreamContext() lock-free. Avoid creating a stream context when unifying a stream without. Added warnings to investigate the stream context race reported by. Layout. Avoid possible assertion error in CHK_SECURE mode. Otherwise m?. Handle exceptions from prolog_exception_hook/4. Work in progress. Do not freeze the stack for atomic exceptions. ADDED: library(sandbox): nb_linkarg/3. Ne
7.3.1102 Dec 2015 05:25 minor feature: Declare ' filled_array'/4 safe, so library(nb_set) passes the. Updated clib. ADDED: PL_check_stacks(). DOC: Added section on deging foreign code. ADDED: library(sandbox): allow variant_hash/2. : configure --disable-mt. use wrapped control functions when dealing with wrapped streams. single-threaded (--disable-mt) use of lockless atom/functor/ht?. Define PL_get_thread_alias() for single-threaded version. library(statistics): avoid thread dependencies. Updated cql and odbc. ENHANCED: CLP(B): Emit warning if library(clpb) is used with bounded ?. enhance introductory section. use the important concept "core relation" in section heading too. Change "porposes" to "purposes". Updated http. Updated http. scanl comment: Xmn - Xm1. Include time in fatal error. library(persistency): define term_expansion/2 in system to mak?. Updated http. DOC: Explained pitfalls concerning (if- then). After discussion with. Updated http. MAINTENANCE: too strict consistency check that can result in a ?. Updated http. Updated http. DOC: Document scoping with term-references that are written to. ENHANCED: macro expansion for once/1. The new expansion avoids. Avoid simplifying (X- Y),true to (X,Y). Abramo Bagnara and Paulo. Updated http. Updated clib. Avoid expansion of (A;B) to introduce in or delete - from the. CLEANUP: Now that (A;B) is expanded safely, we no longer need to take. ENHANCED: listing/1: more consistent handling of modules, especially ?. Updated http. Updated cql. Updated http. Updated http. Updated ssl. Comment typo. Updated swipl-win. Possibly deadlock when setting/clearing breakpoints on unifica?. ' break_at'/3 to deny setting a breakpoint on B_UNIFY_EXIT. ' break_pc'/3 to return the start and end of inline unification. Updated clib. Updated odbc. Preparing version 7.3.11. LaTeX typo.
7.3.1009 Nov 2015 19:05 minor feature: ENHANCED: Add lockless functor tables. Updated semweb and odbc. Updated pengines. DOC: break/0. ENHANCED: make (...) a callable term again. Samer Abdallah. Do not try and create a new functor if we find a partially instantiat?. ADDED: variant_hash/2, a non-cryptographic version of variant_sha1/2. ENHANCED: concurrent/3: use abort/0 to get rid of stale threads rather. ADDED: ' filled_array'/4 to quickly generate compound terms where. MODIFIED: base library(nb_set) on hash tables rather than (unbalanced). MODIFIED: distinct/2 now runs on the new implementation of library(nb?. Updated pengines. isCurrentFunctor() during a functor table resize. Updated semweb. Updated semweb. compilation under -DO_DE. (gui) tracer callback from a redo in an if-then-else could reset. Tracer `retry' on previously skipped frame to retry the proper?. Updated xpce. possible crash during program tear-down. Avoid saving system:' loading_file'/3. Meaningless and contains. qsave_program/1,2: proper quoting of goal and toplevel options. possible crash while referencing partially-instantiated thread. qsave_program/1,2 option saving. ENHANCED: library(prolog_source): avoid foreign dependencies. This makes. Memory leak if thread_create/3 fails due to an invalid inherited ID. Updated pengines. ADDED: CLP(B): weighted_maximum/3, solving Boolean linear programs. ENHANCED: CLP(B): sat_count/2 now also works with universally quantif?. ADDED: thread_property/2: system_thread_id property to get access to the. Updated clib. DOC: Arity typo in library(iostream). dicts_slice/3. variant_sha1/2 failed to distinguish sharing from non-sharing. If. is used as inoperator, write it without quotes. Updated pengines. Typo in doc. Tighten predicate statistics count. Added msg_proc_count detopic. Possibly non-termination of variant_hash/2. Wouter Beek. ADDED: library(sandbox): char_code/2 is safe. Updated semweb. Updated http. Updated http. library(optparse): handling of type term. Updated debian. Updated ht
7.3.919 Oct 2015 14:45 minor feature: Updated swipl-win. Updated http. Updated http. crash when resizing hash-tables if another thread has partiall?. Small speedup copying atomic values. MODIFIED: library(ugraphs): renamed transpose/2 to transpose_ugraph/2?. ADDED: library(dicts), providing (mostly) operations on lists of dicts. DOC: Typo. Updated clib. DE: include the thread-alias and time stamp in an assertion-failure. Comparison operators wrt -0.0. ADDED: library(dicts): dicts_join/3,4, dicts_slice/3. Deleted. Updated http. encourage instantiated Sequence in examples and modes. relax conditions on Counters. Updated clib. Check malloc() return value. wording. Avoid ininitialised warning. Avoid redefinition of ctime_r. MODIFIED: renamed win_file_security_check flag into win_file_access_c?. Using open()/cannot deal with directories, so we still use. DOC: win_file_access_check flag. write_term/2,3: Only call portray_goal option value on non-text. Updated pengines. Add initial cut for lockless atom lookups. Documented new atom tables and raised some. Documented AGC interaction. Resize atom table before attempting to insert a new atom. This reduce?. Cache in-use atom buckets between invalidating atoms and destroying a?. Maintain chain of invalidated-but-not-freed atoms in AGC. This speeds?. Colouring refused op(P,T, ), which is not allowed in ISO, but is. Updated pengines. X is Y+1 with Y unbound could crash when traced using a. Added time and thread-id in sysError(). Preparing version 7.3.9.
7.3.727 Sep 2015 07:05 minor feature: ENHANCED: warning when TMP and/or TEMP environment variables point to an. typo. Eyal Dechter. ENHANCED: Rewriting min-max-witness templates to use constant space. format/3: emit multiple adjacent tabs. Eyal Dechter. possible memory leak if thread-exit goals are deep cyclic terms. ADDED: prolog_load_context(term, Term), providing the term being expa?. possible crash when dealing with an invalid socket on Windows ?. possible htable corruption when destroying mutexes. The global mutex table is locked in pl-thread.c so we no longer need ?. Updated clib. DOC: typo in string_predicate/1 usage example. library(sandbox) to accept call_with_inference_limit/3 and cal?. subsumes_term/2 failed if constraints remained on the second. Do not emit a space before a '(' if the character before is. MODIFIED: display/1,2 is now mapped to write_term/2,3 using the. Updated http and pengines. Avoid problems if CiaoGoal is module qualified with a variable. MODIFIED: Do not call goal expansion on M:G, where M and G are both. PC admin during exception unwinding. Initially in. DOC: function arity copysign/1 -- copysign/2. Updated db. ADDED: CLP(B): Universally quantified variables, written as atoms. ENHANCED: CLP(B): In residual goals, atoms denote input parameters. ENHANCED: CLP(B): Variable separation in residual goals, if possible. ENHANCED: CLP(B): Fuse residual goals that share the same variables. DOC: CLP(B): Add text and example for universally quantified variables. generalise separation of variables. support universally quantified variables in later unifications. register a new variable for the atom when the previous variable was u?. Updated sgml. Merge branch 'master' of https://github.com/SWI-Prolog/swipl-devel. Updated sgml. MODIFIED: open_string/2 now avoids changing ISO-Latin-1 strings to UT?. Renamed packages/db into packages/bdb. ADDED: Package bdb to default distro setup. Try to build library bdb by default. Check for library(bdb). Updated bdb. Updated bdb. Update
7.3.605 Sep 2015 15:05 minor feature: Updated http. use visiting interface to mark variables in card/2. www_open_url/1 tried `firefox -remote openURL(...)`, which is no. ENHANCED: deger: while skipping, possibly created threads are started. ENHANCED: library(www_browser) has been cleaned and updated. DOC: Deal with log N . Stephen Coda and Michael Hendricks. Updated ltx2htm. ADDED: --disable-mt configure option. Merged conditional compilation directives. Do not enable profiling unless multi-threading is also enabled. AC_TYPE_SIGNAL is needed even when profiling is disabled. Unused variables avoided. Annotated some else's and fi's to improve readability. Avoid linking with librt (and thus libpthread) when multi-threading i?. Added missing inclusions. Honor O_PLMT. Do not override config.h unnecessarily. Added missing inclusions. Do not define _REENTRANT unless O_PLMT is defined. Moved inclusions to the implementation files. Guard code by O_PLMT. Updated clib. Added clib prolog_stream library to Windows installer. ADDED: Sandbox listing/1 if argument is not qualified. Updated pengines. safe declaration of listing/1. CLP(FD): Apply goal expansion only if the CLP(FD) predicates a?. Avoid reloading on repeated check_installation/0. Only delay after printing a message if there is output. ADDED: library(sandbox): string_lower/2 and string_upper/2. Updated chr. ADDED: library(sandbox): file name manipulation primitives. Use sort/4, avoiding reverse. clp(fd) goal expansion for explicitly qualified goals, as. ENHANCED: Rewriting sum(X) template to use nb_setarg/3 in constant sp?. DOC: mode of parse_url/2. DOC: Clarified confusing quote. Jochem Liem. Updated clib. ENHANCED: aggregate_all/3: implement min(X) and max(X) using constant?. possible crash when accessing unallocated memory after PL_cano?. ENHANCED: CLP(FD): Avoid residual variable for all_different( ). Ulr?. DOC: CLP(FD): New section about optimisation. Julio Di Egidio. readability. ENHANCED: CLP(FD): Fewer attributed variables in call_residue_vars
7.3.514 Aug 2015 14:25 minor feature: Updated http. Updated pengines. Updated pengines. FIXED: reset PC when unwinding from an exception. This prevents the v?. TEST: Turned GC issue reported and fixed by Keri into a test. Only. FIXED: pack_install/1: non-determinsm when installing from a directory. Allow for gensym/2 in sandboxed code. clearify: over integers. improve readability. use same_length/2. ADDED: library(sandbox): ?=(A,B) is safe. FIXED: CLP(B): Correctly handle duplicate variables in cardinality co?. ADDED: CLP(B): ?- set_prolog_flag(clpb_residuals, bdd) to see the BDD?. ENHANCED: CLP(B): stronger internal consistency checks, enabled by se?. ENHANCED: CLP(B): in residual goals, constrain remaining variables to?. FIXED: CLP(B): in internal consistency checks, take into account that?. make domain error state what is expected, not what is found. ENHANCED: CLP(B): More scalable propagation of domain consistency. ENHANCED: CLP(B): The solver is now aliasing-consistent (see commit). layout. ENHANCED: CLP(B): Faster domain and aliasing consistency. simplify propagation for domain and aliasing consistency. only variables that are not further-branching can be negative-decisive. Updated chr. FIXED: Unification between two CLP(B) variables in certain cases. actually parse the formula. only construct the conjunction if variables are from different BDDs. ENHANCED: CLP(B): More scalable taut/2 for large conjunctions. Added consistency checks for the new attvar admin. FIXED: Make sure copy_term/2, friends and the recorded database add. use + + to reset attributes. mention CLP(B) as an often suitable alternative for Boolean variables. classify the variables at the time we sweep the BDD. better name. FIXED: ensure checkDefinition() is called with a lock on the predicat?. ENHANCED: CLP(B): Improve trail stack usage. FIXED: clause index - size represents the number of indexable clauses. FIXED: pack_install/1: compute type (git/non-git) independently for. Updated clib. DOC: `dot_lists` rather than `dotlists`.
7.3.417 Jul 2015 06:05 minor feature: fixed is_heap. Updated JPL. Updated archive. Updated pldoc. Updated http. ADDED: safe_goal/1: support built-in functions on dicts. updated archive. PORT: Test for mp_bitcnt_t and typedef to `unsigned long` if it is not. Updated semweb. Updated semweb. Updated http. Updated http. Merge branch 'master' of github.com:SWI-Prolog/swipl-devel. FIXED: Possible crash when using :- include() into a temporary module. Updated pengines. MODIFIED: set libswipl SONAME to major.minor instead of major.minor.m?. FIXED: : wrong space requirement calculation for GC under. FIXED: Dict keys could not be quoted (e.g., _ 'file':"x.pl" ). ADDED: Maintain included-file info for data included using the. ADDED: library(prolog_breakpoints): set_breakpoint/5 to manage breakp?. Updated pengines. Preparing version 7.3.4.
7.3.325 Jun 2015 19:05 minor feature: ADDED: CLP(B): random_solution/2, uniformly picking a single solution. Merge branch 'master' of github.com:SWI-Prolog/swipl-devel. FIXED: safe declaration for call_residue_vars/2. Small cleanup of test case. Make test more portable. Updated odbc. Wrong C condition. Boris Vassilev. ENHANCED: CLP(B): More readable residuals for variable equality and d?. avoid redundant (harmless) sat(X=:=X) residuals for existential varia?. ADDED: PL_foreign_context_predicate() to find the predicate that is e?. FIXED: Avoid DOS CRLF translation for e.g., format(atom(X), 'a n', ). New test for dif/2 based on. TEST: Added second (still failing) test for dif/2. Test by Markus Tri?. Updated ssl. Updated semweb. Updated semweb. Updated semweb. Updated pldoc and http. Updated semweb. FIXED: char_type(X, digit(V)) must return X = '0', V = 0. Wouter Beek. TEST: code_type/2: systematic test for consistency of mode +,- and -,+. FIXED: thread-safe management of break-points. Resizing of the break. FIXED: (dif/2). Patch by Tom Schrijvers after analysis work. FIXED: Possibly crash in just-in-time indexer in the presence of a. Updated xpce. Updated semweb. Updated odbc. Updated jpl. Updated jpl. DOC: Update to `Positioning SWI-Prolog'. Updated zlib. Updated odbc. PORT: MacOS: Pick up Brew version of libreadline if Macports version is. Fixed typo if O_DEBUG is used. FIXED: Garbarge collection error if GC is called from the frame cleanup. No need to clear the exception if there is none. Updated odbc. use sat/1 in residuals to also constrain variables to Boolean values. Updated JPL. ENHANCED: Stop directory components from PATH holding 0-bytes to pr?. FIXED: resort nested dicts when loading from a.qlf file or saved state. FIXED: qsave_program/2: save the ISO property. FIXED: library(sandbox): avoid errors when used in a saved state. Updated semweb. Preparing version 7.3.3. Updated semweb.
7.3.104 Jun 2015 20:45 minor feature: Replaced Ubuntu utopic by vivid. Updated debian. Fixed detection of system on FreeBSD in pl-dict.c. Updated ssl. wording: "detached" -- "pending". Ulrich Neumerkel. adapt test cases. FIXED: ERROR: Syntax error: Unexpected `,' before ` ' must be. FIXED: syntax error in toplevel is repeated hitting RETURN. ISO: current_op/3: raise domain_error(operator_priority, Pri) if the ?. Fixed previous patch to current_op/3. MODIFIED: open/4 raises a permission error if the provided alias is a?. FIXED: callProlog(): make sure exception term handle remains valid. FIXED: Make sure exception returned from quasi quotation parser remains. TEST: Added quasi quotation tests. Updated http. Added debug statement to simplify debugging stack traces. FIXED: set_stream_position/2: exception on invalid position term. Paulo. INSTALL: Use new swipl.nsi. DOC: Document semidet of aggregate_all/3,4. Compatible with SICStus. Updated clib and http. Updated ssl. Updated http. Updated JPL. BUILD: Possibly work around a MacOS issue wrt. concurrent building. Updated jpl. Updated http and semweb. Updated HTTP. Updated ssl. BUILD: Updated build.templ. Updated ssl. Preparing version 7.3.1.
7.3.014 May 2015 19:45 minor feature: DOC: Added JPL documentation. Updated pengines. Updated jpl. Updated pengines. Wrong warning. Updated sgml. DOC: Added library(persistency) documentation to the manual. Stephen ?. DOC: thread_create/3, at_exit(:AtExit) option. Jacco van Ossenbruggen. DOC: complexity of heaps library operations. Add test case for AGC during thread at-exit hooks. FIXED: allow atom-GC to include threads running at-exit hooks. Updated pengines. Updated pengines. FIXED: CLP(B): Correct propagation for smaller than topmost index. MODIFIED: CLP(B): Residual goals are now in algebraic normal form (ANF). Updated pengines. FIXED: pack_install/1,2: Installation of dependencies inherited version. single-pass removal of elements that occur an even number of times. terms in residual goals are now ordered differently. Updated ssl. ENHANCED: CLP(B): Stronger propagation, reducing choice points in lab?. mention the need for projecting residual constraints to query variables. ADDED: CLP(B): project_attributes/2. Ready for toplevel integration. ADDED: library(sandbox): call_residue_vars/2, call_with_inference_lim?. Updated pengines. ENHANCED: safe_goal/1 now accepts adding attributes for which no or only. ADDED: Attributed variable hook project_attributes/2 and a new Prolog?. Minimal documentation for project_attributes/2. CLEANUP: remove dummy hooks that were only necessary for sandboxing. The toplevel now supports project_attributes/2. Many thanks Jan!. ENHANCED: CLP(B): remove all auxiliary variables from residual goals. extend documentation of project_attributes/2. fontification. correct arity. wording. ENHANCED: CLP(B): More compact residual goals. update residual goals in examples. ENHANCED: CLP(B): use a list of sat/1 goals in constraint projection. shorten, naming. Some fixes to the README.* files. Updated README.git (git locations). Updated pldoc. ENHANCED: CLP(B): suppress sat(V=:=V) constraints for inaccessible. Updated pldoc and semweb. Cleanup. ADDED: Keep track of hidden residual goals
7.1.3714 May 2015 08:25 minor feature: Typo in summary documentation. show corresponding example. Updated http. Updated semweb and http. ENHANCED: Try various emergency measures instead of terminating the p?. FIXED: Must close the frame after raising the exception. Otherwise the. Updated clib. wording. typo. FIXED: Various issues wrt exception term-references. FIXED: Handle exception term-handle properly in can_unify(). FIXED: Overflow handling in put_dict/3. Type cleanup. Stack free is minimum def_spare + min_free, so this should be our. FIXED: If no GC is wanted after an out-of-stack, we must re-enable the. CLEANUP: Simplify cleanup after an exception. Typo in comments. FIXED: Var =.. f(a) must raise a type error. Logtalk test suite. FIXED: on text-streams with with less than 4 bytes at_end_of_stream/1. Generalise tests. Updated xpce. Updated archive. DOC: function atan2/2: document ISO C99/POSIX discrepancies. Updated version and header. Updated semweb. Updated JPL to V7. INSTALL: support ./prepare --server=http://us.swi-prolog.org. Updated jpl and pldoc. naming. Updated semweb. ADDED: library(error): uninstantiation_error/1. DOC: open/4 create option (LaTeX error). FIXED: CLP(B): Avoid unintended failure with Boolean second argument. comment explaining previous commit. steadfastness of sat_count/2. Updated clib. ADDED: library(iostream) to act as broker between libraries that create. Updated http. Updated sgml. Fixed open_any/5 using string(Text). Added library(iostream) to manual. FIXED: pack_install/1 with dependencies tried to install dependencies. ADDED: library(settings): declare setting/2 is safe. ADDED: library(sandbox): import_module/2. ENHANCED: CLP(B): Stronger propagation. assume skipped index when encountering an instantiated Boolean. naming. FIXED: pthreads from winpthreads library may not retain win32 thread ?. more useful first sentence for predicate index and book. more declarative wording. remove superfluous nesting. more useful first sentence for the predicate index and book. sh
7.1.3623 Apr 2015 01:25 minor feature: FIXED: library(git): closing streams on errors. FIXED: git/2 and git_process_output/3, git_describe/3: guarantee the ?. Updated clib. ADDED: CLP(FD): disjoint2/1, describing non-overlapping rectangles. shorten. better error checking in options for cumulative/2. ENHANCED: CLP(FD): Stronger propagation in cumulative/ 1,2 . shorten, naming. generalize reasoning to variable consumptions and durations. make cumulative/ 1,2 also work with clpfd_monotonic set to true. improve wording for the manual and summary in index. explain the attr_unify_hook/2 deficiency in more detail. FIXED: pack_install/1 with a directory argument. Nicos Angelopoulos,. rename variables for better readability. make disjoint2/1 work with clpfd_monotonic set to true. ENHANCED: CLP(FD): More elegant residual goal of scalar_product/4. remove underscores from variables in this example. correct indentation and alignment of example code. more elegant projection for cases like ?- A + B + C #= -3 + 7 + X. naming. naming. account for earliest start time which may also be negative. FIXED: thread pools: possible race condition in the hook create_pool/1. Updated pengines. Updated clib. ADDED: Deal with exceptions raised in the tracer hook. Updated xpce and pengines. Updated clib. annihilate catachresis (??????? ????????). FIXED: arg/3: accept attributed variable as first argument. Michael H?. ADDED: In Ciao dialect, the following features where implemented:. ADDED: prolog_clause:open_source/2 hook to get source info from clauses. Updated pengines. Avoid returning non-existent clauses. FIXED: Source information for inline unification. DOC: CLP(FD): Enhance introductory section. wording. Updated http. assure users it's OK to use Prolog features when programming in Prolog. alignment. FIXED: Raise a type error on cyclic module-qualifications. Used to. FIXED: VMI support for cyclic module qualifications and tests. Updated packages for cyclic module qualifications. DOC: Updated Unix man page. wording. idem. Cleanup
7.1.3401 Apr 2015 06:05 minor feature: Updated sgml. Updated semweb. Updated semweb. Updated semweb. shorten. FIXED: offset/2: condition was the wrong way around. Updated http. ADDED: Several extensions to pack_install/2, making it useable for no?. Select default for menus if interactive(false) is given. Updated pengines. ADDED: sub_atom_icasechk/3 declared safe. FIXED: Be more careful while deleting source file structures. FIXED: : pack_install/1: out-of-range replies to menus. Raivo?. FIXED: CSV writing: Emit fields holding newlines as quoted. SECURITY: safe_goal/1: DCG meta calling was not verified correctly. FIXED: format_time/3: crash if time is given as date(Y,M,D). Wouter B?. FIXED: Add `iso` property to phrase/2,3. FIXED: set_stream/2 operations on stream pairs that should apply to both. Updated semweb and space (running tests). Updated clib, http and ssl (proxy support). Updated clib. Cleanup of DCG processing. FIXED: : apply given options for installing dependencies. FIXED: vm_list(ClauseRef). ADDED: clause_property/2: module(M) property to unambiguously detect we. SECURITY: library(sandbox): clause/2 could be used to extract private. ENHANCED: library(sandbox): unambiguously detect clauses that execute?. Updated pengines. Generalise sorting primitives to accommodate ECLiPSe sort/4. Added ordering argument. ADDED: sort/3, providing more flexible sorting. Compatibility with. ADDED: sort/4: support dicts for sorting. DOC: sort/4. TEST: library(solution_sequwnces): more tests. ENHANCED: Use new sort/4 to implement order_by/2 more efficiently. Cancel pack installation immediately if there is only one location and. Fix message if menu is not properly selected. give a more elegant error if the pack server does not reply. Preparing version 7.1.34.
7.1.3211 Mar 2015 01:05 cleanup: Removed R package from core system. Updated OpenSSL for MinGW to 1.0.2 Updated pengines, ssl. Make xref open source hook also work for included files. More structured hooking of directive sandboxing.
7.1.3017 Feb 2015 10:45 minor feature: ADDED: git/2: askpass(+Program) option. Updated semweb. FIXED: pack installation for GitHub releases. Updates to support github archives as packs by the webserver. Updated archive. MODIFIED: No longer unload foreign libraries explicitly at halt. Fore?. Do not rehash the atom table when closing down. FIXED: source_file_property/2: reported load context file. Andreas Be?. FIXED: Detection of the event hook in user. Andreas Becker. FIXED: closeFiles() now prints an error on exceptions and clears. Updated http. Speedup xref_module/2. Updated pldoc. FIXED: ls(non_existing). Boris Vassilev. Updated semweb. ENHANCED: Try to avoid terminal state switching and provide full support. ADDED: library(base64): base64url/2 to deal with Base64URL encoding a?. Updated archive. ADDED: library(base64): base64url//1. Updated http. Updated http. Updated archive. Preparing version 7.1.30
7.1.2927 Jan 2015 22:05 minor feature: Updated pengines. Updated http. ENHANCED: integer//1 used as integer(+I): raise error if I is not an. Fixed handling of meta-predicates with DCG goal arguments. Fix to prevent infinite recursion on DCG phrases in safe/5. Updated pengines and semweb. Updated semweb. fixed the call to clause in verify_predefined_safe_declarations. FIXED: Issues#22: Crash due to wrong compilation of == and == in the?. MODIFIED: In CLP(FD), truncated integer division is now (//)/2. tentative support for X rdiv Y #= Z, which will eventually become X/Y?. strengthen and simplify Z #= X rdiv Y via stronger multiplication. Updated pengines. tentative support for X div Y. pdiv -- ptzdiv (towards zero). reorder. make X div Y reifiable. Updated http. Updated archive. ENHANCED: prolog_canonical_source/2: performance. ENHANCED: xref_defined/2 in mode +,-: reduce calls to canonical_sourc?. FIXED: More reliable checking that clause_info/5 does not perform. FIXED: Make sure that clause/2 returns correct argument ordering for. Updated pldoc and pengines. ADDED: library(sandbox): declare subsumes_term/2 as safe. DOC: flatten/2 after comment on the website by Kilian Evang. DOC: is_heap/1 typo and claimed @bug is fixed. Updated semweb. Clarified documentation of discriminator argument. Updated rdf. Preparing version 7.1.29. Make distribution locations externally controllable
7.1.2806 Jan 2015 16:05 minor feature: PORT: Fix for os/pl-rc.c dependencies. Abramo Bagnara. Updated http. DOC: get_dict/5 cleanup after comments from Wouter Beek. FIXED: Attempt to perform meta-argument expansion for locally. FIXED: Several issues with predicate_property(M:X, visible). Declare predicate options for term_string/3. Updated pldoc. Updated pldoc. DOC: /2 is no longer a predicate and some more summary fixes. Updated pldoc. DOC: Documented load_files/1. CLEANUP: load_files/2 to use new error infrastructure of boot system. Updated http. FIXED: Avoid that illegal UTF-8 input results in negative characters. Updated sgml. Updated pldoc. Updated sgml. Typo. Wouter Beek. Updated http. Typo in comments. ADDED: set_stream(Stream, encoding(bom)) to ask the stream to look for. Uppdated clib. Updated pldoc. FIXED: Determinism in xref_public_list/3. Updated pengines. Updated semweb. Updated http. FIXED: Possible undetected overflow in code_type/2 which can cause a. use argument indexing. move section "Declarative Integer Arithmetic" closer to the beginning. reword description of expansion and move it into the pertaining section. FIXED: fix for reading the character with code 0 from text streams. FIXED: Issue#7: aborting sleep/1 from tracer does not stop prematurely. Updated pengines. ENHANCED: persistency library now uses setup_call_cleanup/3 for more. Updated http and pldoc. ENHANCED: Better fix for abort issue under Windows. Updated ssl. Preparing version 7.1.28
7.1.2716 Dec 2014 18:45 minor feature: Added utopic to PPA releases. FIXED: in wrap_meta_arguments/5, the hash should be generated using t?. FIXED: Issue#5: format_time/3, I, l and r: actually use 1..12 inst?. show sat_count/2 example for both * and +. Updated pengines. Updated pengines. FIXED: Disable atom-gc during PL_cleanup() to avoid calling hooks into. Updated semweb and http. Updated pldoc. MODIFIED: removed (undocumented) attribute_goal/2 hook, making. ADDED: library(sandbox): get_attrs/2 and term_attvars/2 are safe. ADDED: library(sandbox): declare copy_term/3 safe. Markus Triska. Updated http. DOC: explain error conditions of nb_* predicates. To allow for the optimisation that H_VOID, H_POP is replaced with jus?. Document dict sorting issues and add a test case for them. Updated http. Updated http. Preparing version 7.1.27
7.1.1801 Aug 2014 15:03 minor bugfix: Updated semweb,sgml, pengines, clib, http. Fixed possible hang in print_backtrace_named(). Fixed possible crash on halt if there are detached Prolog engines. Added memory barrier for localizing predicate definitions. Experimentally support for (//)/2 in arithmetic expressions.