-
Notifications
You must be signed in to change notification settings - Fork 975
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
Finish LJ_GC64 mode #25
Comments
I feel (purely as a logical guess) that a sponsorship is likely to be obtainable, as this issue is a blocker for no fewer than four sponsored projects. Is this accurate? |
Any news here? I understand the difficulty of this issue, just want to be in touch |
Any progress? |
I believe a sponsorship sounds like it would be logically available, but those who would sponsor it may be waiting for someone else to sponsor this prerequisite, since they would really be interested in the ports themselves in most cases. That said, I would certainly welcome a sponsorship offer. |
This looks like much of the work might already be done. Looking at the asserts for
I am not very familiar with LuaJIT internals, but this task might be easier than it seems. |
No, IR is not OK. Furthermore everything that is currently marked An explicit untagging is now required to convert The task is definitely not easier than it seems, a lot of details are involved. |
Dr. Bo, it says "Finish LJ_GC64 mode", not "LJ_GC64 mode". Since it's rather important, is there any issue with the FFI with LJ_FR2/LJ_GC64 enabled? I think I'd be willing to accept a sponsorship, but I honestly have not looked into the source details to know about what needs to be done. Presumably, they mean literally "64-bit garbage collection" and "two-slot frame info", and nothing more. |
@MikePall I think you will get more attention and contributions if you explain just what is Many might be interested in helping out, but first would need to understand whether they can help out. Unfortunately it's not at all clear what Ping me back when you'll have |
@obilaniu: Check out the The
In 32-bit mode, both addresses are 32 bits, the marker is included for free courtesy of pointer alignment, and the whole lot ends up fitting very nicely into 64 bits. In 64-bit mode, both addresses are 64 bits, and so 128 bits are required. The |
@obilaniu, while I agree on your overall point that these are not very well explained (mostly because it seems that it's just a doubling of a number of variables and constants tied to "#if LJ_FR2 && LJ_GC64" etc., but it's probably going to be more intensive than that once I actually start working on it), it actually seems pretty clear from their names, even though Mike Pall does not seem the type to say "The name speaks for itself." to describe something. |
@NukeRusich When do you plan on beginning work? I plan on working on the ARM64 JIT compiler (#26) this summer, and this is a prerequisite. |
@NukeRusich Scratch that – I won't be able to work on the ARM64 JIT, but I might be able to work on this, inasmuch as affects the C part of the VM rather than the assembly portion. |
@drbo, sorry for taking awhile to get back to you. If there's no sponsorship, I usually don't work on things on weekdays, so that's your best bet. |
Fix bug in IR interleave dump.
What's already done:
-DLUAJIT_ENABLE_GC64
.What's missing:
Note that LJ_GC64 implies LJ_FR2 (2-slot frame info), which causes its own complications for the compiler.
There are quite a few asserts for both LJ_GC64 and LJ_FR2 all over the code, wherever I knew support was missing. But this is incomplete, so don't believe it'll just work as soon as it builds cleanly.
Related discussion: http://www.freelists.org/post/luajit/Status-of-LJ-GC64-on-x64,1 http://www.freelists.org/post/luajit/Status-of-LJ-GC64-on-x64,3
[Considering the scope and the difficulty of the changes, only the current incomplete LJ_GC64 mode support will make it into 2.1.]
The text was updated successfully, but these errors were encountered: