Opened 6 years ago
Closed 6 years ago
#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 |
Description
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)
Change History (3)
Changed 6 years ago by
Attachment: | 0001-Make-keywords-distinct-from-symbols-at-the-Scheme-le.patch added |
---|
comment:1 Changed 6 years ago by
Summary: | MAke keywords and symbols distinct types → CR: Make keywords and symbols distinct types |
---|
comment:2 Changed 6 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
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.
Patch to make keywords distinct objects