Ignore:
Timestamp:
05/02/10 19:58:56 (11 years ago)
Author:
ehuelsmann
Message:

Fix #79: Equally named -but different- uninterned symbols coalesced into
one in FASLs.

This commit removes the *FASL-ANONYMOUS-PACKAGE*: it's replaced by
*FASL-UNINTERNED-SYMBOLS* and a dispatch macro function which resolves
symbols by index instead of by name.

File:
1 edited

Legend:

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

    r11566 r12650  
    104104             (java:java-object-p object))
    105105         (dump-instance object stream))
     106        ((and (symbolp object) ;; uninterned symbol
     107              (null (symbol-package object)))
     108         (let ((index (cdr (assoc object *fasl-uninterned-symbols*))))
     109           (unless index
     110             (setq index (1+ (or (cdar *fasl-uninterned-symbols*) -1)))
     111             (setq *fasl-uninterned-symbols*
     112                   (acons object index *fasl-uninterned-symbols*)))
     113           (write-string "#" stream)
     114           (write index :stream stream)
     115           (write-string "?" stream)))
    106116        (t
    107117         (%stream-output-object object stream))))
Note: See TracChangeset for help on using the changeset viewer.