-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Wrap "call data" with an IMEMO object #2627
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 8000 privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ace459f
to
ef19e51
Compare
I added the GCC part back in because I actually ruined all of the other call sites. The other call sites should be restored now. |
ef19e51
to
a0c9c89
Compare
will you make iseq calldata to imemo? |
For the static storage allocated inside of |
No. I think there are too many. I only want to use this IMEMO for hard to reach call data (like static variables). |
Static inline cache also exists at AFAIK there are several call data / call cache on stack as well. If your |
Currently, compaction will invalidate all inline caches. I would like to update the compactor to fix references in inline caches. Unfortunately this static variable is not reachable from the GC. This commit introduces a "call data" imemo type to wrap the call data. This way the GC can see the static call data variable and update its references.
a0c9c89
to
5d9d41a
Compare
if you want to skip resetting all inline caches, all CCs should be cleared (because they assume MENTs don't move). |
Closing in favor of #2697 @ko1 I think I am able to update all CCs in #2697. Please check it out if you have time. It uses compaction count to verify the call cache is updated. I still need to add like |
Currently, compaction will invalidate all inline caches. I would like
to update the compactor to fix references in inline caches.
Unfortunately this static variable is not reachable from the GC. This
commit introduces a "call data" imemo type to wrap the call data. This
way the GC can see the static call data variable and update its
references.