3 ms·
> The most important change since 5.0.0 is a breaking one: Keywords are now completely distinct from symbols. Keywords are no longer accepted as identifiers no
by vanderZwan 7y ago
> The most important change since 5.0.0 is a breaking one: Keywords are now completely distinct from symbols. Keywords are no longer accepted as identifiers nor as type names, which may mean you'll need to pipe-quote them or disable keyword syntax on your projects.
I'm curious to hear why a breaking change like that did not warrant a major version change? Not really a critique - I'm not a user of Chicken Scheme, so I assume that it's no problem for the people who actually use it.
- mpcjanssen 7y agoNot everyone uses semantic versioning. In chicken, point releases can deprecate or remove functionallity. See http://wiki.call-cc.org/development-process http://wiki.call-cc.org/development-process for details.
- neilv 7y agoThis should be OK for pretty much everyone, outside the implementation of Chicken and its libraries. (There's actually a historical headache in Schemes due to not standardizing keyword objects over a decade ago, and that headache gives implementations some leeway, IMHO. Lots of people really wanted keywords, enough to implement them without a standard or even coordination. So there's a weird messy set of semi-compatible and unnecessarily complex (and sometimes visually ugly) ways of doing keywords in various Schemes. Given that situation, it's difficult to "break" anything further, regarding interpretation of any syntax that looks like keywords. For example, as a Scheme programmer, you probably wouldn't have written any code in the last decade in which you require `:foo` to read as a symbol, at least not without knowing that's non-portable and something you'll have a good chance of needing to change later.)
- NikkiA 7y agoHell, as far as I know we still haven't standardized on whether `:foo` or `foo:` is the right way to do keywords in scheme