Commit graph

5 commits

Author SHA1 Message Date
marino
59ade835ca lang/ecl: Teach it about DragonFly
Add DragonFly to the configure script.
Patch for configure and aclocal.m4 will be sent to SourceForge.
2012-08-10 08:15:16 +00:00
asau
3ca7946bec Update to ECL 12.7.1
ECL 12.7.1:
===========

* Bugs fixed:

 - The implementation of locks and condition variables based on POSIX threads
   was not safe under interrupts. It has all been reimplemented using atomic
   userspace operations plus a new wait queue.

 - :CDECL was not accepted as an FFI declaration due to a typo.

 - REMOVE-METHOD and FIND-METHOD were not generic functions.

 - MAKE-LOAD-FORM's methods for standard-object, structure-object and
   condition did not signal an error).

* Visible changes:

 - ECL builds with support for threads by default (where available).

 - DIRECTORY no longer complains when it finds an inexistent directory
   component: it simply returns NIL as the list of pathnames.

 - CASE now complains when the OTHERWISE/T clause is not the last one.

 - Instead of issuing an error, LOOP now only produces a STYLE-WARNING
   when iteration forms appear at the wrong place, as in (LOOP WHILE ...)
   followed by some assignment.

 - EXT:MKDIR no longer accepts pathnames as inputs to avoid problems with
   pathnames that contain name or type components.

 - ENSURE-DIRECTORIES-EXIST accepts the keyword argument :MODE which is
   passed to MKDIR.

 - In EXT:RUN-PROGRAM the child process is delayed until the parent has created
   the process structure and stored the process id in it. Formerly we had race
   conditions due to the child exiting before the parent was able to call
   sigwait().

 - Where available, ECL now defines the constants EXT:+SIGRTMIN+ and
   EXT:+SIGRTMAX+, as well as EXT:+SIGRT0+ through EXT:+RTMINn+ where n =
   SIGRTMAX - SIGRTMIN Those signals can be then trapped.

 - The interrupt handler for floating point exceptions does not care about
   the value of EXT:*INTERRUPTS-ENABLED* or similar mechanisms because such
   interrupt has to be treated as an error, not as something optional. The
   same applies to other evil signals, such as SIGSEGV or SIGBUS.

 - New functions (EXT:GET-INTERRUPT-HANDLER code) and
   (EXT:SET-INTERRUPT-HANDLER code function-designator) allow the user to
   customize how these interrupts are caught. SET-INTERRUPT-HANDLER runs an
   implicit EXT:CATCH-SIGNAL.

 - ECL now exports the symbols FFI:C-INT-MAX, FFI:C-INT-MIN, FFI:C-LONG-MAX,
   etc, which correspond to the POSIX C constants INT_MAX, INT_MIN, LONG_MAX,
   and similar ones.

 - APROPOS-LIST no longer returns duplicate symbols.

 - The ABORT restart is now bound on every new thread (except the main one,
   where either the user or the toplevel must take care of that).

* Windows:

 - ECL guesses whether the input / output / error streams are consoles. If
   so, it sets up a special type of stream that copes with the deficiencies
   of read()/write() and similar functions on consoles -- namely that they
   may read or write a larger number of bytes than demanded because they
   translate the input/output to and from the corresponding codepage.
   (EXPERIMENTAL)

 - ECL detects the codepage that the console is using and applies it as
   the appropriate external format (with :CRLF convention).

 - ECL's console stream signals EOF when Ctrl-Z is detected.

* Metaobject protocol:

 - Implemented CLOS:COMPUTE-APPLICABLE-METHODS-USING-CLASSES.

 - COMPUTE-APPLICABLE-METHODS and CLOS:COMPUTE-EFFECTIVE-METHOD are now
   generic functions.

 - Implemented and used in the core: VALIDATE-SUPERCLASSES

 - UPDATE-DEPENDENT, MAP-DEPENDENTS and related functions have been fixed. They
   are now invoked by REMOVE-METHOD and REINITIALIZE-INSTANCE, when acting on
   generic functions, standard classes, etc.

 - (SETF CLASS-NAME) is now implemented using REINITIALIZE-INSTANCE.

 - ENSURE-CLASS-USING-CLASS now registers the class with
   FIND-CLASS. ENSURE-CLASS relies on E-C-U-C doing that.

 - EXTRACT-LAMBDA-LIST and EXTRACT-SPECIALIZER-NAMES implemented.

 - CLOS:GENERIC-FUNCTION-DECLARATIONS and slot CLOS:DECLARATIONS are now
   implemented (even if not used by ECL itself).

 - Implemented the class CLOS:METAOBJECT

 - Implemented SPECIALIZER and EQL-SPECIALIZER, together with
   ADD-DIRECT-METHOD, REMOVE-DIRECT-METHOD, SPECIALIZER-DIRECT-METHODS,
   SPECIALIZER-DIRECT-GENERIC-FUNCTIONS and EQL-SPECIALIZER-OBJECT. ECL now
   uses these objects internally for method dispatch.

 - DEFMETHOD now relies on MAKE-METHOD-LAMBDA to create the appropriate
   function.

 - Implemented COMPUTE-DISCRIMINATING-FUNCTION.

 - ECL's discriminating functions use COMPUTE-APPLICABLE-METHODS-USING-CLASSES
   on those classes in which the user may redefine or extend the
   method. Elsewhere, ECL relies on the internal equivalent of
   COMPUTE-APPLICABLE-METHODS, which _always_ memoizes results.

 - When reinitializing a class instance, ECL would not remove the class from
   its former superclasses.

 - The method combination slot of a generic function is now precomputed by
   using FIND-METHOD-COMBINATION in SHARED-INITIALIZE.

 - METHOD-COMBINATION is now a class with slots and it is used by ECL for
   computing effective methods.

 - The MOP and CL classes and metaclasses do not contain any slot whose name
   is exported by any of the CL or CL-USER packages.
2012-07-26 21:09:29 +00:00
hans
97f995a0bb Fix build on SunOS. 2011-05-14 22:30:44 +00:00
wiz
72a2f09671 Remove patch-aa, it's not in distinfo since the update about a week ago. 2011-02-17 17:16:10 +00:00
asau
c8140e9b03 Update to ECL 10.4.1
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.
2010-06-16 13:57:30 +00:00