-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Split libjulia into runtime and codegen components #39129
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
Conversation
Thanks for working on this. @vtjnash @Keno @staticfloat and I finally got around to brainstorming how it should work. Our vision is
Let me know if you want to keep working on this, or if I should take over. |
Julian and I looked at this together last week, I think we are happy if you take this over, but we can also throw some cycles at this in May. Something odd was going on with |
Do weak symbols work on non-Linux targets? Last time we discussed this, I was told that they didn't work everywhere. |
Ok, we don't need to use weak symbols. We can just use dlsym and plugin-style interface. |
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
Superseded by #41936 |
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
For the purposes of embedding Julia and generating smaller, mostly standalone binaries, we may want to be able to link against only Julia's runtime components to reduce the amount of memory linked into the process. This PR splits out the runtime components from
libjulia-internal
intolibjulia-runtime-internal
, and also provides a newlibjulia-stub-internal
library. The intention is that the user can set an environment variable that will causelibjulia
to substitute our codegen implementation (still inlibjulia-internal
) for a set of codegen stubs inlibjulia-stub-internal
(from the pre-existingsrc/anticodegen.c
). This implementation reuses the trampoline mechanism fromlibjulia
to allow redirecting codegen-specific symbols to the right library.This PR does not currently succeed in generating
corecompiler.ji
for reasons unknown to me; if someone can figure out what I'm doing wrong here, I would appreciate the help!