Opened 8 years ago

Closed 8 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):

Change History (1)

comment:1 Changed 8 years ago by ehuelsmann

Resolution: fixed
Status: newclosed

(In [14019]) Fix #224: autoloading clobbered by unknown special variable state.

Note: See TracTickets for help on using tickets.