Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#93 closed defect (fixed)

reader does not respect (values) from reader macros

Reported by: janderson Owned by: somebody
Priority: major Milestone:
Component: other Version: 0.19
Keywords: Cc:
Parent Tickets:

Description

the hyperspec includes an example which illustrates the effect of (values) for a reader macro(1)

as of 0.19.1 the reader treats (values) as nil.

[1] CL-USER(3): (set-macro-character #\! #'(lambda (stream char) (declare (ignore char)) (read stream) (values)))
T
[1] CL-USER(4): (list 1 !qwer 2)
(1 NIL 2)
[1] CL-USER(5): (lisp-implementation-version)
"0.19.1"
[1] CL-USER(6): asdf@ip-10-251-122-82:/development/source/metadata/net/common-lisp/bordeaux-threads$ ccl
Welcome to Clozure Common Lisp Version 1.4-r13119 (LinuxX8632)!
? (set-macro-character #\! #'(lambda (stream char) (declare (ignore char)) (read stream) (values)))
T
? (list 1 !qwer 2)
(1 2)
?

---
(1) http://www.lispworks.com/documentation/HyperSpec/Body/f_set_ma.htm

Change History (2)

comment:1 Changed 11 years ago by ehuelsmann

Resolution: fixed
Status: newclosed

(In [12645]) Fix #93: Empty VALUES set in the reader treated as NIL.

comment:2 Changed 11 years ago by ehuelsmann

(In [12646]) Re #93: Instead of fixing just readList and readDelimitedList,
document the protocol for processChar and fix that. Also, remove
a pattern from LispReader?.java (return null) which can't be used
by Lisp functions.

This commit fixes a much broader range of cases of the symptom
reported in #93.

Note: See TracTickets for help on using tickets.