From: Erik Huelsmann <ehuels@gm...> - 2008-08-04 08:03:43
ABCL allows me to create a form (using *PRINT-CIRCLE*) which it can't
read back in because of the #n# in the structure. I've attached a
small reproduction recipe below.
The program below currently generates an error (something along the
lines of "There's no binding for #1#"). Fixing the program below is
easy: there are two calls to Stream.read(), one in readStructure and
one in faslReadStructure respectively. These calls both need the
:recursive parameter of 'true' (instead of the current 'false').
Before I prepare a patch however, I'd like to know if it wouldn't be
better to have all calls to readDelimitedList(), read(), etc. in
Stream.java take the :recursive 'true' parameter. Currently, as far as
I could see, this was not the case (but I might have missed some).
So: should I provide a patch just to solve the issue below, or should
I scan the file and change the recursive parameter everywhere - where
(defparameter q "some string")
(defstruct s slot)
(let ((*print-circle* t))
(print (prin1-to-string (list (make-s :slot q)
(make-s :slot q))))))
;; output of the PRINT form:
;; (#S(S :SLOT #1="some string") #S(S :SLOT #1#))
Get latest updates about Open Source Projects, Conferences and News.