07/08/11 08:40:37 (11 years ago)
Mark Evenson

Fasls are no no longer created with *PRINT-READABLY*.

This fixes #156 in which the compiler could no longer dump forms into
the fasls containing arrays of (UNSIGNED-BYTE 32) because in r13274 we
required that all forms be created with a non-nil *PRINT-READABLY*.
Presumably, SimpleArray_UnsignedByte32.writeToString() signals an
error when invoked with a non-NIL *PRINT-READABLY* because the
resulting read of the form will not necessarily be of the specified
base type.

With this change, we restore ABCL's behavior before r13274 to fix
#147, which is to read a create a less precise type from the fasl.

The more correct solution would be to dump some aspects of the fasls
directly into JVM code that would perform the stricter intialization.

Tests added for both cases to ensure this remains fixed.

1 edited


  • trunk/abcl/src/org/armedbear/lisp/dump-form.lisp

    r13274 r13380  
    135135        (*print-pretty* nil)
    136136        (*print-radix* nil)
     137#+nil ;; XXX Some types (q.v. (UNSIGNED-BYTE 32)) don't have a
     138      ;; readable syntax because they don't roundtrip to the same
     139      ;; type, but still return a Lisp object that "works", albeit
     140      ;; perhaps inefficiently when READ from their DUMP-FORM
     141      ;; representation.
    137142        (*print-readably* t)
    138143        (*print-right-margin* nil)
Note: See TracChangeset for help on using the changeset viewer.