Read about the new
features of Quintus Prolog 3
QP Release 3 - Revision History
This section highlights the changes from Quintus Prolog release 3.1.
Red Hat Linux glibc ≥ 2.3 is a new supported platform.
It is now possible to build DLL:s containing Prolog code to be linked
dynamically into applications.
Quintus Prolog can be called from Visual Basic.
library(prologbeans) is a new package for loosely coupled
integration between Java and Prolog.
library(xml) is a new, unsupported package for parsing XML.
The Objects Package is now bundled with the distribution.
New functionality have been added to
the cross-referencer (
qpxref) and determinacy checker
The documentation has been ported to the Texinfo markup language,
affecting details of the Help system and Emacs interfaces.
they are now fully compatible with the module system, meta-predicates,
predicates can be declared (non)determinate
determinacy checking can be integrated with normal compilation
qpdet makes a better analysis of predicates calling
nondeterminate predicates, including built-ins
qpdet can optionally find all nondeterminacy through
Where a library module had one name with an underscore and another
name without it, only the name without an underscore has been retained.
a critical bug in interpreted arithmetic
critical garbage collection bugs
prelinked QOF files were not considered up to date in binaries
CR/LF handling bug in the DOS console
Release 3.4 features an Emacs-based source-linked debugger,
with approximately the same functionality as the QUI-based debugger.
The GNU Emacs interface was thoroughly revised and supports
GNU Emacs 19 and 20.
current_predicate/2 failed after loading QOF-file saved by
- re-exported predicates could fail if the
unknown flag was
- dynamic code generation bug for imported predicates in runtimes
- bug in finding the correct module of an already loaded QOF file
user:message_hook/3 not obeyed on restore
- For Windows:
binary gets and puts broken
- For Windows:
- undefined profiler predicate
qpc bugs: input file suffix,
all_dynamic(true) in embedded loads,
- runtimes did not accept
Module:Head :- Body clauses
- arithmetic bugs
retract/1 could leave a dangling pointer
ensure_loaded/1 did not work on QOF-files saved by
- advice checking and debugging did not work when invoking a saved state
- DCG expansion of
- C calling Prolog error handling bug
- re-exportation and meta-predicate interaction bug
save_modules/2 failed to save a dependency corresponding to
- garbage collection bugs
- indexing bug upon loading QOF-files
- For Windows:
runtime statistics wrap-around bug
- For Windows:
handling of asynchronous input, EOF and interrupts
in windowed executables such as
SIGPIPE signals cause abort instead of exit
- library bugs:
proxl:current_display/1 could crash
library(tcp) bugs: floating point byte swapping,
tcp_listen(), file name size limitation
- many documentation bugs
- Pascal interface bug for
- bug in
- memory leak in
- stack shifter bug
atom_chars/2 with 256 element list bug
qpc permanent variables limit detection
- Sun C calling convention bug
- QUI interrupt dialog box has no buttons
- ProXL runtimes don't work due to module qualification
Atom garbage collection, whereby memory for atoms no longer referenced
by the Prolog execution can be reclaimed. With the introduction of
this feature, the maximum length of atoms has also been increased from
1024 bytes to 65532 bytes.
library(strings) has been
modified to support the long atoms, only allocating space for long
atoms as needed.
The TCP library has been significantly enhanced to provide more efficient
passing of terms between Prolog processes, more functionality for server
processes and support for input callbacks, where predicates can be called
either when a specified file descriptor becomes ready or at a specified time.
A new licensing system has been introduced with this release.
A license manager program is provided to setup the licenses and provide
information on licenses installed.
The cross-referencer tool has been replaced by a new version that is
tuned to finding unreachable code in large programs.
A version of the development system is supplied that
directs Prolog's standard streams to a Window. A new
qld enables other Prolog applications to run with this window.
Some minor changes in the directory structure have been done,
system directory name has
avl:avl_fetch_1/5 is missing; misc. bugs
avl:ord_list_to_avl/2 creates AVL tree with incorrect functor
format/2 segmentation faults with large float exponents
set_input(user_output) raises exception
- float unification in QOF files fails
qpc syntax error message differs from development system
lists:nth1/3 description incorrect
use_module/2 information missing from .qofs
library(tcp): connection requests on callbacks functionality
date:datime/7 format inconsistent with