-
Notifications
You must be signed in to change notification settings - Fork 175
kernel: replace IMMUTABLE by OBJ_FLAG_IMMUTABLE
#6025
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
Draft
fingolfin
wants to merge
28
commits into
gap-system:master
Choose a base branch
from
fingolfin:mh/immutable
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
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
2dc14c8 to
13e86ac
Compare
For now, we only set this in MakeImmutable and MakeImmutableNoRecurse, and test it in IS_MUTABLE_OBJ. In the future, it should also be set for all objects with TNUM <= LAST_CONSTANT_TNUM (but be careful about immediate integers and FFEs), and eventually the 'IMMUTABLE' TNUMs could be phased out.
13e86ac to
86e3522
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
release notes: not needed
PRs introducing changes that are wholly irrelevant to the release notes
topic: kernel
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.
This PR replaces the
IMMUTABLEbut in some of our tnums by an object flag. Doing this has been my plan since at least 2018 and I've started and abandoned attempts at this several times.Originally a motivation was to support HPC-GAP but this has faded away. But this PR also makes it easier to ensure immutability is never removed accidentally. It also removes a lot of code, and simplifies some stuff.
This PR is kinda big. It contains PRs #6021, #6023, #6024 (or at least versions of them), I split those out because I could and anything to make this PR smaller is helpful.
I'll give a rough guide of the PRs, which are meant to be reviewed individually -- once it makes sense to review this, as right now I am sure some stuff will not yet be fully working.
kernel: use IS_PREC in PRINT_PATHkernel: move & reuse plist type helperskernel: tighten famfirst computation in KTNumPlistmasterbut they seem a bit artificial on their ownMUTABLE_TNUMto avoid some uses of IMMUTABLEIS_PLIST_MUTABLEbyIS_MUTABLE_OBJOBJ_FLAG_IMMUTABLEIMMUTABLEIMMUTABLEtnumsIS_*helpers to ignoreIMMUTABLEIMMUTABLEwhich now is just superfluousOBJ_FLAG_IMMUTABLE