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

[WIP] Provide better support for language revisions in COREs and for core classes #3107

Closed
vrurg opened this issue Aug 6, 2019 · 1 comment
Labels
precompilation WIP Work In Progress, do not merge (yet)

Comments

@vrurg
Copy link
Member

vrurg commented Aug 6, 2019

The Problem

From discussion in Raku/problem-solving#3 and Raku/problem-solving#71 stems a conclusion that core classes with changed behavior must have separate implementation depending on which CORE.<lang>.setting they're defined in. For example, PseudoStash is now defined in CORE.setting and CORE.e.setting.

This effectively makes those implementations different classes. To distinguish between them they need either ver or api set to the correct language version or revision. To have this done properly, each CORE must be compiled with it's own language revision. I.e. for CORE.setting the compiler must implement c, for CORE.e.setting it must be e.

@vrurg vrurg added precompilation WIP Work In Progress, do not merge (yet) labels Aug 6, 2019
@vrurg vrurg changed the title [WIP] Make CORE compiled with corresponding language revision [WIP] Make COREs compile with corresponding language revision Aug 7, 2019
@vrurg vrurg changed the title [WIP] Make COREs compile with corresponding language revision [WIP] Provide better support for language revisions in COREs and for core classes Aug 7, 2019
vrurg added a commit to vrurg/rakudo that referenced this issue Aug 7, 2019
Metamodel::Versioning would set `ver` from compiler's `language_version`
method if value is not provided. This would be done only if a `CORE` is
being compiled at the time. This would set all versionized objects
version to the version of the core they're defined in.

`t/02-rakudo/14-revisions.t` provides an example.

rakudo#3107
@vrurg
Copy link
Member Author

vrurg commented Aug 7, 2019

Closing with #3109 merge.

@vrurg vrurg closed this as completed Aug 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
precompilation WIP Work In Progress, do not merge (yet)
Projects
None yet
Development

No branches or pull requests

1 participant