-
Notifications
You must be signed in to change notification settings - Fork 33
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
Remove BijectorsEnzymeExt on 1.11.1 #337
Conversation
30f7ff7
to
6b78489
Compare
Feel free to disable these Enzyme rules and the code that depends on them. We can reactivate these codes after JuliaLang/julia#56368 is merged and released. |
Thanks for finding that @yebai! That's exciting.
|
34bfa83
to
4ab2a17
Compare
The 1.10 failure should be fixed now through a devious workaround of |
8b246f3
to
d10ad87
Compare
@willtebbutt @mhauru, I'm optimistic about this one 😄 CI is still failing for 1.11, but that's no longer because of the extension precompilation issue; it's because it's trying to load Tapir, which naturally doesn't work on 1.11. #338 shows what happens if we were to replace Tapir -> Mooncake; I've kept it as a separate PR to make the diffs clearer. On that PR all CI tests pass except for:
If you like the looks of both, I suggest we could merge #338 into this, merge this into master, open issues for the other failing tests, then tag a new release, so that the precomp issue doesn't hold up other work. |
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.
Assuming the unlucky RNG test passes (I'm rerunning it) I'd be happy to merge #338 and this. Marking Enzyme v1 CI to not run would be good too.
I think we should revisit this once hopefully Julia v1.11.2 fixes the problem for good, the right way (JuliaLang/julia#56368), and maybe by then Enzyme will be working with v1.11 too. Might end up keeping the code introduced in this, but with a version bound of ==v1.11.1, or might even remove it to simplify and raise an error saying "if you want to use Enzyme with Bijectors, you need some other, any other, version". Regardless, this seems like definitely an improvement over the current state, and good enough for now.
The code is removed now (and replaced with a warning). Same deal as before – we should check CI on #338, merge that into this, and then merge this into master and release. |
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.
Thanks @penelopeysm!
* Tapir -> Mooncake * Bump minor version * Mark Mooncake test as broken * Remove BijectorsEnzymeExt on 1.11.1+ * Increase tolerance on `ordered` test
Description of old PR, no longer relevant
See #333 and the comment added to BijectorsEnzymeExt for context.
I can confirm that this doesn't error in all contexts (but I can't confirm that it has the desired effect, because we can't actually meaningfully test Enzyme on 1.11):
using Enzyme; using Bijectors
: doesn't crashusing Bijectors; using Enzyme
: doesn't crashI tested this locally on Julia 1.11.1 and [email protected]. I've also tested on Julia 1.10.6.
In theory, the main downside of this is:
config
argument. EnzymeAD/Enzyme.jl@ffcb7dd#diff-ca235e21f5e92c1ccdcd841ca2665d4e7d9222f3e29e6e0fce9f601f74745175Overall, though, I think this is a better fix than #333, because it does address the root problem of us implicitly depending on the load order of the two extensions. It just introduces other problems (of maintainability) in the process, but hopefully the comment is clear enough and mitigates this.
Closes #332 by simply removing the code on 1.11.1+.