Changes between Initial Version and Version 2 of Ticket #562


Ignore:
Timestamp:
04/09/11 02:12:03 (14 years ago)
Author:
Jim Ursetto
Comment:

This is a bug in core. string->symbol on |#:| works, but reading it does not. It works fine for other symbols, such as |#?|. This appears to be a bug in the reader not the writer.

#;7> (string->symbol "#:")
 ; => |#:|

(with-input-from-string "((|#:|))" read)
  ; => ((#:))

#;4> '((|#:|))
 ; => ((#:))

#;5> '|#:|
 ; => #:

#;12> (write '|#:|)
 ; => #:

#;13> (write (string->symbol "#:"))
 ; => |#:|

(with-input-from-string "((|#?|))" read)
  ; => ((|#?|))

#;6> '|#?|
 ; => |#?|

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #562

    • Property Owner changed from Jim Ursetto to felix winkelmann
    • Property Status changed from new to assigned
    • Property Component changed from extensions to core libraries
    • Property Summary changed from chicken-doc does not properly index #: to Chicken reader does not maintain quotes on |#:|
  • Ticket #562 – Description

    initial v2  
    1 The node (chicken read-syntax #:) is not properly indexed.  It can be accessed directly but not via the index, because the index entry looks like (: (chicken read-syntax)) instead of (|#:| (chicken read-syntax)).
     1string->symbol on |#:| works, but reading it does not.  See comment below.
    22
    3 Cause not immediately obvious, read-write invariant is preserved with symbol |#:|.
     3This causes node (chicken read-syntax #:) to be not properly indexed.  It can be accessed directly but not via the index, because the index entry looks like (: (chicken read-syntax)) instead of (|#:| (chicken read-syntax)).  Although it is written out correctly initially, once the index goes through a read/modify/write cycle (on a different symbol) the |#:| becomes #: and then eventually :.
    44
    5 Indirectly reported by mario.
     5Indirectly noticed by mario.