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
ClassDescription>>protocols should return protocols #13674
ClassDescription>>protocols should return protocols #13674
Conversation
Interesting... MCClassDefinition>>#createClass skips Context explicitly:
Maybe we can try to add FullBlockClosure here, too, as the problem is that it tries to load a new definition for class FullBlockClosure and then trying to update exiting instances? Another thing to check: why does the classbuilder update the instances if the shape if the class is not different? This is not needed just to load set the comment. |
That looks promising! I'll add that to the PR when I'll have the time |
The fix seems to work! but this PR has failing tests. I'll do the fix in a simpler PR so that we can integrate it if the CI is green and merge it in all PRs that fails because of this :) |
Now we can look at the image... indeed there are problems due to not recompiling:
So we have to recompile the class to fix that. Now for CompiledBlock instances, recompiling CompiledBlock in the full-image reload triggers a become: of all instances, If we inspect "CompiledBlock allInstances", we see directly at the start we see instances that can not be decompiled. But we have those in a normal image, too (not nice... we need to check that). But when looking at the raw view, we see that most of them have a 4byte empty trailer. In the normal image, the BC has no four 0, so maybe that is the problem, someone creates CompiledBlock instances with a 4 byte trailer. The question is, why is that a problem just with that PR? |
This is indeed really mysterious |
This PR finally passes! This will be a good step toward the inlining of ClassOrganization and this will allow me to start the next steps |
#protocols currently returns a list of protocol names but now we have #protocolNames for that.
This changes this behavior to return real protocols and adapt the system to use that.
This is the stepping stone in order to inline further the protocol management from ClassOrganization since almost everything relies on this method.
Fixes #10856