Skip to content
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

Dynamic symbols on Unix #650

Merged
merged 2 commits into from
Oct 1, 2024
Merged

Conversation

filmor
Copy link
Member

@filmor filmor commented Aug 19, 2024

Implements #648.

We could go even further and drop rustler-sys entirely.

@filmor filmor force-pushed the dynamic-symbols-2 branch 4 times, most recently from 8604fc1 to f4a2923 Compare August 19, 2024 11:10
@filmor filmor requested a review from a team August 19, 2024 11:20
@filmor
Copy link
Member Author

filmor commented Aug 30, 2024

While this works, there seems to be a non-negligible performance impact. I'll try to find out where it comes from.

@filmor
Copy link
Member Author

filmor commented Sep 29, 2024

I looked more into the performance impact, and I think it's compile-time only, at least on Linux. I also compared the assemblies and from what I can see, the generated code for the function calls looks very similar (but still too different to just claim it will execute identically). My current working assumption is that the differences in CI runtimes can be attributed to the CI hosts and potentially a slightly slower startup (as repeated dlsym might be slower than linking at load time).

Please review, I will in parallel try to get a pure macro based variant working in another PR.

@filmor filmor marked this pull request as ready for review September 29, 2024 09:42
@filmor filmor merged commit 8700858 into rusterlium:master Oct 1, 2024
46 checks passed
@filmor filmor deleted the dynamic-symbols-2 branch October 1, 2024 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant