fetching/setting SP. Can't use the fast accessor as clisp doesn't align
in the stack correctly in that case. Still fails somewhere in the middle
of the regression tests, but much much farther in.
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).
Important notes
---------------
* Multiple threads of execution are now experimentally supported
(not ready for prime time yet).
Thanks to Vladimir Tzankov <vtzankov@gm...>.
See <http://clisp.cons.org/impnotes/mt.html> for details.
* Module libsvm has been upgraded to the upstream version 2.89.
See <http://clisp.cons.org/impnotes/libsvm.html> for details.
* Module Berkeley-DB now supports Berkeley DB 4.7.
(older versions 4.* are, of course, still supported).
See <http://clisp.cons.org/impnotes/berkeley-db.html> for details.
* Module readline now supports readline 6.0.
(older versions 5.* are, of course, still supported).
See <http://clisp.cons.org/impnotes/readline-mod.html> for details.
* Passing :EXECUTABLE 0 to EXT:SAVEINITMEM results in an executable
image which delegates processing of all the usual CLISP command line
options to the :INIT-FUNCTION.
See <http://clisp.cons.org/impnotes/image.html> for details.
* Driver clisp accepts "-b" to print the installation directory.
See <http://clisp.cons.org/impnotes/clisp.html#opt-printlibdir> for details.
* Add file clisp.m4 so that the packages which use CLISP can check
whether it is properly installed and has the required version.
* POSIX:COPY-FILE now accepts :METHOD :HARDLINK-OR-COPY.
See <http://clisp.cons.org/impnotes/syscalls.html#copy-file> for details.
* New function POSIX:WAIT calls waitpid or wait4.
See <http://clisp.cons.org/impnotes/syscalls.html#wait> for details.
* New function EXT:TRIM-IF removes leading and trailing matches.
See <http://clisp.cons.org/impnotes/seq-func-ext.html#trim-if> for
details.
* New user command "LocalSymbols" (abbreviated ":ls").
See <http://clisp.cons.org/impnotes/repl.html#debugger-main-deb-step>
for details.
* Commands "add" and "create" replace "add-module-set", "add-module-sets" and
"create-module-set" in clisp-link.
See <http://clisp.cons.org/impnotes/modules.html#clisp-link> for details.
* Bug fixes:
+ Better support of :START and :END arguments in NEW-CLX. [ 2159172 ]
+ Fix LOAD-LOGICAL-PATHNAME-TRANSLATIONS when *LOAD-PATHS* contains
wild pathnames (introduced in 2.47). [ 2198109 ]
+ Module NEW-CLX now has the XLIB:QUEUE-EVENT function,
implemented by Philippe Brochard <hocwp@fr...>.
+ Extend the domain of LOG to larger BIGNUMs and RATIOs. [ 1007358 ]
+ Avoid a segfault on (EXPT <HUGE> <HUGE>). [ 2807311 ]
+ Fix interaction of finalizers and weak objects. [ 1472478 ]
* ANSI compliance:
+ Implement the ANSI (IGNORE #'FUNCTION) declaration.
* New module DBUS interfaces to the D-Bus message bus system.
See <http://clisp.cons.org/impnotes/dbus.html> for details.
* New function EXT:PROBE-PATHNAME can figure out whether the existing
pathname refers to a file or a directory.
See <http://clisp.cons.org/impnotes/files.html#probe-path> for details.
* New function EXT:CANONICALIZE lets you easily canonicalize a value
before processing it.
See <http://clisp.cons.org/impnotes/macros3.html#canonicalize> for details.
* New user variable CUSTOM:*REOPEN-OPEN-FILE* controls CLISP behavior
when opening an already open file.
See <http://clisp.cons.org/impnotes/open.html#reopen> for details.
* New SETFable function OS:FILE-SIZE extends FILE-LENGTH to pathname
designators and lets you change file size.
See <http://clisp.cons.org/impnotes/syscalls.html#file-size> for details.
New function OS:USER-SHELLS returns the list of legal user shells.
See <http://clisp.cons.org/impnotes/syscalls.html#user-shells> for details.
New SETFable functions OS:HOSTID and OS:DOMAINNAME.
See <http://clisp.cons.org/impnotes/syscalls.html#hostid> for details.
* Module readline has been upgraded to readline 5.2
(older versions 5.0 and 5.1 are, of course, still supported).
See <http://clisp.cons.org/impnotes/readline-mod.html> for details.
* LOAD now uses DIRECTORY only for wild *LOAD-PATHS* components, thus
speeding up the most common cases and preventing the denial-of-service
attack whereas CLISP would not start if a file with a name
incompatible with *PATHNAME-ENCODING* is present in USER-HOMEDIR-PATHNAME.
* ROOM now prints some GC statistics and returns the same values as GC.
See <http://clisp.cons.org/impnotes/environment-enq.html#room> for details.
* New user variable CUSTOM:*HTTP-LOG-STREAM* controls EXT:OPEN-HTTP logging.
See <http://clisp.cons.org/impnotes/macros3.html#http-log-stream> for details.
* Bug fixes:
+ Comparison of floats and rationals never underflows. [ 2014262 ]
+ When failing to convert a huge LONG-FLOAT to a RATIONAL, signal an
ARITHMETIC-ERROR instead of blowing the stack. [ 2015118 ]
+ Restored TYPECODES g++ compilation [ 2015118 ], which allowed fixing
a few GC-safety bugs.
+ Fixed a segfault when signaling some UNBOUND-VARIABLE errors in some
interpreted code on MacOS X (introduced in 2.46). [ 2020784 ]
Thanks to Vladimir Tzankov <vtzankov@gmail.com>.
+ Fixed input after switching a :DOS stream to binary. [ 2022362 ]
+ Support circular objects in EQUAL and EQUALP hash-tables. [ 2029069 ]
+ Avoid C namespace pollution. [ 2146126 ]
+ Fix timeout precision in NEW-CLX. [ 2188102 ]
* ANSI compliance:
+ The sets of declaration and type names are disjoint.
+ FLET, LABELS and MACROLET respect declarations.
Removing patch-ad: Issue fixed upstream.
User visible changes:
* CLISP built natively on 64-bit platforms (i.e., with 64-bit pointers)
now has :WORD-SIZE=64 in *FEATURES*.
See <http://clisp.cons.org/impnotes/features.html> for details.
* Module syscalls now offers OS:ERRNO and OS:STRERROR (for the sake of
FFI modules).
See <http://clisp.cons.org/impnotes/syscalls.html#errno> for details.
* Modules MIT-CLX and NEW-CLX export a new macro XLIB:WITH-OPEN-DISPLAY.
* Module netica has been upgraded to the Netica C API version 3.25 (from 2.15).
See <http://clisp.cons.org/impnotes/netica.html> for details.
* Module libsvm has been upgraded to the upstream version 2.86.
See <http://clisp.cons.org/impnotes/libsvm.html> for details.
* Bug fixes:
+ Work around the absence of tgamma() on solaris.
+ Avoid a rare segfault on SIGHUP.
+ Improve module portability to systems with non-GNU make.
+ Fix GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE.
+ Fix the remaining bugs in special bindings in evaluated code on
TYPECODES (64-bit) platforms.
+ Fix SOCKET:SOCKET-CONNECT with timeout to a dead port.
Changes since previous (2.44.1) release:
User visible changes
--------------------
* Experimental Just-In-Time Compilation of byte-compiled closures is now
done using GNU lightning (this is a configure-time option).
Thanks to Yann Dauphin <yann-nicolas.dauphin@polymtl.ca>.
* New command-line option -lp adds directories to *LOAD-PATHS*.
See <http://clisp.cons.org/impnotes/clisp.html#opt-load-paths> for details.
* New function FFI:OPEN-FOREIGN-LIBRARY allows pre-opening of shared libraries.
See <http://clisp.cons.org/impnotes/dffi.html#dffi-open-lib> for details.
* New macro EXT:COMPILE-TIME-VALUE allows computing values at file compilation.
See <http://clisp.podval.org/impnotes/macros3.html#compile-time-value>
for details.
* New function FFI:FOREIGN-POINTER-INFO allows some introspection.
See <http://clisp.cons.org/impnotes/dffi.html#fptr-info> for details.
* Versioned library symbols are now accessible via the :VERSION argument of
DEF-CALL-OUT and DEF-C-VAR.
Thanks to Kaz Kylheku <kkylheku@gmail.com>.
See <http://clisp.cons.org/impnotes/dffi.html#def-call-out> for details.
* New functions GRAY:STREAM-READ-SEQUENCE and GRAY:STREAM-WRITE-SEQUENCE have
been added for portability reasons.
Suggested by Anton Vodonosov <avodonosov@yandex.ru>.
See <http://clisp.cons.org/impnotes/gray.html#st-rd-seq> for details.
* New user variable CUSTOM:*SUPPRESS-SIMILAR-CONSTANT-REDEFINITION-WARNING*
controls whether the redefinition warning is issues when the new
constant value is visually similar to the old one.
See <http://clisp.cons.org/impnotes/defconstant.html#defconstant-similar>
for details.
* REPL commands can now accept arguments.
See <http://clisp.cons.org/impnotes/repl.html> for details.
* Updated the postgresql module to PostgreSQL 8.3.
See <http://clisp.cons.org/impnotes/postgresql.html> for details.
* Module syscalls now interfaces to <stdio.h> (for the sake of FFI modules).
See <http://clisp.cons.org/impnotes/syscalls.html#stdio> for details.
There are others additions there also, but they are too numerous to
be enumerated here.
* Bug fixes:
+ Fix handling of quoted objects by READ-PRESERVING-WHITESPACE. [ 1890854 ]
+ Fix rectangle count in NEW-CLX XLIB:SET-GCONTEXT-CLIP-MASK. [ 1918017 ]
+ Fix argument handling in NEW-CLX XLIB:QUERY-COLORS. [ 1931101 ]
+ Fix compilation on systems not supporting returning void. [ 1924506 ]
+ Fix TANH floating point overflow for large floats. [ 1683394 ]
+ Avoid extra aggressive bignum overflow reporting in READ. [ 1928735 ]
+ Improved floating point number formatting. [ 1790496, 1928759 ]
+ COMPILE no longer discards MACRO doc strings. [ 1936255 ]
+ Improved accuracy of LOG on complex numbers. [ 1934968 ]
+ Fix COERCE for compound float result-types. [ 1942246 ]
+ Fix $http_proxy parsing. [ 1959436 ]
+ Fix LISTEN on buffered streams when the last character was CRLF. [ 1961475 ]
+ Cross-compilation process has been restored to its former glory,
Major changes from 2.41:
- Use pkgsrc-supplied libffcall
- Use libtool
- New PKG_OPTIONS to enable support for db4, gdbm, gtk2, fastcgi, pcre.
- lots of bugfixes
Based on patch provided by Yorick Hardy in PR 36334, I ajust patch files.
2.41 (2006-10-13)
=================
User visible changes
--------------------
* New module libsvm interfaces to <http://www.csie.ntu.edu.tw/~cjlin/libsvm>
and makes Support Vector Machines available in CLISP.
See <http://clisp.cons.org/impnotes/libsvm.html> for details.
* The same internal interface now handles FFI forms DEF-CALL-OUT and
DEF-C-VAR regardless of the presence of the :LIBRARY argument.
(:LIBRARY NIL) is now identical to omitting the :LIBRARY argument.
The default for the :LIBRARY argument is provided by
FFI:*DEFAULT-FOREIGN-LIBRARY* (bound in a compilation unit).
See <http://clisp.cons.org/impnotes/dffi.html#dffi-default-lib> for details.
* Bug fixes:
+ DOCUMENTATION on built-in functions was broken on some platforms.
[ 1569234 ]
+ Fixed FFI callbacks, broken since the 2.36 release.
+ Fixed the way the top-level driver handles the "--" option terminator.
+ Fixed COMPILE of APPLY in LABELS for local function. [ 1575946 ]
2.40 (2006-09-23)
=================
Important notes
---------------
* All .fas files generated by previous CLISP versions are invalid and
must be recompiled. This is because DOCUMENTATION and LAMBDA-LIST are
now kept with the closures.
Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this.
See <http://clisp.cons.org/impnotes.html#loadfile> for details.
User visible changes
--------------------
* Infrastructure
+ Top-level configure now accepts a new option --elispdir which specifies
the installation directory for the Emacs Lisp files (clhs.el et al).
The default value is ${datadir}/emacs/site-lisp/.
Thus, clhs.el at al are now installed by "make install", and should
be included in the 3rd party distributions.
+ Top-level configure now accepts variables on command line, e.g.,
./configure CC=g++ CFLAGS=-g
* Function PCRE:PCRE-EXEC accepts :DFA and calls pcre_dfa_exec() when
built against PCRE v6. See <http://clisp.cons.org/impnotes/pcre.html>.
* New functions RAWSOCK:IF-NAME-INDEX, RAWSOCK:IFADDRS.
See <http://clisp.cons.org/impnotes/rawsock.html>.
* When the OPTIMIZE SPACE level is low enough, keep function
documentation and lambda list.
See <http://clisp.cons.org/impnotes/declarations.html#space-decl>.
* Bug fixes:
+ Make it possible to set *IMPNOTES-ROOT-DEFAULT* and *CLHS-ROOT-DEFAULT*
to local paths, as opposed to URLs. [ 1494059 ]
+ Fix the evaluation order of initialization and :INITIALLY forms in
then extended LOOP. [ 1516684 ]
+ Do not allow non-symbols as names of anonymous classes. [ 1528201 ]
+ REINITIALIZE-INSTANCE now calls FINALIZE-INHERITANCE. [ 1526448 ]
+ Fix the RAWSOCK module on big-endian platforms. [ 1529244 ]
+ PRINT-OBJECT now works on built-in objects. [ 1482533 ]
+ ADJUST-ARRAY signals an error if :FILL-POINTER is supplied and non-NIL
but the non-adjustable array has no fill pointer, as per ANSI. [ 1538333 ]
+ MAKE-PATHNAME no longer ignores explicit :DIRECTORY NIL (thanks to
Stephen Compall <s11001001@us...>). [ 1550803 ]
+ Executable images now work on ia64 (thanks to Dr. Werner Fink
<werner@su...>).
+ MAKE-PATHNAME on win32 now handles correctly directories that start
with a non-string (e.g., :WILD). [ 1555096 ]
+ SOCKET-STREAM-PEER and SOCKET-STREAM-LOCAL had do-not-resolved-p
inverted since 2.37.
+ Set functions with :TEST 'EQUALP were broken on large lists. [ 1567186 ]
last released version that we have as devel/ffcall. Arrange for
powerpc files (from files/) to end up in the right place and get used
by the build:
tramp-* files are no longer used, so don't copy them. They can
probably be deleted from files/ now.
powerpc is now known to ffcall as powerpc, not rs6000 so change the
target name accordingly and make the makefile rule recognize netbsd
and pick up our file.
Makes clisp build/work on my macppc.
Ok wiz@ (except any typos in this commit message).
List of changes from the release notes:
2.39 (2006-07-16)
=================
User visible changes
--------------------
* SAVEINITMEM now accepts :SCRIPT argument that disables interpreting
the first positional argument as the script name; and :DOCUMENTATION
argument that is printed by the new -help-image command line option.
See <http://clisp.cons.org/impnotes/image.html> and
<http://clisp.cons.org/impnotes/clisp.html#opt-help-image> for details.
* FFI:UINT64 and FFI:SINT64 are now compatible with C's long long type.
* Stack overflow detection and recovery finally work fine on Unix.
Libsigsegv is required for this, on all platforms (including MS-Windows).
CLISP should neither exit nor crash under infinite recursion.
If your distribution has CLISP compiled without libsigsegv, report
the missing feature to its maintainer.
Note that libsigsegv 2.4 is required, there are bugs in libsigsegv 2.3!
* It is now possible to specify the default method-combination of a generic
function, to be used when the DEFGENERIC form does not specify the
:METHOD-COMBINATION explicitly, through a default initarg specification
for the :METHOD-COMBINATION keyword on the generic function class.
* Readline completion works with non 1:1 terminal encodings, e.g. UTF-8.
* WITH-KEYBOARD works with a Unix tty even when SLIME hijacks *TERMINAL-IO*.
* I/O operations on Win32 are now much faster.
* New functions: POSIX:FFS, POSIX:PATHCONF.
* Infrastructure:
+ Top-level configure now accepts a new option --with-gmalloc to use the
GNU malloc implementation instead of the one supplied by libc.
You may need it on older HP-UX and newer OpenBSD systems.
See file unix/PLATFORMS for more information.
+ The value of the environment variable CFLAGS is respected by configure.
* Bug fixes:
+ SOCKET:SOCKET-SERVER :INTERFACE now behaves as documented.
+ EXT:READ-BYTE-NO-HANG and SOCKET:SOCKET-STATUS used to hang on
buffered binary sockets.
+ Allow DESTRUCTURING-BIND (a . b) with circular and dotted lists.
+ ADJUST-ARRAY of zero length adjustable string now works.
+ TIME now reports correct results when the heap grows over 4GB.
+ RAWSOCK functions now handle :START/:END arguments correctly.
+ BDB:DBC-GET now accepts :READ-COMMITTED and :READ-UNCOMMITTED.
+ POSIX:GROUP-INFO and POSIX:USER-INFO now handle errors correctly.
* Portability:
+ Support DragonFly BSD.
2.38 (2006-01-24)
=================
User visible changes
--------------------
* SAVEINITMEM can create standalone executables.
Thanks to Frank Buß for the idea.
SAVEINITMEM also accepts :NORC argument do disable RC-file loading.
See <http://clisp.cons.org/impnotes/image.html> for details.
* POSIX:SYSLOG no longer recognizes "%m" and other formatting instructions.
For your safety and security, please do all formatting in Lisp.
* Fixed the OPEN :IF-EXISTS :APPEND bug introduced in 2.37.
* Fixed a crash on woe32 in opening files with names longer than MAX_PATH.
* Module berkeley-db now supports Berkeley DB 4.4.
2.37 (2006-01-02)
=================
User visible changes
--------------------
* Signal a continuable error when an already opened file is opened again,
unless both streams are read-only.
* SOCKET-SERVER now accepts :BACKLOG and :INTERFACE arguments.
The first (optional) argument should be the port number or NIL.
Use (SOCKET-SERVER NIL :INTERFACE SOCKET) instead of (SOCKET-SERVER SOCKET).
Thanks to Tomas Zellerin
See <http://clisp.cons.org/impnotes/socket.html#sose> for details.
* EXT:HTTP-PROXY now uses the environment variable "http_proxy", not
"HTTP_PROXY", like curl does, to avoid confusing it with CGI arguments.
* OPEN :DIRECTION :OUTPUT now creates write-only handles and treats
named pipes correctly.
* Fixed EXT:SETENV on non-POSIX systems (woe32 and BSD derivatives).
* Fixed a bug in EXT:! on 64-bit platforms.
Thanks to Dr. Werner Fink
2.36 (2005-12-04)
=================
User visible changes
--------------------
* Infrastructure:
+ Top-level configure now accepts the option --enable-maintainer-mode
that affects autoconf-related Makefile targets. The default value
is determined based on the presence of the CVS directories.
+ When libsigsegv is not found, print instructions on getting/building
libsigsegv and bail out; override with --ignore-absence-of-libsigsegv.
+ When --with-dynamic-ffi is supplied, but the FFI fails to build, abort.
+ When --with-readline is supplied, but GNU readline is not found, abort.
+ makemake no longer checks with_module_* variables.
* New function EXT:OPEN-HTTP and macro EXT:WITH-HTTP-INPUT.
See <http://clisp.cons.org/impnotes/macros3.html#open-http> for details.
* New declaration EXT:NOTSPECIAL undoes the effects of DEFVAR and DEFCONSTANT.
See <http://clisp.cons.org/impnotes/declarations.html#notspec-decl>
for details.
* Function EXT:CLHS is now deprecated in favor of DESCRIBE, which can now
point your web browser to the ANSI CL and CLISP-specific documentation.
See <http://clisp.cons.org/impnotes/environment-dict.html#describe>
for details.
* FFI modules can now take advantage of autoconf feature detection.
See <http://clisp.cons.org/impnotes/dffi.html#ffi-guard> for details.
* New FFI macro FFI:DEF-C-CONST.
See <http://clisp.cons.org/impnotes/dffi.html#def-c-const> for details.
* New charset BASE64 encodes arbitrary byte sequences with strings of
printable ASCII characters (4 characters per 3 bytes).
See <http://clisp.cons.org/impnotes/encoding.html#base64> for details.
* New module readline offers some advanced readline and history features.
It is a BASE module and is available when both FFI and readline are present.
* SOCKET:SOCKET-SERVICE-PORT is now deprecated in favor of OS:SERVICE.
See <http://clisp.cons.org/impnotes/syscalls.html#service> for details.
* New SETF-able functions POSIX:GETUID, POSIX:GETGID, POSIX:GETEUID,
POSIX:GETEGID.
New functions POSIX:GROUP-INFO and POSIX:STRING-TIME.
Function POSIX:USER-DATA is renamed to POSIX:USER-INFO.
See <http://clisp.cons.org/impnotes/syscalls.html> for details.
* New NEW-CLX demo: foch.lisp draws fractal snowflakes.
Implemented XLIB:SET-MODIFIER-MAPPING, XLIB:KEYSYM->KEYCODES,
XLIB:ACCESS-HOSTS, XLIB:ADD-ACCESS-HOST, XLIB:REMOVE-ACCESS-HOST,
XLIB:CHANGE-KEYBOARD-CONTROL, XLIB:CHANGE-KEYBOARD-MAPPING,
XLIB:KEYBOARD-MAPPING, XLIB:KEYSYM-NAME, XLIB:KEYCODE->CHARACTER,
XLIB:SHAPE-EXTENTS, XLIB:SHAPE-RECTANGLES, XLIB:DEFAULT-KEYSYM-INDEX.
Use MAP instead of ELT for sequence access in NEW-CLX.
* ANSI CL compliance issues:
+ DEFPACKAGE options :SHADOWING-IMPORT-FROM, :USE, :IMPORT-FROM
accept package designators, not just package names.
+ ENCODE-UNIVERSAL-TIME is now the perfect inverse for DECODE-UNIVERSAL-TIME.
* The command line option -v now affects *LOAD-ECHO* also.
See <http://clisp.cons.org/clisp.html#opt-v> for details.
* When a CLISP process is killed, clean-up is always executed.
* DEFCLASS now permits user-defined :ALLOCATION arguments.
* Fixed (FUNCTION-LAMBDA-EXPRESSION #'(SETF FOO)) on compiled functions.
* Fixed re-exporting symbols from POSIX to EXT.
* Fixed module rawsock on platforms with non-trivial struct sockaddr layout.
Functions that take a BUFFER argument, also take :START and :END arguments.
Renamed RAWSOCK:LISTEN to RAWSOCK:SOCK-LISTEN to avoid a conflict with CL.
New functions RAWSOCK:PROTOCOL, RAWSOCK:NETWORK, RAWSOCK:GETADDRINFO,
RAWSOCK:GETNAMEINFO.
See <http://clisp.cons.org/impnotes/rawsock.html> for details.
* Fixed module postgresql logging behavior.
* Fixed clisp.h generation to conform to the internal definitions.
2.35 (2005-08-29)
=================
User visible changes
--------------------
* SOCKET:SOCKET-STREAM-SHUTDOWN does not call CLOSE anymore,
just shutdown(2) - as it has always been documented.
It now also works on raw sockets, thus RAWSOCK:SHUTDOWN has been removed.
See <http://clisp.cons.org/impnotes.html#sost-shut> and
<http://clisp.cons.org/impnotes.html#rawsock> for details.
* When the command line option -E receives an invalid encoding,
ISO-8859-1 is used instead. [It was ASCII (for *FOREIGN-ENCODING*) or
UTF-8 (for all other encodings) before.]
Rationale: this is a 1:1 that corresponds to CLISP CODE-CHAR/CHAR-CODE
and avoids spurious errors in DIRECTORY on startup.
* New function EXT:COMPILED-FILE-P - checks whether the file is a
CLISP-compiled file with a compatible bytecode format.
See <http://clisp.cons.org/impnotes.html#compiled-file-p> for details.
* New functions EXT:CHAR-INVERTCASE, EXT:STRING-INVERTCASE and
EXT:NSTRING-INVERTCASE invert case of characters and strings.
See <http://clisp.cons.org/impnotes.html#char-invertcase> and
<http://clisp.cons.org/impnotes.html#string-invertcase> for details.
* New function POSIX:STREAM-OPTIONS calls fcntl(2).
See <http://clisp.cons.org/impnotes.html#fcntl> for details.
* Explicitly close all possible file descriptors before exec().
* Danish translations of the user interface messages have been added.
Thanks to Dennis Decker Jensen
2.34 (2005-07-20)
=================
Important notes
---------------
* All .fas files generated by previous CLISP versions are invalid and
must be recompiled. This is caused by the addition of MOP, the DEFSETF
fixes, and the TRANSLATE-PATHNAME and MAKE-HASH-TABLE enhancements.
Set CUSTOM:*LOAD-OBSOLETE-ACTION* to :COMPILE to automate this.
See <http://clisp.cons.org/impnotes.html#loadfile> for details.
* The name of the Run-Control file has changed from '_clisprc' to
'.clisprc' on all platforms.
If you are using woe32, please rename your Run-Control file.
* Modules i18n, regexp, and syscalls are now present even in the base
linking set. Do not pass, e.g., "--with-module=regexp" to configure.
User visible changes
--------------------
* The CLOS MetaObject Protocol is supported:
+ New class METAOBJECT.
+ Classes:
New classes
STANDARD-READER-METHOD, STANDARD-WRITER-METHOD, FORWARD-REFERENCED-CLASS.
New functions
ENSURE-CLASS.
New generic functions
CLASS-DIRECT-SUPERCLASSES, CLASS-PRECEDENCE-LIST, CLASS-DIRECT-SLOTS,
CLASS-SLOTS, CLASS-DIRECT-DEFAULT-INITARGS, CLASS-DEFAULT-INITARGS.
New customizable generic functions
For class creation:
ENSURE-CLASS-USING-CLASS, VALIDATE-SUPERCLASS,
COMPUTE-DIRECT-SLOT-DEFINITION-INITARGS,
COMPUTE-CLASS-PRECEDENCE-LIST, COMPUTE-EFFECTIVE-SLOT-DEFINITION,
COMPUTE-EFFECTIVE-SLOT-DEFINITION-INITARGS, COMPUTE-SLOTS,
COMPUTE-DEFAULT-INITARGS, READER-METHOD-CLASS, WRITER-METHOD-CLASS.
For notification about subclasses:
CLASS-DIRECT-SUBCLASSES, ADD-DIRECT-SUBCLASS, REMOVE-DIRECT-SUBCLASS.
+ Generic Functions:
New classes
FUNCALLABLE-STANDARD-CLASS, FUNCALLABLE-STANDARD-OBJECT.
New functions
ENSURE-GENERIC-FUNCTION, SET-FUNCALLABLE-INSTANCE-FUNCTION,
COMPUTE-EFFECTIVE-METHOD-AS-FUNCTION.
New generic functions
GENERIC-FUNCTION-NAME, GENERIC-FUNCTION-METHODS,
GENERIC-FUNCTION-METHOD-CLASS, GENERIC-FUNCTION-LAMBDA-LIST,
GENERIC-FUNCTION-METHOD-COMBINATION,
GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER, GENERIC-FUNCTION-DECLARATIONS.
New customizable generic functions
ENSURE-GENERIC-FUNCTION-USING-CLASS, COMPUTE-DISCRIMINATING-FUNCTION,
COMPUTE-APPLICABLE-METHODS, COMPUTE-APPLICABLE-METHODS-USING-CLASSES.
+ Methods:
New generic functions
METHOD-FUNCTION, METHOD-GENERIC-FUNCTION, METHOD-LAMBDA-LIST,
METHOD-SPECIALIZERS, ACCESSOR-METHOD-SLOT-DEFINITION.
New functions
EXTRACT-LAMBDA-LIST, EXTRACT-SPECIALIZER-NAMES.
+ Method-Combinations:
New generic function
FIND-METHOD-COMBINATION.
New customizable generic function
COMPUTE-EFFECTIVE-METHOD.
+ Slot-Definitions:
New classes
SLOT-DEFINITION, STANDARD-SLOT-DEFINITION,
DIRECT-SLOT-DEFINITION, STANDARD-DIRECT-SLOT-DEFINITION,
EFFECTIVE-SLOT-DEFINITION, STANDARD-EFFECTIVE-SLOT-DEFINITION.
New generic functions
SLOT-DEFINITION-NAME, SLOT-DEFINITION-INITFORM,
SLOT-DEFINITION-INITFUNCTION, SLOT-DEFINITION-TYPE,
SLOT-DEFINITION-ALLOCATION, SLOT-DEFINITION-INITARGS,
SLOT-DEFINITION-READERS, SLOT-DEFINITION-WRITERS,
SLOT-DEFINITION-LOCATION.
New customizable generic functions
DIRECT-SLOT-DEFINITION-CLASS, EFFECTIVE-SLOT-DEFINITION-CLASS.
+ Specializers:
New classes
SPECIALIZER, EQL-SPECIALIZER.
New generic functions
SPECIALIZER-DIRECT-GENERIC-FUNCTIONS, SPECIALIZER-DIRECT-METHODS.
New functions
EQL-SPECIALIZER-OBJECT, INTERN-EQL-SPECIALIZER.
New customizable generic functions
ADD-DIRECT-METHOD, REMOVE-DIRECT-METHOD.
+ Slot access:
New generic functions
SLOT-VALUE-USING-CLASS, (SETF SLOT-VALUE-USING-CLASS),
SLOT-BOUNDP-USING-CLASS, SLOT-MAKUNBOUND-USING-CLASS.
New functions
STANDARD-INSTANCE-ACCESS, FUNCALLABLE-STANDARD-INSTANCE-ACCESS.
+ Dependent object notification:
New functions
MAP-DEPENDENTS.
New customizable generic functions
ADD-DEPENDENT, REMOVE-DEPENDENT, UPDATE-DEPENDENT.
See <http://clisp.cons.org/impnotes.html#mop-chap> for details,
and <http://clisp.cons.org/impnotes.html#mop-clisp> for a list
of differences between CLISP and "The Art of the Metaobject Protocol".
*FEATURES* now contains :MOP.
* CLISP now supports programming with case sensitive symbols. This is the
default when CLISP is started with the new command line option "-modern".
See <http://clisp.cons.org/impnotes.html#package-case> for details.
* Several new datatypes that manage weak references:
WEAK-LIST, WEAK-AND-RELATION, WEAK-OR-RELATION,
WEAK-MAPPING, WEAK-AND-MAPPING, WEAK-OR-MAPPING, WEAK-ALIST.
New functions
- for WEAK-LIST:
MAKE-WEAK-LIST, WEAK-LIST-P, WEAK-LIST-LIST, (SETF WEAK-LIST-LIST),
- for WEAK-AND-RELATION:
MAKE-WEAK-AND-RELATION, WEAK-AND-RELATION-P, WEAK-AND-RELATION-LIST,
- for WEAK-OR-RELATION:
MAKE-WEAK-OR-RELATION, WEAK-OR-RELATION-P, WEAK-OR-RELATION-LIST,
- for WEAK-MAPPING:
MAKE-WEAK-MAPPING, WEAK-MAPPING-P, WEAK-MAPPING-PAIR, WEAK-MAPPING-VALUE,
(SETF WEAK-MAPPING-VALUE),
- for WEAK-AND-MAPPING:
MAKE-WEAK-AND-MAPPING, WEAK-AND-MAPPING-P, WEAK-AND-MAPPING-PAIR,
WEAK-AND-MAPPING-VALUE, (SETF WEAK-AND-MAPPING-VALUE),
- for WEAK-OR-MAPPING:
MAKE-WEAK-OR-MAPPING, WEAK-OR-MAPPING-P, WEAK-OR-MAPPING-PAIR,
WEAK-OR-MAPPING-VALUE, (SETF WEAK-OR-MAPPING-VALUE),
- for WEAK-ALIST:
MAKE-WEAK-ALIST, WEAK-ALIST-P, WEAK-ALIST-TYPE, WEAK-ALIST-CONTENTS,
(SETF WEAK-ALIST-CONTENTS), WEAK-ALIST-ASSOC, WEAK-ALIST-RASSOC,
WEAK-ALIST-VALUE, (SETF WEAK-ALIST-VALUE).
See <http://clisp.cons.org/impnotes.html#weak> for details.
* You can create formatting streams of class EXT:FILL-STREAM.
See <http://clisp.cons.org/impnotes.html#fill-stream> for details.
* SUBTYPEP can determine subtype relationship and type equivalence much better
than it could before.
* When *PRINT-READABLY* is true, symbols are now printed with package marker
and vertical bars.
* ANSI CL compliance issues:
+ Issue <DECLARATION-SCOPE:NO-HOISTING> is implemented: The scope of
declarations that do not apply to bindings, such as free SPECIAL, NOTINLINE
or OPTIMIZE declarations, includes only the body forms and no longer
includes the initforms of the LAMBDA/LET/LET*/MULTIPLE-VALUE-BIND bindings.
+ Vectors of element type NIL are now strings in all aspects. But the type
BASE-STRING does _not_ include vectors of element type NIL.
+ TYPE-OF now returns STANDARD-CHAR instead of CHARACTER when possible.
+ The type COMPILED-FUNCTION no longer encompasses generic functions.
+ TYPE-OF now returns COMPILED-FUNCTION or STANDARD-GENERIC-FUNCTION instead
of FUNCTION when possible.
+ The space character is printed as "#\ " if CUSTOM:*PRINT-SPACE-CHAR-ANSI*
is true.
+ The #<PACKAGE KEYWORD> no longer has the nickname "". The syntax :FOO for
keywords still works, but is now special cased in the reader.
+ Class redefinition with DEFCLASS no longer modifies the previous class if
it doesn't have a "proper name".
+ Class redefinition with DEFCLASS removes accessor methods that have been
installed through the previous DEFCLASS definition of the same class.
+ Generic function redefinition with DEFGENERIC removes methods that have
been installed through the previous DEFGENERIC definition of the same
function.
+ The set of qualifiers allowed for methods that are combined with a method
combination defined through the short form of DEFINE-METHOD-COMBINATION
now includes the name of the method combination instead of the operator.
+ FIND-METHOD now gives an error if the list of specializers has a wrong
length.
+ ARRAY-TOTAL-SIZE-LIMIT, ARRAY-DIMENSION-LIMIT, ARRAY-RANK-LIMIT are now
fixnums.
+ SHORT-FLOATs whose absolute value is an integer in the range between 10^5
and 10^7 are now printed with full precision.
+ Operations combining rational and floating-point numbers now return a
floating-point result if CUSTOM:*FLOATING-POINT-RATIONAL-CONTAGION-ANSI*
is true. When the mathematical result in a situation is rational, a
warning is issued if CUSTOM:*WARN-ON-FLOATING-POINT-RATIONAL-CONTAGION* is
true.
+ Class redefinition with DEFCLASS now updates existing instances as
specified.
+ An ABORT restart is now always installed.
+ UPDATE-INSTANCE-FOR-DIFFERENT-CLASS does the required argument checking.
+ Passing invalid initialization arguments to MAKE-INSTANCE and similar
now generates a PROGRAM-ERROR instead of just an ERROR.
+ Documentation strings are now attached to class objects, not just to
their name.
+ Arrays with total array size 0 are printed in a lossy way if
CUSTOM:*PRINT-EMPTY-ARRAYS-ANSI* is true and *PRINT-READABLY* is false.
+ Allow () to match NIL in destructuring lambda lists.
+ Documentation strings at a place where only declarations and forms are
allowed now give a warning, not an error.
+ LAST, BUTLAST and NBUTLAST check their list argument for circularity.
+ Different LOAD-TIME-VALUE forms that are EQUAL but not EQ are no longer
coalesced by COMPILE-FILE.
+ DEFSETF lambda-lists now support &ENVIRONMENT.
+ DEFSETF lambda-lists are no longer destructuring lambda-lists.
+ NAMESTRING no longer accepts an optional second argument.
+ SETF of VALUES now uses only the first value of each subform.
+ SPECIAL declarations of variables are now correctly respected inside
macro expanders defined through MACROLET within the declaration's scope.
+ (EXPORT NIL), (UNEXPORT NIL), (IMPORT NIL), (SHADOWING-IMPORT NIL),
(SHADOW NIL) are now nops.
+ An attempt to create a condition from an invalid condition designator now
always results in a TYPE-ERROR being signalled.
+ The reader's errors are now of type READER-ERROR when they should be.
+ READ-DELIMITED-LIST now returns NIL when *READ-SUPPRESS* is true.
+ Printing of multidimensional arrays now respects *PRINT-LEVEL*.
+ As required by 19.2.3, *DEFAULT-PATHNAME-DEFAULTS* is merged into
pathnames before accessing the file system.
+ LOGICAL-PATHNAME now gives an error if the argument string does not
contain a host specification.
+ The PRINT-UNREADABLE macro prints extraneous spaces if
CUSTOM:*PRINT-UNREADABLE-ANSI* is true.
+ In the #n= and #n# reader syntax, the integer n may now be larger than
7 digits.
+ IN-PACKAGE forms with constant arguments are no longer executed by the
compiler if they occur in a non-null lexical environment.
+ COMPILE-FILE now always returns the TRUENAME of its output file.
+ GET-SETF-EXPANSION now accepts NIL as the environment argument to
mean null lexical environment
Thanks to Paul F. Dietz and his ANSI compliance
suite, which helped detect some of these deficiencies.
Thanks to Yuji Minejima and his ANSI compliance
suite, which helped detect some of these deficiencies.
* Global error handlers can now be installed and removed using
EXT:SET-GLOBAL-HANDLER, EXT:WITHOUT-GLOBAL-HANDLERS,
and -on-error command line option.
See <http://clisp.cons.org/impnotes.html#global-handler> and
<http://clisp.cons.org/clisp.html#opt-on-error> for details.
* TRANSLATE-PATHNAME and TRANSLATE-LOGICAL-PATHNAME accept a new keyword
argument :ABSOLUTE which makes them convert their return values to
absolute pathnames.
See <http://clisp.cons.org/impnotes.html#translate-pathname> and
<http://clisp.cons.org/impnotes.html#translate-logpath> for details.
* New function EXT:ABSOLUTE-PATHNAME.
See <http://clisp.cons.org/impnotes.html#absolute-pathname> for details.
* New function EXT:ELASTIC-NEWLINE and new FORMAT directive "~.".
See <http://clisp.cons.org/impnotes.html#elastic-newline>
and <http://clisp.cons.org/impnotes.html#format-dot> for details.
Through this function, CLISP no longer produces spurious blank lines when
a program uses the convention of printing a #\Newline before each line.
* TRACE has a new option :MAX-DEPTH, that is useful to avoid infinite
recursions in the tracer.
See <http://clisp.cons.org/impnotes.html#trace> for details.
* The function LENGTH and a few other sequence functions now signal a
TYPE-ERROR when a circular list has been given as argument.
* Function UPGRADED-COMPLEX-PART-TYPE is now as precise as possible.
See <http://clisp.cons.org/impnotes.html#ucpt> for details.
* In non-interactive batch mode, *ERROR-OUTPUT* now uses the system's
standard error stream, instead of the standard output stream.
* The macros MUFFLE-CERRORS, APPEASE-CERRORS and EXIT-ON-ERROR now treat
CONTINUE restarts which require interactive user intervention like other
restarts. Only non-interactive CONTINUE restarts are silently invoked.
* LOAD :OBSOLETE-ACTION can now also be :COMPILE to automatically
recompile the obsolete *.fas file.
LOAD can now ignore erroneous forms using SKIP and STOP restarts.
See <http://clisp.cons.org/impnotes.html#loadfile> for details.
* References from within macros defined through MACROLET to variables or
functions defined in the lexical environment outside the MACROLET form
now signal an error. Previously, this resulted in undefined behavior.
* The FFI recognizes the c-type declaration (FFI:C-POINTER <c-type>) to
handle references without conversion to/from Lisp structures.
See <http://clisp.cons.org/impnotes.html#c-pointer> for details.
* The FFI variable FFI:*FOREIGN-ENCODING* can now be a multibyte encoding.
The warning "*FOREIGN-ENCODING*: reset to ASCII" at startup is gone.
* New FFI constructor functions FFI:FOREIGN-VARIABLE and FFI:FOREIGN-FUNCTION,
more operators are now exported (FFI:FOREIGN-VALUE, FFI:PARSE-C-TYPE).
See <http://clisp.cons.org/impnotes.html#dffi-make-var>
and <http://clisp.cons.org/impnotes.html#dffi-make-func> for details.
* FFI macro FFI:C-LINES can now be used to fine-tune
initialization and finalization.
See <http://clisp.cons.org/impnotes.html#c-lines> for details.
* New FFI function FFI:CLOSE-FOREIGN-LIBRARY can be used to unload a library.
See <http://clisp.cons.org/impnotes.html#dffi-close-lib> for details.
* New FFI low-level accessor FFI:MEMORY-AS.
See <http://clisp.cons.org/impnotes.html#memory-as> for details.
* Foreign functions and variables can now be documented using the
:DOCUMENTATION option to FFI:DEF-CALL-OUT and FFI:DEF-C-VAR.
* Buffered streams now are suitable for interactive streams. It is no longer
necessary to use :BUFFERED NIL to avoid blocking in various situations.
* Function EXT:READ-BYTE-SEQUENCE takes a new keyword argument :INTERACTIVE.
See <http://clisp.cons.org/impnotes.html#rd-by-seq> for details.
* Methods on GRAY:STREAM-READ-BYTE-SEQUENCE and GRAY:STREAM-WRITE-BYTE-SEQUENCE
now need to accept a second optional argument.
* The possible values of the :WEAK argument of MAKE-HASH-TABLE are changed:
Use :KEY-AND-VALUE instead of :EITHER, :KEY-OR-VALUE instead of :BOTH now.
* The :LIBRARY option argument to EXT:DEF-CALL-OUT and EXT:DEF-C-VAR is now
evaluated (i.e., it can now be a variable) and may take a value of
:DEFAULT and :NEXT in addition to being a string as before.
See <http://clisp.cons.org/impnotes.html#def-c-var> and
<http://clisp.cons.org/impnotes.html#def-call-out> for details.
* New user variable CUSTOM:*PRINT-SYMBOL-PACKAGE-PREFIX-SHORTEST*
allows using the shortest package (nick)name as the symbol prefix.
See <http://clisp.cons.org/impnotes.html#pr-sym-pack-prefix> for details.
* The user commands can now be extended using CUSTOM:*USER-COMMANDS*.
See <http://clisp.cons.org/impnotes.html#user-commands> for details.
* Initialization and finalization of the CLISP process can now be
augmented with CUSTOM:*INIT-HOOKS* and CUSTOM:*FINI-HOOKS*.
See <http://clisp.cons.org/impnotes.html#init-hooks> and
<http://clisp.cons.org/impnotes.html#fini-hooks> for details.
* SET functions (like UNION et al) are now much faster on large lists.
* The second, optional argument of EXT:SPECIAL-VARIABLE-P can no longer be T;
please use (THE-ENVIRONMENT) instead.
* New function EXT:FEATUREP - the run-time version of read-time #+/#-.
See <http://clisp.cons.org/impnotes.html#featurep> for details.
* Bug fixes:
+ The interpreter no longer executes the body of (EVAL-WHEN (COMPILE) ...)
forms.
+ Fixes to internationalized error messages.
+ When an interpreted INITIALIZE-INSTANCE method uses CALL-NEXT-METHOD with
a modified argument list, MAKE-INSTANCE could in some cases initialize
the new object three times instead of just once.
+ Fixed a compiler bug that could lead to incorrect code when a LAMBDA
with SPECIAL-declared optional variables was compiled inline and the
initforms of the optional variables depended on the values of the previous
optional variables.
+ Passing a package as second argument of RENAME-PACKAGE led to an
unjustified error.
+ Passing a displaced vector as argument to REVERSE could lead to an
unjustified error.
+ FRESH-LINE did not work in some situations.
+ Fixed ATANH on complex numbers.
+ The macros EXT:LETF and EXT:LETF* now work correctly on symbol-macros.
+ Fixed a spurious crash of MULTIPLE-VALUE-SETQ in interpreted code.
+ Fixed a crash of (COPY-READTABLE NIL some-readtable).
+ Fixed a crash when using a hash-table as hash-table key.
+ Fixed a crash triggered by the READ-BYTE function on streams with
element type ([UN]SIGNED-BYTE n), 24 < n < 32, on big-endian platforms.
+ Fixed a crash that occurred on glibc platforms when writing Unicode
characters in the range #\U000E0000..#\U000E007F on a stream with an
encoding other than UTF-8.
+ An invalid bignum could be returned by GET-INTERNAL-RUN-TIME on 64-bit
platforms.
+ Third party code walkers can now handle HANDLER-BIND et al.
* Woe32 distribution now comes with a binary driver clisp.exe.
Do not copy it anywhere - create a shortcut to it instead!
Use install.bat to automate shortcut creation.
Modules
-------
* New module matlab interfaces to <http://www.mathworks.com/products/matlab/>
and allows complicated matrix computations.
See <http://clisp.cons.org/impnotes.html#matlab> for details.
* New module rawsock offers low-level socket access.
Thanks to Fred and Don Cohens.
See <http://clisp.cons.org/impnotes.html#rawsock> for details.
* New module zlib interfaces to <http://www.zlib.org> and allows
compression and uncompression of vectors.
See <http://clisp.cons.org/impnotes.html#zlib> for details.
* New module i18n now contains the GNU gettext interface as well as
other functionality for Lisp program internationalization.
See <http://clisp.cons.org/impnotes.html#i18n-mod> for details.
* New module PARI interfaces to <http://pari.math.u-bordeaux.fr/>.
See <http://clisp.cons.org/impnotes.html#pari> for details.
* Module syscalls is significantly expanded.
See <http://clisp.cons.org/impnotes.html#syscalls> for details.
* Module berkeley-db is vastly expanded.
See <http://clisp.cons.org/impnotes.html#berkeley-db> for details.
Added support for Berkeley DB 4.3.
* Modules now have an exit function.
See <http://clisp.cons.org/impnotes.html#modexit> for details.
Portability
-----------
* Heaps and memory images larger than 4 GB are now supported on 64-bit
platforms.
* Support files larger than 2 GB or 4 GB also on Windows.
* Weak pointers now also work on platforms without mmap().
* Weak hash tables now also work on platforms without mmap().
* Dynamic modules now work on woe32 too.
* On most 64-bit platforms, fixnums are now 49 bits wide (including the sign
bit), instead of 33 bits wide.
Provide a trampoline implementation that doesn't presume r11 is free (it's not
in dynamically linked programs and the ELF ABI says as much but somehow linux
managed to avoid this it seems). Use r13 for the time being since while gcc
will allocate it, it's the last "local" one allocated so none of the clisp
code hits that (nothing needed 17+ local registers in use ever). Update the
vacall implementation to match the trampoline calls but otherwise for
any assembly use the linux code.
Make these changes specific to netbsd, update the test cases so everything
works.
This now passes all the clisp tests when done/installed.
and buildlinked by me.
Changes:
Now distributed under the GPL.
All .fas files generated by previous CLISP versions are invalid
and must be recompiled.
Hostname resolution is now optional in EXT:SOCKET-STREAM-PEER and
EXT:SOCKET-STREAM-LOCAL. EXT:SOCKET-STATUS now accepts SOCKET-SERVERs too,
and the direction of the checks can be specified. Added install.bat for
win32 installation. Fixed handling of circular structs and pointers to
functions in the FFI. Fixed binary I/O for streams with element type longer
than one byte, but not a whole number of bytes.