Home Research XSB System Contact Us

Release Notes

Version 3.3 (Pignoletto)

Version 3.3 is a major rewriting of XSB that includes several new packages and significantly improves XSB's functionality and stability. Some of the improvements for Version 3.3 are as follows.

The CURL Package

The curl package is an evolving interface to the libcurl library. libcurl supports numerous protocols, including FTP, HTTP, SCP, and many others; it also supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling etc. The CURL package is also now an underpinning for XSB's xpath and sgml packages.

The PITA Package

Probabilistic Inference with Tabling and Answer subsumption (PITA) is a package for uncertain reasoning. In particular, it allows various forms of Probabilistic Logic Programming and Possibilistic Logic Programming. It accepts the language of Logic Programs with Annotated Disjunctions (LPADs) and CP-logic programs, along with Prism-style programs. PITA computes the probability of queries by tranforming the input program into a normal logic program and then calling a modified version of the query on the transformed programs.

Answer Subsumption

Predicates can now be declared to be tabled with answer subsumption using arbitrary partial orders or lattices. In addition to improving the interface to answer subsumption the underlying implementation is now far faster than in previous versions.

The RDF Package

RDF is a W3C standard for representing meta-data about documents on the Web as well as exchanging frame-based data (e.g. ontologies). RDF has a formal data model defined in terms of triples. In addition, a graph model is defined for visualization and an XML serialization for exchange. The XSB PDF package is an adaptation from SWI Prolog.

Tabling and System Enhancements

Other Libraries

Compatability Improvements

Various changes improve XSB's compatability with other Prologs

Stability Improvements

Numerous bug fixes and enhancements improve the robustness of XSB. Areas of concentration include: call subsumption, attributed variables (tabled and non-tabled), multi-threading (including support for XSB packages under multi-threading), complex reasoning with tabled negation, incremental tabling, the mysql interface, and backtrackable updates. In addition, various efficiency improvements have been made that affect arithmetic expressions, all solutions meta predicates, interned tries, and querying XSB as an embedded program.

Version 3.2 (Kopi Lewak)

Version 3.2 is a major rewriting of XSB that includes new functionalities and significantly improves XSB's stability and speed. Some of the improvements for Version 3.2 are as follows.

Constraint libraries

While XSB has long supported attributed variables and constraint handling rules, it has been missing constraint libraries for the past few versions. Version 3.2 includes both CLP(R) and a simple finite domain range solver. Constraint evaluation is private to each thread, and handlers are available whether XSB is called from the command-line or embedded on a process.

Improved tabling with call subsumption

Call subsumption now supports evaluation over the full well-founded semantics as well as supporting attributed variables in answers. In a multi-threaded environment call subsumption is fully supported for private tables, and is more scalable than in version 3.1.

Compatibility with ISO standards

Improved compatibility with other Prologs and installation

XSB's atom-based module system has different behavior than the predicate-based module system of most other Prologs, but in most cases XSB now supports the syntax common to most module systems. module/1 is now synonymous with export/1 and use_module/2 is now synonymous with import/2. Explicit module calls using :/2 are supported in most places.

Limited support for statistics/2 is also now available. time/1 also added, for compatibility with SWI and YAP. Also, multifile now fully supports dynamic and static predicates.

In addition, XSB is now easier to install as a package on Mac OS X.

Speed Improvements

XSB's arithmetic is now much faster as well as throwing errors that are more ISO-compatible. Compiler changes were made to exploit determinism in conditional tests. In addition, speed improvements were also made to assert/1, trie_assert/1, retract/1, retractall/1, and call/1.

Improvements to 64-bit evaluation

64-bit XSB now runs properly on Macs (in addition to Linux). Boxed floats on 64 bit port give floating point computation that is fully IEEE compatible. read_canonical/[1,2], and fmt_write/[1,2] now work for 64 bits. max_integer and min_integer are now correct in 64-bit evaluation.

Improvements in multi-threading

The MT engine has been made more stable and efficient overall, for both non-tabled and tabled code.

For private tables Version 3.2 provides greatly improved scalability. For shared tables under local evaluation (shared completed tables), more concurrency is now possible and fewer thread wake-ups now occur. Code is also more robust in (pathological) cases of cascading usurpations.

In addition to public message queues, private message queues and signal queues are now supported. All queues in the MT engine are now more stable. thread_sleep/1 is now cancelable i.e. sleeping threads may be cancelled. In addition, predicates thread_property/2, threads/0 and thread_peek_message/1 are now supported.

Foreign-Language Interface

Changes now allow XSB and C to call each other recursively, both in the single-threaded and the multi-threaded engines.

Interned Tries

XSB allows efficient interning of terms within trie data structures. A new API for interned tries is now available that supports both thread-private and thread-shared tries, and allows for different levels of (safe) memory management when terms are deleted from tries.

XASP package

The Smodels engine is now distributed with XSB making XASP installation easier. XASP is now more stable on cygwin and some elements of XASP are thread safe.

dbdrivers package

The dbdrivers package now supports embedded mysql, so that XSB can be configured to directly call mysql without requiring a separate mysql driver. Memory leaks also fixed for dbdrivers package.

Profiling

XSB's profiling now has primitive functionality for determining what modes (and how many times) a call is being made.

random.P

Generation of weibull, exponential, and normal distributions is now supported.

Memory management

string garbage collection Heuristics changed to avoid unnecessary calls

table garbage collection has more thorough reclamation of abolished table space. In addition, table garbage collection now checks delay lists so that garbage collection within non-stratified queries is safer.

Garbage collection of retracted dynamic clauses works better and faster, and heap garbage collection is more stable.

Version 3.1 (Incognito)

Version 3.1 is a major rewriting of XSB to new functionalities and improve XSB's stability, particularly for the multi-threaded engine

Major Improvements

Other Improvements

Bug fixes

Version 3.0 (Sagres)

General

Version 3.0 is a major rewriting of the XSB engine to support multi-threading and to include many new and improved features.

Major New Functionality

Other Functionality

Version 2.7.1 (Kinryo)

Version 2.7.1 is a minor release whose main changes are to support the tagging required by newer versions of Linux, as well as to support foreign language calls and packages on the Apple Macintosh. Other bug fixes and functionality improvements have also been made.

Version 2.7 (Kinryo)

General

Version 2.7 has many fixes to bugs and improvements to packages and libraries.

Major New Functionality

Other Functionality

Selected Bug Fixes

Backward Incompatibility

Version 2.6 (Duff)

General

Version 2.6 contains a number of changes, including new packages and libraries for generation of manuals from code documentation and for answer set programming. Version 2.6 also allows a user-modifiable extension for byte-code files, whose default .xwam extension replaces the previous .O extension. Existing features Version 2.6 have been improved in various ways, from better exception handling, to a more robust Windows implementation, to numerous bug-fixes.

News

Packages and Libraries

Platform stabilization

Bugfixes

Backward Incompatibility

Version 2.5 (Okocim)

General

This is mostly a transitional release, where the major changes are the move to use the SLG-WAM engine as default, and the introduction of garbage collection support for this engine. Also, several important memory management related bugs have been fixed, increasing the system's stability considerably.

Important Note

This is the last release to support the Chat engine.

News

Bugfixes

Backward Incompatibility

FLORA News

Flora-2 is still a late alpha release, but there have been considerable improvements in stability and speed. This release fixes many bugs, eliminates some restrictions, and adds new features.

Version 2.4 (Bavaria)

General

News

Bugfixes

Backward Incompatibility

FLORA News

This release of XSB contains an alpha release of a completely redesigned and re-implemented FLORA system (now called FLORA-2). Here is an incomplete list of the main new features of the system:

We recommend that Flora users should start using Flora-2, as the previous version of Flora is no longer maintained and will eventually be deprecated.

Version 2.3 (Zombie)

General

A great number of bugs fixed, new features, performance improvements.

News

Backward Incompatibility

Version 2.2 (Tsingtao)

General

News

New Packages

Backward Incompatibility

Bug Fixes

Version 2.1 (Skol)

General

News

Process management API: XSB can now spawn subprocesses and capture their standard I/O into XSB streams. This allows XSB to communicate with other processes. See XSB Manual, Volume 2, Communication with Subprocesses.

XSB preprocessor: There is now a compiler option, xpp_on, which tells the XSB compiler to put the source through a preprocessor. The default is gpp, a powerful preprocessor that understands both C and Prolog syntax.

High-level C interface: XSB can now automatically generate wrappers for the most common C functions. Such functions can now be simply declared using compiler directives and then be called from XSB.

Enhancements to the sockets interface: New calls such as socket_set_option, socket_select,, etc. Certain socket calls and file I/O calls can be timed-out.

I/O enhancements: There are several additions to the low-level I/O library, such as file_clone, file_reopen, pipe_open. Certain socket calls and file I/O calls can be timed-out.

New section on string manipulation in manual part 2: Some of the predicates described there are old (but weren't documented) and some are new.

Call changes: New calls: number_digits/2, number_codes/2, atom_codes/2 replace atom_chars/2 and number_chars/2.

Atom length: Atom length in compiled code is no longer limited to 255. The 255 limit on the size of ldoptions directive in the Foreign C interface has been removed as well.

Debugger enhancements: Many additional options: profiling, verbose skip, extensive trace control facility.

New Packages

sModels: Implements stable model semantics.

Backward Incompatibility

Version 2.0 (Gouden Carolus)

General

XSB Version 2.0 offers a more flexible handling of dynamic code. XSB now also includes a number of preprocessors that allow it to efficiently evaluate powerful formalisms such as F-logic, Annotated logic, and the well-founded semantics with explicit negation. Finally, XSB 2.0 provides various packages for regular expression and wildcard matching.

Large parts of XSB have been rewritten for this release, especially memory management, and representation of tabled clauses. The result is a more robust system with improved functionality that is more suitable for use in commercial and large-scale research development.

Added support for InterProlog, a Java front-end enhancement for Prolog

Packages

Version 2.0 of XSB includes the following packages:

Backward Incompatibility

The following incompatible changes have been made in XSB Version 2.0:


Email: xsb-users@lists.sourceforge.net
Last modified: $Id: rel_notes.html,v 1.15 2011/04/12 20:47:29 tswift Exp $