Release Notes for Version 2.2
General
News
- Support of Attributed Variables: Attributed variables are now
supported in XSB (partially compatible with SICStus 3.8). See XSB Manual, Voulume 2, Attributed
Variables.
- Random Number Generator: A builtin random number generator is
implemented, and a set of predicates, which are compatible with SICStus
3.8, are provided.
New Packages
-
libwww - a powerful Web access package.
See XSB Manual, Voulume 2, The Libwww
Package.
This package has been tested only on Solaris 2.6 and Linux 2.2.
It definitely needs configuration work in order to run under Windows.
This XSB package relies on the W3C's libwww library and requires it to
be installed. The entire package is implemented in C and is much faster
than other related Internet access packages for Prolog, e.g., PiLLOW). The
package provides the following functionality:
- HTML parser.
- (Non-validating) XML parser (including handling of external entities).
- The ability to simultaneously dispatch several HTTP requests and parse
the responses as they arrive; no waiting until the entire
document is received.
- Fetching web pages and filling out forms.
- Header information.
- Timeouts.
- Basic and digest authentication. SSL to follow.
- Redirection.
- Error handling.
Backward Incompatibility
-
The C calls xsb_query_string_string and xsb_next_string
that interface C programs to XSB now use the new VarString data
type instead of char*.
It is no longer necessary to pass the size of the buffer to these
functions. See XSB Manual, Volume 2, to learn more about the
variable-length string data type.
Bug Fixes
- Crashing of XSB-ODBC interface under Windows;
- Memory violations of some internal operations on delay lists.
Release Notes for Version 2.1
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, Voulume 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
-
Binary incompatibility!!!
The format of the XSB .O files has been changed. Make sure you recompile
all your programs! (The binaries that come with the XSB distribution have
the new format.)
-
unix/1 is now called shell/1. It exists in module
shell, and is imported from there automatically.
-
The standard predicates
atom_chars/2 and number_codes/2 now behave as in the Prolog standard (return
lists of atoms rather than ASCII codes).
The old behavior is provided by the standard predicates atom_codes/2 and
number_codes/2.
-
A number of backward-incompatible changes in socket calls.
First, the predicates socket_send_eof/1 and socket_send_asci/2 have been
removed. This functionality is available through other calls.
Second, all socket predicates now have an extra argument, the error code.
The old-style predicates have been preserved, but their behavior isn't
guaranteed to be 100% the same. The fileptr argument in socket_connect call
has been deleted. The fileptr argument in socket_accept no longer denotes an
XSB I/O port. Instead, it denoted a socket descriptor. It can be converted to
an I/O port using the new builtin fd2ioport.
socket_send/3 no longer appends the message delimited (the backquote).
Programs that rely on this feature will not work any longer.
Instead of this old hack, socket_send now prepends a 4-byte header that
specifies the length of the message body. The primitive socket_recv/3 uses it
to determine the length of the message it received.
Release Notes for Version 2.0
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:
-
FLORA: A full-fledged F-logic to XSB compiler and shell.
- GAP: support for annotated logic programming.
- SLX: allows XSB to evaluate extended logic programs according to
the well-founded semantics with explicit negation.
- PARLMATCH: an interface to Perl pattern matching and
string substitution capabilities.
- REGMATCH: provides similar functionality,
but relies on a POSIX-compliant C library instead of Perl.
- WILDMATCH: allows matching wildcards and globbing of directories.
Relies on a POSIX 2 compliant C library.
Backward Incompatibility
The following incompatible changes have been made in XSB Version 2.0:
-
The file .xsbrc in the home directory is no longer used. Instead, XSB
now uses the directory .xsb/ and the startup file is .xsb/xsbrc
It is now possible to have pretty much any Prolog code in that file.
-
There is a change in how the library_directory predicate is used.
The user must now assert directories into this predicate.
There is no need to export this predicate (this predicate is now
global).
-
XSB is no longer supported on MS DOS.
-
In order to be consistent with the ISO Prolog standard, XSB no
longer supports mixing compiled and dynamic code for the same
predicate.
-
The predicate is_string/1, which used to check if its argument is a list of
characters, is now replaced by the builtin is_charlist/1. There is now also
is_charlist/2 (see the manual).
Feedback: The XSB Development
Team
$Date: 2000/04/21 14:35:27 $