Opened 12 years ago
Closed 12 years ago
#224 closed defect (fixed)
Autoloader fails when *read-XXXX* variables bound to non-standard values
Reported by: | ehuelsmann | Owned by: | nobody |
---|---|---|---|
Priority: | major | Milestone: | 1.1.0 |
Component: | java | Version: | 1.1.0-dev |
Keywords: | Cc: | ||
Parent Tickets: |
Description
Durward McDonell? reports:
(defmacro foo-bar (s)
`(sublis '((foo . bar)) ,s))
(defun foo-bar-rb ()
(let ((*read-base* #x10)
(it (read)))
(eval it)))
Load this code, then execute (foo-bar-rb).
It will wait for input. Type (foo-bar '(foo)).
I would expect this to evaluate to (bar), but
abcl gives a FASL version mismatch, where it
seems that it is reading the FASL in the new
base (16 instead of 10), and reports "found '56'
but expected '38' in sublis".
Blake McBride? comments:
I put his code in a file named yyy.lisp. I did not compile it. There is no yyy.fasl.
CL-USER(1): (load "yyy.lisp")
T
CL-USER(2): (foo-bar-rb)
(foo-bar '(foo))
Maximum error depth exceeded (11 nested errors) with 'FASL version mismatch; found '57' but expected '39' in with-standard-io-syntax'.
CL-USER(3):
(In [14019]) Fix #224: autoloading clobbered by unknown special variable state.