Skip to content
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

What can and what cannot be changed in 6.c-errata? #62

Open
AlexDaniel opened this issue Jul 15, 2019 · 1 comment
Open

What can and what cannot be changed in 6.c-errata? #62

AlexDaniel opened this issue Jul 15, 2019 · 1 comment
Labels
language Changes to the Raku Programming Language

Comments

@AlexDaniel
Copy link
Member

See rakudo/rakudo#3051 for an example. Basically, sometimes devs want to change the behavior in 6.c-errata (it's much easier to fix things for all language versions at the same time without introducing backcompat), but we don't have any list of reasons that can or cannot be used to justify the change of a released spec. For example, in that ticket it is argued that the behavior in that particular case is inconsistent with the rest of the language, so the test is erroneous. However, in my opinion just because something is inconsistent doesn't mean we can change it in language versions that are already frozen.

@AlexDaniel AlexDaniel added the language Changes to the Raku Programming Language label Jul 15, 2019
@vrurg
Copy link
Contributor

vrurg commented Jul 15, 2019

I don't feel entitled yet for deciding what must or must not make it into -errata. But one thing I would consider: does it make sense producing spaghetti-code of version checks for every single reason?

An alternate solution would be to duplicate classes in language-specific core. For rakudo/rakudo#3051 that would mean that rakudo/rakudo#2790 must have added new Real.pm into core.e/. What it means in reality is that the way our CORE loading works now two copies of Real.pm will be kept in memory: one for c and another one for e. Not sure how good is it, but this what we gonna get soon to solve #47, where QuantHash and all its descendants would have to be moved over into core.e/.

Another side effect of the above duplication would be complication of fixing bugs which are common to different language revisions. Because the fix would need to be applied to both e and c. Good if the problematic code is not much changed from one revision to another...

Now, I'm trying to extrapolate the situation from 3 supported revisions to 5, 10... Perhaps, not everything would be that horrible if support for older revisions would be dropped over time and they will be removed from core. But this decisions hasn't been made yet, as to my knowledge.

@lizmat lizmat unassigned jnthn Oct 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
language Changes to the Raku Programming Language
Projects
None yet
Development

No branches or pull requests

3 participants