Improved feature readers
authorpix@kepibu.org
local dateMon, 20 Jul 2009 01:14:10
dateMon, 20 Jul 2009 01:14:10
hash20090720011410-50f04-d6ba511dd609ab429d226fdf35c9241dddd2e1a8
Improved feature readers

It turns out #+/#- also need to do their thing under *read-suppress*, rather
than simply skipping two forms.

E.g.,
'(#+(or) #+(not a b) a b c) => '(c)
'(#+(or) #+(and) a b c) => '(b c)

(Not that such constructions are practically portable anyway, but meh.)

Regardless, this fixes that as best I can. Unfortunately, it also forces
the normal package problems within feature expressions:
#+(or) #+(notapackage:foo) 'a => PACKAGE-ERROR
#+(or) #+(cl:notexported) 'a => PACKAGE-ERROR

This is, so far as I can tell, portably unavoidable. However, some (all?)
implementations /already/ have this problem, so at least it's nothing new.
1 file(s) changed:
reader.lisp +39 -12