Summary

CR: Make keywords and symbols distinct types

Metadata

Attachments

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.

Changes and comments

[2019-05-06 22:06:05 UTC] sjamaan attached 0001-Make-keywords-distinct-from-symbols-at-the-Scheme-le.patch (description=Patch to make keywords distinct objects)

[2019-05-06 22:07:53 UTC] sjamaan changed summary

[2019-05-26 14:24:18 UTC] sjamaan changed status from new to closed

[2019-05-26 14:24:18 UTC] sjamaan set resolution to fixed

[2019-05-26 14:24:18 UTC] sjamaan wrote:

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.