Summary

keywords have no read/write invariance

Metadata

Description

 $ csi
 #;1> (string->keyword "foo bar") ; Should be escaped
 foo bar:
 #;2> |foo bar|:                  ; Handled correctly by the reader
 foo bar:
 #;3> #:|foo bar|                 ; I don't know *what* is going on here!
 |foo:

And

 $ csi -K prefix
 #;1> (string->keyword "foo bar")  ; should be escaped
 :foo bar
 #;2> :|foo bar|                   ; Handled correctly by the reader
 :foo bar

I expect a keyword with a space in it to be serialised like the symbol and followed by a colon (or preceded, depending on the keyword style). The reader should handle the #:} prefix no different from the mode-specific syntax.

Changes and comments

[2016-11-01 16:33:24 UTC] sjamaan wrote:

It turns out that `#:|foo bar|` is read by the simple tokenizer, instead of the extended symbol tokenizer that deals with pipe escapes.

[2016-11-06 23:07:13 UTC] evhan changed status from new to closed

[2016-11-06 23:07:13 UTC] evhan set resolution to fixed

[2016-11-06 23:07:13 UTC] evhan wrote:

Fixed by 1ab62dd3 (master) and de934e90, 3e3ccd8d (chicken-5).