Opened 2 months ago

Closed 7 weeks 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)

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

Download all attachments as: .zip

Change History (3)

Changed 2 months ago by sjamaan

Patch to make keywords distinct objects

comment:1 Changed 2 months ago by sjamaan

  • Summary changed from MAke keywords and symbols distinct types to CR: Make keywords and symbols distinct types

comment:2 Changed 7 weeks ago by sjamaan

  • Resolution set to fixed
  • Status changed from new to 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.

Note: See TracTickets for help on using tickets.