Mailing-List: contact cygwin-announce-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-announce-owner AT cygwin DOT com Reply-To: The Cygwin Mailing List Delivered-To: mailing list cygwin-announce AT cygwin DOT com Delivered-To: moderator for cygwin-announce AT cygwin DOT com X-Injected-Via-Gmane: http://gmane.org/ To: cygwin-announce AT cygwin DOT com From: Sam Steingold Subject: new package: clisp-2.31-2 Date: 18 Sep 2003 15:55:03 -0400 Organization: disorganization Lines: 244 Message-ID: Reply-To: sds AT gnu DOT org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Complaints-To: usenet AT sea DOT gmane DOT org X-Attribution: Sam X-Disclaimer: You should not expect anyone to agree with me. User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 CLISP is an ANSI Common Lisp implementation. Common Lisp is a high-level, general-purpose programming language. CLISP is a new cygwin package (even though it has been running under cygwin for years). 2.31 is a major recent release, with many bugs fixed and new features implemented: User visible changes -------------------- * Added a new module - "fastcgi": an interface to the FastCGI Web server CGI-compatible protocol (see http://www.fastcgi.com/) Thanks to John K. Hinsdale . * External modules now work on win32 (when used with cygwin or mingw). See for details. * DIRKEY is now a standard module: use `--with-module=dirkey' instead of `--with-dir-key' when configuring. See for details. * SYSCALLS is now a standard module: use `--with-module=syscalls instead of `--with-export-syscalls' when configuring. See for details. * New module netica interfaces to and allows working with Bayesian belief networks and influence diagrams. See for details. * READ-BYTE-SEQUENCE now accepts :NO-HANG keyword argument. * LOAD now takes an additional keyword argument :OBSOLETE-ACTION which specifies what to do with the obsolete .fas files. See for details. * EXT:SPECIAL-VARIABLE-P now accepts a second optional ENVIRONMENT argument. See for details. * You can now set socket options using new function SOCKET:SOCKET-OPTIONS. See for details. Suggested by Dave Richards . * SOCKET:SOCKET-STATUS now distinguishes between :EOF and :INPUT. Also, it does not have to cons up a fresh list even for multiple streams. See for details. * CLISP character set now uses Unicode 3.2. See for details. * DIRECTORY now accepts a new keyword argument :IF-DOES-NOT-EXIST which controls treatment of links pointing to non-existent files. It defaults to :DISCARD which is fully backward compatible. See for details. * DELETE-FILE no longer calls TRUENAME on its argument, which enables you to delete symbolic links. This is an incompatible change. You can get the old behavior by doing (DELETE-FILE (TRUENAME path)). See for details. * DRIBBLE now works by redefining *TERMINAL-IO* instead of a host of i/o variables. This allows DRIBBLE to be started and stopped in different break loops. See for details. * Weak hash tables can now remove key/value pairs when either or both are garbage collected. See for details. * You can use (SETF WEAK-POINTER-VALUE) to change the object to which the given weak pointer point to. See for details. * New macro EXT:DEFINE-HASH-TABLE-TEST allows user-defined hash table tests. See for details. * ANSI CL compliance issues: + MAPC, MAPCAR, MAPCAN, MAPL, MAPLIST, MAPCON now require their list arguments to be proper lists; + TAILP uses EQL, not EQ, to compare the sublists; + LOOP was fixed in many many ways, including - using ATOM as the end test for ON iteration, - returning the SUMs (and alike) of the specified type (if any), - checking that the THEREIS return value is not shadowed, - treating keyword IT in an inappropriate place as a variable, - signaling SOURCE-PROGRAM-ERROR errors at macroexpansion time, - not requiring the package argument for symbol iteration, - making local variables accessible in the INITIALLY clauses, - initializing accumulation variables after iteration variables to avoid shadowing, - using forward consing for APPEND/NCONC because REVAPPEND/NRECONC drop the last atom in dotted lists, - checking for duplicate variables in iteration clauses; + DOCUMENTATION is now a generic function; + implemented CHANGE-CLASS, UPDATE-INSTANCE-FOR-DIFFERENT-CLASS, MAKE-INSTANCES-OBSOLETE, UPDATE-INSTANCE-FOR-REDEFINED-CLASS, and ENSURE-GENERIC-FUNCTION; + DEFCLASS no longer requires that direct superclasses already exist; + sequence functions (MAP, LENGTH and such) no longer accept dotted lists and treat NULL as LIST of length 0 and CONS as LIST of positive length; + COERCE accepts CLOS class object as a type-spec (second argument) and coerces FLOAT to COMPLEX by returning a COMPLEX number; + DEFSTRUCT uses the slot name as is for the accessor when :CONC-NAME is NIL (i.e., does not intern the name in *PACKAGE*), and does not bind slot names in the arglist of keyword constructors; + MAPCAN and MAPCON now correctly handle functions returning ATOMs; + removed macro definition from GENERIC-FUNCTION; + APPEND, COPY-ALIST, REVAPPEND, NRECONC, PAIRLIS, GET, GETF, REMPROP, GET-PROPERTIES no longer accept dotted lists; + implemented arrays with ARRAY-ELEMENT-TYPE NIL; + implemented ANSI CL Issues , , , , , , , , ; + EQUALP on HASH-TABLEs now correctly descends the structure; + macro definitions now respect the lexical environment; + more thorough lambda list matching check; + DEFINE-CONDITION now return the condition name; + a character is now accepted as a package designator. Thanks to Paul F. Dietz and his ANSI compliance suite, which helped detect some of these deficiencies. * FUNCTION-LAMBDA-EXPRESSION now always returns the correct function name. See for details. * CONSTANTP now detects many more constant forms. See for details. * The code walker has now a public interface: EXT:EXPAND-FORM. See for details. * Renamed macro SPACE to EXT:TIMES because SPACE is an ANSI Common Lisp symbol without a macro definition. See for details. * New function EXT:XOR checks that exactly one of its arguments is non-NIL. See for details. * New function EXT:MAKE-STREAM creates a stream out of a file descriptor and facilitates CGI scripting. See and for details. * New function EXT:MODULE-INFO provides information about the CLISP modules that comprise the running image. See for details. * New generic function CLOS:CLASS-PROTOTYPE from MOP. See for details. * New generic functions CLOS:CLASS-FINALIZED-P and CLOS:FINALIZE-INHERITANCE from MOP. See for details. * New FFI functionality: + functions FFI:FOREIGN-ALLOCATE and FFI:FOREIGN-FREE and macros FFI:ALLOCATE-DEEP and FFI:ALLOCATE-SHALLOW permit heap allocation; see for details; + functions FFI:FOREIGN-ADDRESS-UNSIGNED and FFI:UNSIGNED-FOREIGN-ADDRESS, see for details; + function FFI:FOREIGN-ADDRESS, see for details; + functions FFI:FOREIGN-POINTER and (SETF FFI:FOREIGN-POINTER), see for details; + macros FFI:C-VAR-ADDRESS, FFI:C-VAR-OBJECT and FFI:OFFSET, see and ; + function (SETF FFI:VALIDP) invalidates foreign objects see for details; + macros FFI:WITH-FOREIGN-STRING, and macro FFI:WITH-C-PLACE, see and . Thanks to Jorg Hohle . + FFI:DEF-CALL-OUT and FFI:DEF-C-VAR now accept a :LIBRARY option which allows you to specify the dynamic library which contains the object. See and . + Introduced a bit of polymorphism: FFI:C-POINTER can be NIL and will be treated as NULL; NULL return value of type FFI:C-POINTER is returned as NIL. See . + You can now map between numeric and symbolic C enum values using functions FFI:ENUM-FROM-VALUE and FFI:ENUM-TO-VALUE. See . * FFI does not output extern variable and function declarations unless you set FFI:*OUTPUT-C-VARIABLES* and/or FFI:*OUTPUT-C-FUNCTIONS* to T. Please use FFI:C-LINES to include the appropriate headers instead. See for details. * Regexp module functions now support more options, e.g., :EXTENDED to use extended regular expressions, and do not rely on FFI. In particular, REGEXP:REGEXP-COMPILE now accepts keyword and not optional arguments (this is not backwards compatible). When the system library provides a regexp implementation, it is used instead of the GNU regexp distributed with CLISP. The number of subexpressions is now unlimited (the limit was 10). See for details. * Unified modules postgresql632 and postgresql642 into postgresql. The postgresql module works with PostgreSQL 6 and 7 now. * Removed obsolete module linuxlibc5 and renamed module linuxlibc6 to glibc. * New module: bindings/win32 (highly incomplete, patches are welcome). * The BACKQUOTE reader has been reimplemented from scratch by Kaz Kylheku . * New function EXT:MAKE-XTERM-IO-STREAM creates an input-output stream that uses a separate X terminal. UNIX platforms only. See for details. * Fixed a bug in PEEK-CHAR with non-NIL peek-type on ECHO-STREAMS. * Fixed a bug in FILE-POSITION after UNREAD-CHAR (or PEEK-CHAR). * Fixed a bug in bit operations on multi-dimensional arrays. * CLISP/MIT-CLX now compiles CLOCC CLUE/CLIO. See and . * CLISP/NEW-CLX on win32 with Cygwin X server compiles garnet. See . * Command line interface: allow multiple -x options. New options -repl and -v (--verbose) . To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Then, run setup and answer all of the questions. -- Sam Steingold (http://www.podval.org/~sds) running w2k (let ((a "(let ((a %c%s%c)) (format a 34 a 34))")) (format a 34 a 34))