[Ecls-list] Latest fixes.

Juan Jose Garcia Ripoll lisp at arrakis.es
Mon Jan 10 01:57:10 UTC 2005


Below are the latest changes committed to CVS. Notice that at least the
changes made to LOOP might break current programs that are written in a
wrong style. Namely, it is wrong to write
    (LOOP FOR I FROM 1 WHILE (< I 10) FOR J FROM 1 TO 2 ...)
The correct form is
    (LOOP FOR I FROM 1 FOR J FROM 1 TO 2 WHILE (< I 10) ...)
because WHILE, WHEN, IF, etc, belong to the body of the LOOP macro.

Regards,

    Juanjo

----------------

The changes:

- The parser for #* did not accept #0* and also did not signal errors when
   invalid characters were found.

- The parser for #( did not accept empty vectors.

- The parser for #C did not accept whitespaces between #\C and the list.

- The reader macros for sharp-single-quote (#') and single-quote (')
   did not pay attention to the end of file condition.

- The stream mode smm_closed disappears. Instead we add a flag called
   stream.closed. Besides this fulfills the fact that CLOSE cannot change
   the class of the stream

- ENSURE-GENERIC-FUNCTION, DEFGENERIC and DEFMETHOD now can operate
   on functions which are being traced.

- It is now possible to change the class of a generic function using
   DEFGENERIC or ENSURE-GENERIC-FUNCTION(-USING-CLASS).

- Implemented METHOD-COMBINATION-ERROR and INVALID-METHOD-ERROR.

- ECL now uses the character trait "invalid" (ANSI 2.1.4.2).

- (LOOP FOR NIL FROM ...) is a valid statement and the presence of NIL
   only denotes that we ignore the value.

- In LOOP, the order of statements in the body is now preserved. Formerly
   WHILE and RETURN clauses were not thought to be part of the loop body.
   Furthermore, FOR-AS clauses cannot appear after a main clause, such as
   WHILE, WHEN, IF, DO, COLLECT, etc...

- Option sorting of methods now takes into account the generic function
   option :ARGUMENT-PRECEDENCE-ORDER.

- The default value of optional arguments in a DEFTYPE form "defaults"
to '*
   (ANSI 3.4.8).






More information about the ecl-devel mailing list