Split libjulia into runtime and codegen components#39129
Closed
jpsamaroo wants to merge 2 commits intoJuliaLang:masterfrom
Closed
Split libjulia into runtime and codegen components#39129jpsamaroo wants to merge 2 commits intoJuliaLang:masterfrom
jpsamaroo wants to merge 2 commits intoJuliaLang:masterfrom
Conversation
Member
|
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. |
Member
|
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 |
Member
Author
|
Do weak symbols work on non-Linux targets? Last time we discussed this, I was told that they didn't work everywhere. |
Member
|
Ok, we don't need to use weak symbols. We can just use dlsym and plugin-style interface. |
JeffBezanson
added a commit
that referenced
this pull request
Aug 19, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
JeffBezanson
added a commit
that referenced
this pull request
Aug 19, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
JeffBezanson
added a commit
that referenced
this pull request
Aug 19, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
JeffBezanson
added a commit
that referenced
this pull request
Aug 19, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
Member
|
Superseded by #41936 |
JeffBezanson
added a commit
that referenced
this pull request
Aug 25, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
JeffBezanson
added a commit
that referenced
this pull request
Sep 2, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
JeffBezanson
added a commit
that referenced
this pull request
Sep 2, 2021
follow-up to #39129 Co-authored-by: Julian Samaroo <jpsamaroo@jpsamaroo.me>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
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-internalintolibjulia-runtime-internal, and also provides a newlibjulia-stub-internallibrary. The intention is that the user can set an environment variable that will causelibjuliato 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 fromlibjuliato allow redirecting codegen-specific symbols to the right library.This PR does not currently succeed in generating
corecompiler.jifor reasons unknown to me; if someone can figure out what I'm doing wrong here, I would appreciate the help!