Make all the core library globally allocated objects immutable#25
Merged
Make all the core library globally allocated objects immutable#25
Conversation
The core library bakes a bunch of objects in, such as types and small integers. This makes all the things that are baked in Immutable using the immutable region.
Collaborator
Author
|
FYI, I have raised this PR as a discussion point. I am not sure it is the right thing to do. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The core library bakes a bunch of objects in, such as types and small integers. This makes all the things that are baked in Immutable using the immutable region. I am not sure if this is the right thing to do. @matajoh had previously made some of the types immutable like this, but not in as extreme a way. The earlier version didn't satisfy the invariant that Immutable can only reach immutable. I believe this more aggressive version will satisfy the invariant.