Quintus Prolog Homepage WELCOME TO
Quintus Prolog
The Industry Standard
  Quintus Home > News in Release 3
Read about the new<br>features of Quintus Prolog 3

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.

Release 3.5


Red Hat Linux glibc ≥ 2.3 is a new supported platform.

For Windows: It is now possible to build DLL:s containing Prolog code to be linked dynamically into applications.

For Windows: 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 original.

The Objects Package is now bundled with the distribution.

New functionality have been added to the cross-referencer (qpxref) and determinacy checker (qpdet) tools:

  • they are now fully compatible with the module system, meta-predicates, and exceptions

  • 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 global analysis
The documentation has been ported to the Texinfo markup language, affecting details of the Help system and Emacs interfaces.

Where a library module had one name with an underscore and another name without it, only the name without an underscore has been retained.

Bugs Fixed

  • a critical bug in interpreted arithmetic

  • critical garbage collection bugs

  • prelinked QOF files were not considered up to date in binaries

  • bug in ordsets:ord_nonmember/3

  • For Windows: CR/LF handling bug in the DOS console

Release 3.4


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.

Bugs Fixed

  • current_predicate/2 failed after loading QOF-file saved by save_predicates/2

  • re-exported predicates could fail if the unknown flag was fail

  • 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: functor/3 bug

  • undefined profiler predicate

  • qpc bugs: input file suffix, all_dynamic(true) in embedded loads, handling -N and -o flags

  • 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 save_predicates/2

  • advice checking and debugging did not work when invoking a saved state

  • DCG expansion of {Goal} bug

  • C calling Prolog error handling bug

  • re-exportation and meta-predicate interaction bug

  • save_modules/2 failed to save a dependency corresponding to :- use_module(file,[]).

  • 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 qpwin.exe

  • QP_seek() bug

  • SIGPIPE signals cause abort instead of exit

  • library bugs: strings:span_*/*, strings:midstring/*, strings:concat_atom/*, strings:concat_chars/*, directory:file_member_of_directory/2, heaps:get_from_heap/4, date:time_stamp/*

  • proxl:current_window/1, proxl:current_display/1 could crash

  • library(tcp) bugs: floating point byte swapping, tcp_shutdown(), non-lingering tcp_listen(), file name size limitation

  • many documentation bugs

Release 3.3

Bugs Fixed

  • Pascal interface bug for -string

  • bug in library(putfile)

  • memory leak in garbage_collect_atoms/0

  • 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

Release 3.2


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.

For Windows: A version of the development system is supplied that directs Prolog's standard streams to a Window. A new -W option to qld enables other Prolog applications to run with this window.

For Windows: Some minor changes in the directory structure have been done, e.g. host_type and system directory name has changed from i386 to ix86.

Bugs Fixed

  • 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 time_stamp/3