-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
staticdata: remove reinit_ccallable
#56987
base: master
Are you sure you want to change the base?
Conversation
We might be missing test coverage, but I think PkgEval found this back then ... Generally speaking a package that has a |
I believe @topolarity touched this last, (I might be imagining it). But still we need this functionality. Otherwise what restores the ccallable pointer? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code (or equivalent) is still needed as seen on CI.
Yeah, I was fixing a bug in this space in #55813 but I don't think it affects this PR much |
|
The test is for |
Can you elaborate of what the difficulty of #56499 with |
I fixed the test for CI, so that it uses the stable ccall interface instead of the unstable llvmcall one |
01bb043
to
5040e48
Compare
@vchuravy We had a local discussion and reached a consensus that this functionality can be excluded without any issues. For detailed reasoning, please refer to the commit message. If there are no objections, I'd appreciate if you could remove the block. Thanks! |
This breaks a feature I at least have used several times in research projects. I have used this to write self-hosted runtimes for Tapir and RMA based RPCs, which both had LLVM based interface and this feature allowed me to write those runtimes in Julia instead of C. A related case is in GPUCompiler where we use a So my objection stands. |
Should we use ORCs library handling to do this registering instead? I believe we can filter as needed i.e something like this Lines 2010 to 2022 in a23a6de
|
This commit removes `jl_reinit_ccallable` whose purpose is unclear. Specifically, the function re-adds C-callable functions to the execution engine during the loading of sysimages/pkgimages, but the consensus is that the function is largely unnecessary because `ccall` can find symbols via `dlsym`. The function's only apparent use case is a contrived `llvmcall` example, only because we currently don't add the sysimage symbols to the JIT, but we could do anyway. `llvmcall` has always been experimental, and if it is truly needed, the functionality for finding the symbols should be properly implemented later.
5040e48
to
9a5ac56
Compare
This commit removes
jl_reinit_ccallable
whose purpose is unclear.Specifically, the function re-adds C-callable functions to the execution
engine during the loading of sysimages/pkgimages, but the consensus is
that the function is largely unnecessary because
ccall
can findsymbols via
dlsym
. The function's only apparent use case is acontrived
llvmcall
example, only because we currently don't add thesysimage symbols to the JIT, but we could do anyway.
llvmcall
hasalways been experimental, and if it is truly needed, the functionality
for finding the symbols should be properly implemented later.