-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
libjulia exports #4949
Comments
I just defaulted to leaving all symbols private until they were needed. At this point a separation like you describe starts to make sense. |
Ok, do you have some masterplan for the future development of the public julia C API or can I give this a go (in form of a PR)? Might it make sense to remove the expmap and only use DLLEXPORT for making functions visible? This is required for Windows anyway and one then would only need one place to toggle the visibility of symbols. So the concrete proposal would be:
In a further step one could then split julia.h into julia_internal.h and julia.h |
That sounds good. |
Actually the DLLEXPORT definition is already fine visibility("default") seems to be "public". The visibility was also already hidden. And when I remove julia.expmap everything still builds fine. Will make a PR shortly. |
The expmap is only relevant on Linux. What OS are you on? |
OSX. But the visibility is controlled via the visibility attribute on linux as well. It is redundant to have both |
Right, but there's subtle differences. In particular, julia does not compile properly if the expmap is missing entries. |
Why that? Could you post some more details about the build failure on linux. Unfortunately, I currently only have access to OSX and Windows. |
Is there a reason why only some functions are exported in libjulia? For instance the boxing functions for floats are not exported while the unboxing functions are. Is there a reason to limit the exports at all?
It might make sense to somehow split julia.h in an internal and an public part. In the public julia.h then all symbols could be exported.
The text was updated successfully, but these errors were encountered: