#1613 closed change request (fixed)

CR: Make keywords and symbols distinct types

Reported by: sjamaan Owned by: sjamaan
Priority: major Milestone: 5.1
Component: compiler Version: 5.0.0
Keywords: keywords, symbols, types Cc:
Estimated difficulty: medium


The attached patch makes keywords and symbols a distinct type. This avoids some problems with treating keywords as identifiers which used to be sort-of allowed, but now is causing trouble because there's no plist on keywords.

Some of the defining forms reject keywords now, but there may be some we missed, and by making them completely distinct we fix these problems for good. For the vast majority of the code out there this is an unimportant change. Code which relies on symbol? returning #t for keywords will run into trouble (but is usually easy to fix by adding another cond clause for keyword?, which will happily be backwards compatible to older CHICKENs). There may be other obscure uses of keywords that will fail, but I can't really think of many.

Attachments (1)

0001-Make-keywords-distinct-from-symbols-at-the-Scheme-le.patch (24.1 KB) - added by sjamaan 21 months ago.
Patch to make keywords distinct objects

Download all attachments as: .zip

Change History (3)

Changed 21 months ago by sjamaan

Patch to make keywords distinct objects

comment:1 Changed 21 months ago by sjamaan

Summary: MAke keywords and symbols distinct typesCR: Make keywords and symbols distinct types

comment:2 Changed 20 months ago by sjamaan

Resolution: fixed
Status: newclosed

Fixed with db2608b1. Some fallout, most of which has been fixed by aeec82d1. Another bugfix is pending on -hackers. After that we'll have to look into Salmonella again but I think we've fixed all issues.

Note: See TracTickets for help on using tickets.