-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A language level specification should be exact #385
Comments
Agreed. It's mainly the same argument as with the absence of a I think the easier part is to agree about this convention but I feel uneasy if this cannot be actually enforced for the implementation to keep. Which brings us back to #381 and the unsuitability of Roast to define the language. |
I like this proposal but only if we can seriously commit to a much more rapid release cadence for language versions. If we release a new language version, say, every six months, then guaranteeing an exact set of semantics would be great. If, on the other hand, we release new language versions every 3 years (the gap between |
@codesections all the more reason I'd like to get feedback on #381 (which is really just a reiteration of ages-old issues). Breaking somebody's 6.d code in a more recent runtime supposedly supporting 6.d is something that should never happen - let me emphasize this: one single occasion where user code breaks within the same language version by design rather than a mistake, is already unacceptable. Now, if we just accepted that actual code does depend on the runtime and worked out a strategy for that, this issue would mostly disappear. The releases would be themed around versioning, probably it wouldn't be continuous but people could get new features, say, every half a year. It would have mostly the same implications as "reasonably rapid releases", except it would also cover foggy areas like metamodel stuff and whatever Roast (unfortunately) doesn't cover. |
Exactly this. This will only work if we abandon our culture of waiting for |
The specification of a language level (aka
use v6.d
orTWO
) has traditionally meant a minimum set of semantics and capabilities. I think it could be argued that this is wrong.The current situation is that
use v6.d
with a recent Rakudo compiler release gives you many more features than the initial release in November 2018. And if you specifyuse v6.e.PREVIEW
you get an additional set of new semantics and features.I think it can be argued that the next language release (
THREE
, orv6.e
as it is tentatively called now) should be the first language release that guarantees an exact set of semantics and capabilities.And that any additional developments must happen in
FOUR
ONLY (or inv6.f.PREVIEW
as we would call it now).The text was updated successfully, but these errors were encountered: