libera/#clasp - IRC Chatlog
Search
12:57:22
yitzi
I've reread the section on dispatching macro characters, and having a definition for #! is apparently verboten since it is a reserved macro character. #i is not reserved.
13:01:27
yitzi
It's a little ambiguous, but I think that the implication of the spec is that #i is undefined in the standard syntax, but an implementation may define it in the initial readtable. CORE:PRINT-CXX-OBJECT is currently hard wired into General_O::write when printing readably. So this is a bit of a conflict.
13:50:54
Bike
i think that's what that means, yeah. i gues we could have print-cxx-object check the readtable or something? i forget what the interaction of print-readably with the readtable is.
14:12:55
yitzi
I dunno. Probably need to think about it a bit. I suggest we merge this since it fixes what is currently broken
14:25:13
Bike
hm... "If \*print-readably\* is true [...] printing any object O1 produces a printed representation that, when seen by the Lisp reader while the standard readtable is in effect, will produce an object O2 that is similar to O1"
14:26:51
yitzi
That would imply that #i isn't permitted unless it is printed with the understanding that standard readtable isn't enough.
14:28:04
yitzi
Kind of makes me think that it should be activated by a dynamic variable during #$ uses, etc.
14:48:11
Bike
not sure i understand the idea of that requirement... it's not like you can portably print things like hash tables or random states between implementations, standard readtable or not
14:52:32
jackdaniel
I think that the standard readtable may contain reader macros that are not covered by the standard (it just must not be modified by the user)
14:52:57
jackdaniel
so the point of that is to be able to pretty pprint code to be loaded later /on the same implementation/
14:53:27
Bike
the glossary defines the standard readtable as separate from the initial readtable. whether the standard readtable can have extensions seems vague to me
14:57:12
jackdaniel
sure, but it is not said that entries #$xxx do not conform to the expression syntax defined in this specification
14:57:39
jackdaniel
mind that in http://www.lispworks.com/documentation/HyperSpec/Body/02_dh.htm it is said, that combinations marked with asterisk are reserved to the user
14:57:57
jackdaniel
that means that some are not reserved to the user and implementation may "take them"
14:59:30
jackdaniel
also the initial readtable is a subject of a similar constraint: http://www.lispworks.com/documentation/HyperSpec/Body/v_rdtabl.htm#STreadtableST saying that the initial value of readtable " A readtable that conforms to the description of Common Lisp syntax in Section 2 (Syntax). "
15:28:40
yitzi
The difference between "initial" and "standard" are not very well defined in the spec. The same is true for the pprint dispatch tables. There it is even worse because the contents of the dispatch tables isn't defined anywhere, yet some places seem to have taken the XP paper, which does define the contents, as part of the spec.
15:33:02
yitzi
I do think the spec implies what is in the standard readtable with figure 2-19, though. The title of that figure is "Standard #Dispatching Macro Character Syntax"