-
Notifications
You must be signed in to change notification settings - Fork 3
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
Add a config.toml flag for dynamic linking #160
Conversation
This allows a shared BDWGC build to be dynamically linked using the following config.toml flag: ```toml [alloy] bdwc-link-shared = true ``` This flag is false by default. Previously we set GC_LINK_DYNAMIC=true to link BWDGC dynamically. While this works, it does not invalidate the compilation cache if it's the only thing that has been changed between builds. This was noticed in benchmarking, where we if we get unlucky and alternate between building BDWGC staticlly and dynamically (e.g. for perf and memory testing) then we ended up with the wrong build but no obvious failures.
I should have mentioned that this does not remove legacy support for using a shared BDWGC with the |
Should we get rid of the env var route at some point soon? |
I think so. I just didn't want to inadvertantly break anything for now. We should also similarly make |
Maybe raise brief issues so we don't forget them? |
Great minds |
I don't think this one ever hit CI for whatever reason. Would you mind giving it another kick? |
There was (in the end, after a timeout that wasn't this PR's fault) a test failure https://ci.soft-dev.org/#/builders/3/builds/2610/steps/3/logs/stdio |
Oof ok |
A recent commit in grmtools (2ffcffb) uses the recently stabilied Rust feature: slice `split_at_checked`. Alloy is forked from an older version of Rust where this is still feature-gated, so unless we pin to an older version of grmtools which predates this we will get warnings about unsupported features.
Funnily enough it seems the original failure we saw was a CI quirk, but now we make it past that we experience a genuine error caused by running the grmtools test suite without pinning it to a version. The tl;dr is that a very recent commit in grmtools uses a feature which was stabilised in Rust 1.80.0. Alloy is a fork of 1.79.0 so we get a missing feature error. I've fixed this here c7d233e and if you're happy I think this should remain a separate commit. |
This allows a shared BDWGC build to be dynamically linked using the following config.toml flag:
This flag is false by default.
Previously we set GC_LINK_DYNAMIC=true to link BWDGC dynamically. While this works, it does not invalidate the compilation cache if it's the only thing that has been changed between builds.
This was noticed in benchmarking, where we if we get unlucky and alternate between building BDWGC staticlly and dynamically (e.g. for perf and memory testing) then we ended up with the wrong build but no obvious failures.