Changes in sbcl-1.0.41 relative to sbcl-1.0.40:
* optimization: validity of observed keyword initargs to MAKE-INSTANCE is
cached, leading to many fewer expensive calls to
COMPUTE-APPLICABLE-METHODS.
* optimization: in the (unoptimized) general method for MAKE-INSTANCE on a
CLASS argument, search for and call an appropriate optimized ctor function
if it exists.
* bug fix: WRITE always returns the correct value.
NEWS FROM 3.2.1 TO 3.2.2
o Fixes to gst-remote.
o Fixes to the Emacs mode.
o Fixes to compilation warnings.
o Generational GC is broken on SPARC and is now disabled.
o When compiling a 32-bit version on a 64-bit system, detection of
which packages to install was improved.
NEWS FROM 3.2 TO 3.2.1
o All built-in packages can be disabled with a configure option like
--disable-gdbm or --disable-complex.
o All tools support --verbose.
o Fixed bugs in the distributed gnu-smalltalk.pc file.
o Improved portability to Solaris.
o Many bug fixes to UDP sockets. In particular, daragrams received from
a socket can be placed directly onto another socket using #nextPut:.
o Many improvements to VisualGST.
o Each test in the testsuite has a 1-minute timeout.
o The undocumented DynamicVariable class in GNU Smalltalk 3.2 is now
documented, but it had a small change in the implementation. The
#defaultValue class method is not present anymore, and is replaced by
#valueIfAbsent:. Subclasses can override #value to obtain the
effect of #valueIfAbsent:.
The class has also been rewritten and is much faster now.
NEWS FROM 3.1 TO 3.2
Backwards-incompatible bug fixes and changes:
o Collection>>#anyOne gives an error if the receiver is empty.
o "aNumber raisedToInteger: 0" will raise an exception if and only if
aNumber is not a floating-point value. This was backwards in previous
versions.
o Interval>>#first and Interval>>#last give an error if the interval is
empty (i.e. if start > stop and the step is positive, or start < stop
and the step is negative).
o SequenceableCollection>>#sortBy: was renamed to #sort:. The old message
is _not_ provided for backwards-compatibility.
o The semantics of recursive directory descent were adjusted as follows:
1) the '.' and '..' directory entries are not passed; 2) for #do:, the
file is passed directly (3.1 used to pass another recursive decorator);
3) before the descent starts, the directory itself is passed to the block.
o The XML parser will ignore whitespace if placed in non-validating mode.
o The suggested way to instantiate an XML parser is now using
"SAXParser defaultParserClass", which will work with either of the
two available parsers (the existing Smalltalk parsers, and the Expat
bindings; see below).
New features (base classes):
o Floating-point rounding to integer is now correct also for very
large numbers; fix contributed by Nicolas Cellier.
o Methods have been added to Integer to print numbers with padding
to a specified width.
o New FilePath methods #owner:, #group:, #owner:group: allow setting
a file's owner and group.
o Sending mode, file time and owner setters to a recursive directory
decorator (such as `Directory working all') sets the mode/time/owner
on all files under the path.
o Speedups for hashed collections
o String>>#subStrings: accepts a single separator character or also, in
accordance with ANSI, a String holding a list of separators.
o The old instance-based exception handling has been removed. Standard
ANSI class-based exceptions have been available since GNU Smalltalk 1.8.2.
o The text-based #inspect method is now available also as
Object>>#examine and Object>>#examineOn:, so that it will also work
on arbitrary streams and will be available when a GUI is loaded.
Contributed by Stefan Schmiedl.
New features (tools):
o gst-convert can emit Squeak fileouts.
o New graphical interface VisualGST, loaded with gst-browser. The old
browser is still available, but obsolete.
o New ProfilerTools package for callgraph profiling of Smalltalk programs.
A companion gst-profile tool will create profiles in callgrind-compatible
format. Contributed by Derek Zhou.
o Packages can be downloaded and updated directly from the network. The
repository of packages is at http://smalltalk.gnu.org/project; the
repository holds the location of the package.xml files, which point to
the svn or git URL of the code.
In order to download a package with git, version 1.6.2 is required.
o SUnit supports expected failures.
New features (VM):
o Fixes in garbage collection heuristics provide improved performance on
programs allocating many long-lived objects. Contributed by Derek Zhou.
o Floating-point numbers are now read correctly.
o In idle times, GNU Smalltalk will perform incremental garbage
collection. When it finishes, GNU Smalltalk will consume zero CPU.
o Mostly rewritten Windows port. It should mostly work except for
sockets. The socket code will be rewritten (for all platforms)
for 3.3 anyway.
o Support for one-way become (Object>>#becomeForward:)
o The millisecond clock uses CLOCK_MONOTONIC where available.
New features (packages):
o Many improvements to the Gtk bindings.
o NetClients supports ESMTP commands.
o New goodie, the SandstoneDb object persistence framework.
o Swazoo upgraded to version 2.2, plus local fixes.
o The Complex package uses numerically stable algorithms
o The Continuations package provides delimited continuations via
BlockClosure>>#shift and BlockClosure>>#reset. Both methods accept
a block (1-arg for shift, 0-arg for reset).
o An XML pull parser is included as package XML-PullParser. The package
is based on the VisualWorks and Squeak pull parsers by Anthony Blakey
and Ken Treis.
o In addition to the validating XML parser, a non-validating Expat-based
parser is available in package XML-Expat. The Expat parser is
experimental, but it is very fast and supports both pull and push
operation.
Bug fixes:
o Code running as a Generator now honors exception handlers outside the
Generator block.
o Fixed copying of Dictionary to not share the underlying associations.
o Fixed ##() expressions that return a block
o EPIPE is handled correctly.
o Running on kernels without SOCK_CLOEXEC support will not fail
even if the VM was compiled on a kernel that supported it.
o The Sockets package failed to initialize when the machine was not
connected to the network; this has been fixed.
o The Transcript now uses a RecursionLock. This fixes crashes when
an exception occurred while printing a backtrace.
Miscellaneous:
o GNU Smalltalk now does not rely anymore on specific (old) versions
of libtool.
o GNU Smalltalk tries to enable Emacs modes automatically on systems
that support a site-lisp/site-start.d directory.
o REPL autocompletion includes all symbols including unary messages
(and variable names).
o Process-local variables are now stored in an IdentityDictionary rather
than a LookupTable.
Overview of changes from 0.8.4 to 0.8.5
=======================================
* Specification changes
- Support colon separated multiple load paths with scm_set_lib_path().
- Rewrote var_export() to use smart_str rather than output buffering,
prevents data disclosure if a fatal error occurs (CVE-2010-2531).
(Scott)
- Fixed a NULL pointer dereference when processing invalid XML-RPC
requests (Fixes CVE-2010-0397, bug #51288). (Raphael Geissert)
- Fixed SplObjectStorage unserialization problems (CVE-2010-2225).
(Stas)
- A large number of not security related bug fixes
- Reverted bug fix#49521 (PDO fetchObject sets values before calling
constructor). (Felipe)
- Updated timezone database to version 2010.5. (Derick)
- Upgraded bundled PCRE to version 8.02. (Ilia)
- Rewrote var_export() to use smart_str rather than output buffering, prevents
data disclosure if a fatal error occurs (CVE-2010-2531). (Scott)
- Fixed a possible interruption array leak in strrchr(). Reported by
Péter Veres. (CVE-2010-2484) (Felipe)
- Fixed a possible interruption array leak in strchr(), strstr(), substr(),
chunk_split(), strtok(), addcslashes(), str_repeat(), trim(). (Felipe)
- Fixed a possible memory corruption in substr_replace() (Dmitry)
- Fixed SplObjectStorage unserialization problems (CVE-2010-2225). (Stas)
- Fixed a possible stack exaustion inside fnmatch(). Reporeted by Stefan
Esser (Ilia)
- Reset error state in PDO::beginTransaction() reset error state. (Ilia)
- Fixed a NULL pointer dereference when processing invalid XML-RPC
requests (Fixes CVE-2010-0397, bug #51288). (Raphael Geissert)
- Fixed handling of session variable serialization on certain prefix
characters. Reported by Stefan Esser (Ilia)
- Fixed a possible arbitrary memory access inside sqlite extension. Reported
by Mateusz Kocielski. (Ilia)
- Fixed a crash when calling an inexistent method of a class that inherits
PDOStatement if instantiated directly instead of doing by the PDO methods.
(Felipe)
- Fixed bug #52317 (Segmentation fault when using mail() on a rhel 4.x (only 64
bit)). (Adam)
- Fixed bug #52238 (Crash when an Exception occured in iterator_to_array).
(Johannes)
- Fixed bug #52237 (Crash when passing the reference of the property of a
non-object). (Dmitry)
- Fixed bug #52163 (SplFileObject::fgetss() fails due to parameter that can't
be set). (Felipe)
- Fixed bug #52162 (custom request header variables with numbers are removed).
(Sriram Natarajan)
- Fixed bug #52160 (Invalid E_STRICT redefined constructor error). (Felipe)
- Fixed bug #52061 (memory_limit above 2G). (Felipe)
- Fixed bug #52041 (Memory leak when writing on uninitialized variable returned
from function). (Dmitry)
- Fixed bug #52037 (Concurrent builds fail in install-programs). (seanius at
debian dot org, Kalle)
- Fixed bug #52019 (make lcov doesn't support TESTS variable anymore). (Patrick)
- Fixed bug #52010 (open_basedir restrictions mismatch on vacuum command).
(Ilia, Felipe)
- Fixed bug #51943 (AIX: Several files are out of ANSI spec). (Kalle,
coreystup at gmail dot com)
- Fixed bug #51911 (ReflectionParameter::getDefaultValue() memory leaks with
constant array). (Felipe)
- Fixed bug #51905 (ReflectionParameter fails if default value is an array
with an access to self::). (Felipe)
- Fixed bug #51822 (Segfault with strange __destruct() for static class
variables). (Dmitry)
- Fixed bug #51671 (imagefill does not work correctly for small images).
(Pierre)
- Fixed bug #51670 (getColumnMeta causes segfault when re-executing query
after calling nextRowset). (Pierrick)
- Fixed bug #51629 (CURLOPT_FOLLOWLOCATION error message is misleading).
(Pierre)
- Fixed bug #51617 (PDO PGSQL still broken against PostGreSQL < 7.4).
(Felipe, wdierkes at 5dollarwhitebox dot org)
- Fixed bug #51615 (PHP crash with wrong HTML in SimpleXML). (Felipe)
- Fixed bug #51609 (pg_copy_to: Invalid results when using fourth parameter).
(Felipe)
- Fixed bug #51608 (pg_copy_to: WARNING: nonstandard use of \\ in a string
literal). (cbandy at jbandy dot com)
- Fixed bug #51607 (pg_copy_from does not allow schema in the tablename
argument). (cbandy at jbandy dot com)
- Fixed bug #51604 (newline in end of header is shown in start of message).
(Daniel Egeberg)
- Fixed bug #51562 (query timeout in mssql can not be changed per query).
(ejsmont dot artur at gmail dot com)
- Fixed bug #51552 (debug_backtrace() causes segmentation fault and/or memory
issues). (Dmitry)
- Fixed bug #51532 (Wrong prototype for SplFileObject::fscanf()). (Etienne)
- Fixed bug #51445 (var_dump() invalid/slow *RECURSION* detection). (Felipe)
- Fixed bug #51393 (DateTime::createFromFormat() fails if format string contains
timezone). (Adam)
- Fixed bug #51374 (Wrongly initialized object properties). (Etienne)
- Fixed bug #51338 (URL-Rewriter is still enabled if use_only_cookies is
on). (Ilia, j dot jeising at gmail dot com)
- Fixed bug #51273 (Faultstring property does not exist when the faultstring is
empty) (Ilia, dennis at transip dot nl)
- Fixed bug #51269 (zlib.output_compression Overwrites Vary Header). (Adam)
- Fixed bug #51263 (imagettftext and rotated text uses wrong baseline)
(cschneid at cschneid dot com, Takeshi Abe)
- Fixed bug #51237 (milter SAPI crash on startup). (igmar at palsenberg dot com)
- Fixed bug #51213 (pdo_mssql is trimming value of the money column). (Ilia,
alexr at oplot dot com)
- Fixed bug #51192 (FILTER_VALIDATE_URL will invalidate a hostname that
includes '-'). (Adam, solar at azrael dot ws).
- Fixed bug #51190 (ftp_put() returns false when transfer was successful).
(Ilia)
- Fixed bug #51183 (ext/date/php_date.c fails to compile with Sun Studio).
(Sriram Natarajan)
- Fixed bug #51171 (curl_setopt() doesn't output any errors or warnings when
an invalid option is provided). (Ilia)
- Fixed bug #51128 (imagefill() doesn't work with large images). (Pierre)
- Fixed bug #51086 (DBA DB4 doesn't work with Berkeley DB 4.8). (Chris Jones)
- Fixed bug #51062 (DBA DB4 uses mismatched headers and libraries). (Chris
Jones)
- Fixed bug #51023 (filter doesn't detect int overflows with GCC 4.4).
(Raphael Geissert)
- Fixed bug #50762 (in WSDL mode Soap Header handler function only being called
if defined in WSDL). (mephius at gmail dot com)
- Fixed bug #50698 (SoapClient should handle wsdls with some incompatiable
endpoints). (Justin Dearing)
- Fixed bug #50383 (Exceptions thrown in __call() / __callStatic() do not
include file and line in trace). (Felipe)
- Fixed bug #49730 (Firebird - new PDO() returns NULL). (Felipe)
- Fixed bug #49723 (LimitIterator with empty SeekableIterator). (Etienne)
- Fixed bug #49576 (FILTER_VALIDATE_EMAIL filter needs updating) (Rasmus)
- Fixed bug #49320 (PDO returns null when SQLite connection fails). (Felipe)
- Fixed bug #49267 (Linking fails for iconv). (Moriyosh)
- Fixed bug #48601 (xpath() returns FALSE for legitimate query). (Rob)
- Fixed bug #48289 (iconv_mime_encode() quoted-printable scheme is broken).
(Adam, patch from hiroaki dot kawai at gmail dot com).
- Fixed bug #43314 (iconv_mime_encode(), broken Q scheme). (Rasmus)
- Fixed bug #33210 (getimagesize() fails to detect width/height on certain
JPEGs). (Ilia)
- Fixed bug #23229 (syslog() truncates messages). (Adam)
Suppport conditional PLIST inclusion of the expected egg file, because
python2.4 distutils does not create them but later versions do. (Note
that PRINT_PLIST_AWK production is not working, probably due to order
of substitution.)
Earlier patch reviewed by wiz@.
egg info files in non-egg python distributions.
Add a comment that PY_NO_EGG appears wrong. Obviously there is a
reason it was added, but we need to figure out why and if it's still
true.
Import textual Racket version as lang/racket-textual.
Racket (formerly PLT Scheme) is a specific dialect of the Lisp
language based on the Scheme branch of the Lisp family.
Overview of changes from 0.8.3 to 0.8.4
=======================================
* Fixes
- Fix alignment check on x86_64 when --enable-debug is set (bug #26950).
- Fix test-storage.c
pkgsrc changes: desupport build options that are turned into module packages.
2.49 (2010-07-07)
=================
User visible changes
--------------------
* New command line option -disable-readline lets working around bugs and
incompatibilities between readline CLISP was built against and the
library actually installed.
See <http://clisp.cons.org/impnotes/clisp.html#opt-norl> for details.
* FFI:OPEN-FOREIGN-LIBRARY now accepts the :REQUIRE argument.
See <http://clisp.cons.org/impnotes/dffi.html#dffi-open-lib> for details.
* New user variable CUSTOM:*USER-LIB-DIRECTORY* is respected by REQUIRE
and used by "clisp-link install".
Dynamic modules are now the default build option.
See <http://clisp.cons.org/impnotes/require.html> and
<http://clisp.cons.org/impnotes/clisp-link.html> for details.
* Function RENAME-FILE now accepts :IF-EXISTS argument which determines
the action when the destination exists, unless, of course, *ANSI* is T.
See <http://clisp.cons.org/impnotes/file-func.html#rename-file> for details.
* The replacement value entered by the user in STORE-VALUE and USE-VALUE
restarts is now EVALuated.
* The old user variable CUSTOM:*PRINT-CLOSURE* now controls interpreted
closure output too (RFE#3001956). This is a tricky feature, read up!
See <http://clisp.cons.org/impnotes/multi-rep.html#pr-closure>.
* Module readline now supports readline 6.1.
(Older versions are, of course, still supported).
See <http://clisp.cons.org/impnotes/readline-mod.html> for details.
* Module pcre now supports pcre 8.01.
(Older versions are, of course, still supported).
See <http://clisp.cons.org/impnotes/pcre.html> for details.
* Module libsvm does not come with the upstream sources anymore, install
locally and pass --with-libsvm-prefix to the top-level configure instead.
All upstream versions up to 2.91 are supported.
See <http://clisp.cons.org/impnotes/libsvm.html> for details.
* Module berkeley-db now supports Berkeley-DB 4.8.
(Older versions are, of course, still supported).
See <http://clisp.cons.org/impnotes/berkeley-db.html> for details.
* Module postgresql now supports PostgreSQL 8.4.
(Older versions are, of course, still supported).
See <http://clisp.cons.org/impnotes/postgresql.html> for details.
* Module pari has been updated to support both 64 & 32 bit platforms
with and without GMP.
See <http://clisp.cons.org/impnotes/pari.html> for details.
* New functions OS:VERSION-COMPARE et al call strverscmp.
See <http://clisp.cons.org/impnotes/syscalls.html#strverscmp> for details.
* Bug fixes:
+ Do not eliminate function calls which are advertised to have
exceptional situation in unsafe code (bug#2868166).
+ Fix an internal error in DECLAIM on bad OPTIMIZE quality (bug#2868147).
+ CLEAR-INPUT now clears the EOF condition on file streams (bug#2902716).
+ When quitting on a signal, never enter the debugger (bug#2795278).
+ Respect :FULL T in DIRECTORY :WILD-INFERIORS (bug#3009966).
+ Handle TWO-WAY-STREAM and ECHO-STREAM correctly by
(SETF STREAM-EXTERNAL-FORMAT) (bug#3020933).
+ Fix unbuffered output pipe stream initialization (bug#3024887).
* ANSI compliance:
+ Implement the ANSI issue COMPILER-DIAGNOSTICS:USE-HANDLER: use the
CL Condition System for compiler diagnostics.
+ STREAM-ELEMENT-TYPE on empty CONCATENATED-STREAMs now returns NIL
because nothing can be read from such streams (bug#3014921).
Changes in sbcl-1.0.40 relative to sbcl-1.0.39:
* bug fix: readdir now works on :inode64 darwin builds (lp#592897)
* bug fix: Name conflicts between symbols passed as arguments to a single
call to IMPORT no longer add multiple symbols with the same name to the
package (detectable via DO-SYMBOLS).
* bug fix: support building without the dlshim on darwin x86 and x86-64
(lp#533470).
* bug fix: TRACE :ENCAPSULATE NIL now works on ppc/linux.
ECL 10.4.1:
===========
* Bugs fixed:
- Fixed offset problems in READ/WRITE-SEQUENCE.
- In multithreaded ECL, the signal servicing thread was not created
due to a stale debug statement.
- The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@
because these variablesls had been renamed in the autoconf file.
- The reimplementation of DIRECTORY introduced a bug in pathnames with ending
double wildcars, such as "/foo/**/".
- EXT:SAFE-EVAL (or cl_safe_eval in C) would attempt to start the debugger
when an error was signaled.
- The logical hostname EXT: did not have a pathname translation relative to
that of SRC:
- After loading the compiler, the COMMON-LISP package was left unlocked
against changes.
- ECL can build again itself using a C++ compiler (--with-cxx thus works).
- ecl_make_file_stream_from_fd() did not set the right mode in the stream
structure.
- ECL did not understand type declarations that involved symbol macros.
- (SETF STREAM-EXTERNAL-FORMAT) inserted the wrong format type in some cases.
* Visible changes:
- The source location annotator records the original pathnames instead of
truenames. This allows Slime to find out the ECL sources even if they
have been moved.
- The signal servicing thread now carries the name SI:SIGNAL-SERVICING, which
is different from the name of the threads that are created to actually
handle those signals. Users should avoid killing SI:SIGNAL-SERVICING.
- FFI:CLINES admits the notation @lisp-object, just like FFI:C-INLINE. The
result is that @lisp-object gets replaced with a pointer to the given
lisp object, created at run time.
- Gray streams implement a new generic function, GRAY:STREAM-FILE-DESCRIPTOR
which is used by SERVE-EVENT to gather the C file descriptor or Windows
handle used to wait on input from the device.
- ECL restores the habit of installing manual pages for ecl and ecl-config.
- We have removed the obsolete versions of the documentation files. The
up to date documentation now lives in a separate source repository,
as explained in http://ecls.sourceforge.net/download.html
- The encoding :DEFAULT implies looking up in the special variable
EXT:*DEFAULT-EXTERNAL-FORMAT* the actual value of the encoding, which may be
a known one, or :pass-through.
- LOAD now accepts the keyword argument :EXTERNAL-FORMAT
* ASDF:
- ECL's contributed modules and ECL's compiler can now be used in standalone
programs, for they are now stored both in FASL form and as statically linked
libraries.
- ASDF:MAKE-BUILD takes a new keyword argument, :MOVE-HERE, that allows moving
the files that ASDF creates to the current directory. :MOVE-HERE can be the
boolean value T, in which case the files are output at ./asdf-output/ or a
pathname designator with the actual destination.
- ASDF:MAKE-BUILD admits a new type, :BINARY, which creates a standalone
system (*.asd) accompanied by two binary files, statically linked library
(.a or .lib), and a FASL (*.fasb). This can be used, to replace existing
systems with precompiled ones.
New in version 1.0.39
- bug fix: Backtrace from undefined function on x86 and x86-64
now show the calling frame.
- bug fix: linkage-table entries on PPC now no longer overflow
their space allocation (potentially causing crashes if they
are written out of order).
- bug fix: Scrub control stack after scavenging in gencgc on
non-x86oid platforms, preventing the GC from seeing stale
pointers on the control stack in subsequent GCs (which would,
and does, break invariants).
- bug fix: 32-bit unicode external formats now work on big-endian systems.
- bug fix: Literal characters with code points greater than
about 32767 now work on PPC UNICODE builds.
- bug fix: Any noise left by SSE operations (sqrt and
conversions) in the high order bits are explicitly cleared
out. In some contrived situations, this could lead to wrong
results in mixed real/complex float arithmetic.
- bug fix: Fix function/macro redefinition warnings when
building with clisp. (#576787, thanks to Josh Elsasser)
- new platform: experimental support for ppc/openbsd (thanks to
Josh Elsasser).
- bug fix: Floating-point traps now work on ppc/linux.
Changes in 1.6.0_20 (6u20)
* OlsonData 2010b
* A Java Network Launch Protocol (JNLP) file without a codebase parameter, such
as the following, will no longer work with the Java SE 6 update 20 release.
<jnlp spec="0.2 1.0" href="draw.jnlp">
This means that developers must specify the codebase parameter in a JNLP file.
See the following example:
<jnlp spec="0.2 1.0"
codebase="http://java.sun.com/javase/technologies/desktop/javawebstart/apps/"
href="draw.jnlp">
* This release contains fixes for security vulnerabilities.
For more information, please see Oracle Security Alert for CVE-2010-0886
Changes in 1.6.0_19 (6u19)
* OlsonData 2010b
* Root Certificates
* Ensuring Application and Applet Security when Mixing Signed and Unsigned Code
* Interim Fix for the Transport Layer Security (TLS) Man-in-the-Middle Attack
* Bug Fixes
Changes in 1.6.0_18 (6u18)
* OlsonData 2009s
* VisualVM 1.2
* Java DB 10.5.3.0
* Performance Improvements
* Deployment Updates
* JSR-173 StAX 1.2 API Upgrade
* Bug Fixes
* New compile option '-x'. This causes the compiler to produce an
executable program. '-fmain' is deprecated.
* Remove long option --verbose. Use '-v' for verbosity. Problem is
with getopt_long_only which does not like eg. -mv
* New conformity option -std=bs2000.
* FUNCTION is implemented. See cobc/reserved.c for a list of what is
implemented.
* Nested programs are partially supported.
* LINAGE is implemented.
* EXTERNAL on FD is implemented.
* SAME RECORD AREA is implemented.
* New config variables -
* Support for non-gcc compilers.
* Large file support, system dynamic loading and Berkeley DB inclusion
are default for the configure.
* New configure option --with-patch-level=<n>
* At run time, version checking is done. ie. When executing/loading
Cobol programs, the version (eg. 0.33) and the patch level (eg. 0)
are checked against the OC library version/patch level.
* Libtool is not required for systems that support native dynamic
loading. This includes Linux, Cygwin and MingW amongst others.
* Note to developers : See README for required software versions.
pulseaudio plugin unless option selected. Option off by default
so no change to default package build.
Fixes build if you happen to have pulseaudio package installed when
building.
==================================
New features and changes since 2.3
==================================
(1) Maude 2.4 provides an order-sorted Ax-unification algorithm for
all order-sorted theories (CSigma, E U Ax) such that:
- the signature Sigma is preregular modulo Ax;
- the axioms Ax associated to function symbols are as follows:
- there can be arbitrary function symbols and constants with
no equational attributes;
- the iter equational attribute can be declared for some unary
symbols;
- the comm or assoc comm attributes can be declared for some
binary function symbols, but then no other equational
attributes must be given for such symbols.
Explicitly excluded are theories with binary function symbols having
either: (i) the id:, left id:, or right id: attributes; or (ii) the
assoc attribute without the comm one; or (iii) a combination of (i)
and (ii).
(2) Unification is reflected in the META-LEVEL module by two descent
functions:
op metaUnify : Module UnificationProblem Nat Nat ~>
UnificationPair? [special (...)].
op metaDisjointUnify : Module UnificationProblem Nat Nat ~>
UnificationTriple? [special (...)].
(3) Statements (rule, equations and membership axioms) can now take a
print attribute. In print attribute mode, when a statement is executed
the items in its print attribute are printed, with variables taking
their value in the current substitution.
(4) Parsing of file names in the commands load, in, cd and pushd now
allows spaces using either of two syntactic conventions:
If the file name starts with " then all following characters will be
taken literally up to the terminating ", line feed or form feed.
If a file name starts with other than ", the following escape
sequences are recognized
\\ becomes \
\<space> becomes <space>
\" becomes "
(5) For operators in the C, CU, CI and CUI theories, if both arguments
are the same, the rewrite, srewrite and search commands and the model
checker will only consider one of the arguments for that step since
only one rewriting step is made per pass, the choice of argument is
irrelevant. This already happened for operators in the AC and ACU
theories. The frewrite command still always considers all arguments
even if they are identical since multiple rewriting steps can happen
in each pass.
(6) The GNU libsigsegv library is used to distinguigh between true
segmentation faults and stack overflows and so stack overflows are now
reported with an informative message.
(7) Several optimizations, bug fixes and improvements.
Changes since 1.2 release:
- Try to fetch X86 CPU identification using "cpuid" instruction
- Detect Ubuntu version
- Only use 64-bit libraries when running on 64-bit kernel
- Fixes for builds with older versions of Visual C
- Dectect Windows 7
- Fix Garbage Collection crashes after calling an external function
- Fix HTTP w/ DOC/WatTCP
- Fix MinGW compliation
Changes in GNU Prolog version 1.3.1:
* add working sigaction detection to detect fault addr (e.g. Mac OS X)
* add gplc option --no-mult-warn
* add prolog flags suspicious_warning, multifile_warning
* detect integer underflow/overflow in the parser
* fix a memory leak in catch/3
* increase limits (MAX_VAR_NAME_LENGTH=1024 and MAX_VAR_IN_TERM=10240)
* add PL_INT_LOWEST_VALUE and PL_INT_GREATEST_VALUE to gprolog.h
* prefix all global symbols, constants and types with Pl_ PL_ Pl
* fix a bug in the byte-code due to new max number of atoms
* provide a minimal gprolog.h
* detect if struct sigcontext needs asm/sigcontext.h on linux
* modify gplc: --c-compiler also sets linker and --linker added
* port to x86_64/bsd - many thanks to:
David Holland <dholland@netbsd.org>
* fix problem using ebx as global reg (bug in gcc 4.3.2)
* fix a bug in is/2 with [X] (X should only be an integer)
* fix a bug with atoms '/*' '*/' and '%' (were not quoted)
* increase maximum number of atoms to 1048576 (2^20)
* increase default stack sizes (16Mb for heap, 8Mb for others)
* fix stack alignment for x86_64/Solaris
* include patch from Paul Eggert <eggert@cs.ucla.edu> for sparc/solaris8
* port to x86_64/Solaris - many thanks to:
Scott L. Burson <Scott@coral8.com>
* fix a bug in arithmetics (mod)
* fix a bug in the FD solver (under 64 bits machines)
Changes in Yap-6.0.5:
- Very large programs: indexing very large DBs requires very large
intermediate data-structures. malloc is changed to avoid
memory fragmentation.
- Heap data-structures: there was some confusion about what should be
going through save/restore and atom-gc, and what is local to a
run. Fixed that by two files describing the two types: global
variables and code-space data structures.
- SWI emulation cleanup: some builti-ins (like predsort/3, plus/3) are
now in YAP proper, the file was cleaned up and made to rely more on
Changes in Yap-6.0.4:
Overhaul/cleanup of the attributed variable and coroutining code:
- attributed variables now don't have a separate stack; instead,
they are allocated as global variables.
- Prolog code for attributed variables cleaned up: layers now
are engine, hprolog/SWI attvars, freeze and SICStus emulation
libraries
Changes in Yap-6.0.3:
6.0.3 is another bug fix release:
- a bug in indexing large integers
- a choice-point left over in consulting
- fix error handling in comparisons
- garbage collection of functor/3 could sometimes break
- fixes to chr port
- exec_prefix
- bad error reporting in some arithmetic conditions
- erf function
- win32 install fixes
- operators need to be exported in module list, some weren't.
- tabling stuff
Changes in Yap-6.0.2:
This is a bug fix release:
- fix current_op/3 in WIN32 (P Moura)
- fix nb_current/2 (J Santos) and add SWI user:exception/3
(Bernd and Jose), add fix to nb_ in distributed ProbLog.
- fix goal_expansion
- fix clp(fd) all_distinct/1 and circuit/1 (M Triska)
- fix seekable file detection in WIN32
- add yap.pdf and yap.html to win32 bundle (M Ferreira).
- check for badly typed calls to load_files and friends.
- threads: fix bad locking while spying (P Moura).
Changes in Yap-6.0.1:
- engine improvements;
- many bug fixes;
- new implementation of arithmetic;
- better ISO compatibility;
- improvements in tabling;
- SWI-compatibility, YAP now includes support for most of the
SWI foreign interface, and many built-ins, ports of SWI
packages include jpl, chr, clpfd, clpr, sgml, prolog_xref,
swi-minisat interface, and plunit;
- yap-6 also includes a really cool new language called ProbLog.
Changes in Yap-5.1.4:
- FIXED: bad locking in p_signal (obs from Paulo Moura).
- FIXED: DESTDIR and chr.
- FIXED: make term_variables a builtin. (SWI compatibility).
- NEW: X is random(Int) (SWI compatibility).
- NEW: seletchk/3.
- FIXED: do meta-expansion from undefp.
- FIXED: handle correctly flatten([_,[_]],L).
- FIXED: bad syntax in config.h (patch from Keri Harris).
- NEW: format over atom/1.
- FIXED: clean up apply_macros in swi mode.
- FIXED: clean up meta-expansion.
- FIXED: do meta-expansion from undefined call.
- NEW: selectchk/3, nth1/3 and nth1/4.
- FIXED: YapOpcodes has wrong formats (obs from Bart Demoen).
- FIXED: improve format message (obs from Bart Demoen).
- NEW: more versions of maplist (obs from Bart Demoen).
- FIXED: use import mechanism for SWI's flatten/2 (obs from Bart Demoen).
- FIXED: steps towards typed rbtrees plus some cases where one should not copy the null node (Tom Schrijvers and Bart
Demoen).
- FIXED: map_tree in trees library (Bart Demoen).
- FIXED: bad call to splay_tree (Bart Demoen).
- FIXED: bad type for write_x_var in add_info (Bart Demoen).
- FIXED: exec/3 should flush streams.
- FIXED: load_files/2 compilation_mode to allow :- source and replace compile by compact.
- FIXED: list_concat/2 (fix from Bart Demoen).
- NEW: dgraph_reachable/3 and friends.
Notable changes in SWI-Prolog 5.11.0:
* ODBC now properly handles locale. This means you can
use it with Unicode if you use a UTF-8 based locale.
* Recently reported manifest problems around xpce should be
fixed with help from Degski.
* Message queues can now be destroyed while they have suspended
writers, making pipe-like cooperation between threads much easier.
* Using set_prolog_flag(qcompile, auto), you can ask the system
to automatically maintain quick-load versions of your source-files.
This can greatly improve development comfort for really large
applications.
* Jeff Rosenwald contributed an interface for Google protocol buffers
Notable changes in SWI-Prolog 5.9.10:
* A lot of stuff has been added to enhance the compatibility to SICStus.
This involves some changes to the kernel, some additions to the libraries
and starting and populating a SICStus emulation layer. All this was
initiated by the with to make the Alpino NLP parser suite
(http://www.let.rug.nl/vannoord/alp/Alpino/) available for SWI-Prolog.
Thanks to Gertjan van Noord, this is now almost reality (there
are some remaining tweaks, notably with the Tcl/Tk interface).
* Also various enhancements and fixes to the tabbed-editing support for
the built-in editor.