[Ecls-list] Latest fixes

lisp lisp at arrakis.es
Thu May 26 12:54:47 UTC 2005


Latest CVS changes (Due to limited internet access, I have not yet managed
to include the patches contributed via the sourceforge bug-report system)

* Platforms:

 - Fixed the flags used when linking ECL against the shared library on Mac
OSX.

* Errors fixed:

 - Now .o files compiled with :SYSTEM-P T with dash in filename load
   correctly. (M. Pasternacki)

 - Incorrectly loaded files are now unloaded without falling into infinite
   loop.  (M. Pasternacki)

* Foreign function interface (FFI):

 - Added nickname UFFI for FFI package; functions ALLOCATE-FOREIGN-STRING,
   WITH-FOREIGN-STRING, WITH-FOREIGN-STRINGS, and FOREIGN-STRING-LENGTH
are now
   exported. (M. Pasternacki)

 - Ecl now accepts :CSTRING UFFI primitive type. (M. Pasternacki)

 - DEF-FOREIGN-VAR rewritten to make variables visible from other files
and to
   dereference also arrays and pointers. (M. Pasternacki)

* Errors fixed:

 - When ECASE or CTYPECASE signal a TYPE-EROR the TYPE-ERROR-DATUM is the
value
   that originated the error.

 - FDEFINITION did not signal a type error when passed things like '(SETF
A B).

 - FUNCTION-LAMBDA-EXPRESSION does not fail, but does nothing useful, when
   passed a generic function.

 - Trying to execute an instance object that is not a generic function
does no
   longer crashes ECL.

 - When signalling a READER-ERROR, the field reader-error-stream was not
bound.

* ANSI compatibility:

 - Several functions that signaled type-errors did not set the right values
   on the field TYPE-ERROR-EXPECTED-TYPE. We now use the following types:
	* valid function names => (SATISFIES EXT:VALID-FUNCTION-NAME-P)
	* proper list	       => PROPER-LIST = (OR (CONS T PROPER-LIST) NULL)
	* positive fixnum      => (INTEGER 0 MOST-POSITIVE-FIXNUM)
	* nonnegative integer  => (INTEGER 0 *)
	* index in a seq       => (INTEGER 0 L) where L is (1- (length sequence))

 - (COMPLEX *) is now recognized as valid type identifier by subtypep.

 - TYPE-OF now returns more precise type names, so that if (TYPE-OF x) =
t1 and
   (TYPEP x t2) = T then (SUBTYPEP t1 t2) = T.

 - MAKE-PATHNAME now signals ordinary errors when the arguments do not have
   the required type, but signals a file error when it finds something like
   a wrong directory (i.e. '(:ABSOLUTE :UP)).

 - Pathnames which contain :BACK in the directory, now print as unreadable
   objects, instead of signaling an error when printing.





More information about the ecl-devel mailing list