[Ecls-list] Latest fixes
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)
- Fixed the flags used when linking ECL against the shared library on Mac
* 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
exported. (M. Pasternacki)
- Ecl now accepts :CSTRING UFFI primitive type. (M. Pasternacki)
- DEF-FOREIGN-VAR rewritten to make variables visible from other files
dereference also arrays and pointers. (M. Pasternacki)
* Errors fixed:
- When ECASE or CTYPECASE signal a TYPE-EROR the TYPE-ERROR-DATUM is the
that originated the error.
- FDEFINITION did not signal a type error when passed things like '(SETF
- 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
longer crashes ECL.
- When signalling a READER-ERROR, the field reader-error-stream was not
* 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) =
(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