-
-
Notifications
You must be signed in to change notification settings - Fork 14.3k
enrich error info when tries to dlopen Enzyme #150696
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
Conversation
|
Some changes occurred in compiler/rustc_codegen_llvm/src/llvm/enzyme_ffi.rs cc @ZuseZ4 |
|
We'll need more test cases for the different errors in the bugfix PR, but let's land this first so you can get proper error messages from nightly to make debugging easier. @bors r+ rollup |
|
🌲 The tree is currently closed for pull requests below priority 1000. This pull request will be tested once the tree is reopened. |
enrich error info when tries to dlopen Enzyme related: rust-lang#145899 (comment) print error from EnzymeWrapper::get_or_init(sysroot) as a note r? @ZuseZ4 e.g. 1. when libEnzyme not found ```shell $ rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: autodiff backend not found in the sysroot: failed to find a `libEnzyme-21` folder in the sysroot candidates: * /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib | = note: it will be distributed via rustup in the future ``` 2. when could not load libEnzyme successfully ```shell rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: failed to load our autodiff backend: DlOpen { source: "dlopen(/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib, 0x0005): tried: \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file), \'/System/Volumes/Preboot/Cryptexes/OS/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (no such file), \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file)" } ``` <!-- homu-ignore:start --> <!-- If this PR is related to an unstable feature or an otherwise tracked effort, please link to the relevant tracking issue here. If you don't know of a related tracking issue or there are none, feel free to ignore this. This PR will get automatically assigned to a reviewer. In case you would like a specific user to review your work, you can assign it to them by using r? <reviewer name> --> <!-- homu-ignore:end -->
Rollup of 5 pull requests Successful merges: - #150696 (enrich error info when tries to dlopen Enzyme) - #150721 (Deprecated doc intra link) - #150747 (tests/ui/runtime/on-broken-pipe/with-rustc_main.rs: Not needed so remove) - #150761 (rustc book: fix grammar) - #150775 (Move issue-12660 to 'ui/cross-crate/ with a descriptive name) r? @ghost
enrich error info when tries to dlopen Enzyme Implementation for rust-lang#150733. I marked this function as `#[must_use]` even though the other `AtomicPtr` constructors aren't. It's unclear to me why they aren't already marked as such, I opened a zulip thread asking about it: [#t-libs > Is there a reason AtomicPtr constructors aren't #&rust-lang#91;must_use&rust-lang#93;?](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/Is.20there.20a.20reason.20AtomicPtr.20constructors.20aren't.20.23.5Bmust_use.5D.3F/with/566624261).
enrich error info when tries to dlopen Enzyme related: rust-lang#145899 (comment) print error from EnzymeWrapper::get_or_init(sysroot) as a note r? @ZuseZ4 e.g. 1. when libEnzyme not found ```shell $ rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: autodiff backend not found in the sysroot: failed to find a `libEnzyme-21` folder in the sysroot candidates: * /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib | = note: it will be distributed via rustup in the future ``` 2. when could not load libEnzyme successfully ```shell rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: failed to load our autodiff backend: DlOpen { source: "dlopen(/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib, 0x0005): tried: \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file), \'/System/Volumes/Preboot/Cryptexes/OS/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (no such file), \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file)" } ```
enrich error info when tries to dlopen Enzyme [slice::element_offset](https://doc.rust-lang.org/std/primitive.slice.html#method.element_offset) Partially stabilizes rust-lang#126769 (substr_range). [FCP completed](rust-lang#126769 (comment)) The other methods are [stalled because of the new range types](rust-lang#126769 (comment)), but this method doesn't use ranges.
enrich error info when tries to dlopen Enzyme related: rust-lang#145899 (comment) print error from EnzymeWrapper::get_or_init(sysroot) as a note r? @ZuseZ4 e.g. 1. when libEnzyme not found ```shell $ rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: autodiff backend not found in the sysroot: failed to find a `libEnzyme-21` folder in the sysroot candidates: * /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib | = note: it will be distributed via rustup in the future ``` 2. when could not load libEnzyme successfully ```shell rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: failed to load our autodiff backend: DlOpen { source: "dlopen(/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib, 0x0005): tried: \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file), \'/System/Volumes/Preboot/Cryptexes/OS/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (no such file), \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file)" } ```
enrich error info when tries to dlopen Enzyme related: rust-lang#145899 (comment) print error from EnzymeWrapper::get_or_init(sysroot) as a note r? @ZuseZ4 e.g. 1. when libEnzyme not found ```shell $ rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: autodiff backend not found in the sysroot: failed to find a `libEnzyme-21` folder in the sysroot candidates: * /Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib | = note: it will be distributed via rustup in the future ``` 2. when could not load libEnzyme successfully ```shell rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: failed to load our autodiff backend: DlOpen { source: "dlopen(/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib, 0x0005): tried: \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file), \'/System/Volumes/Preboot/Cryptexes/OS/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (no such file), \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file)" } ```
enrich error info when tries to dlopen Enzyme In rust-lang#127273 I added a test and a FIXME comment pointing out how it does the wrong thing. In the next commit I fixed the problem but forgot to remove the FIXME comment, whoops.
Rollup of 6 pull requests Successful merges: - #150675 (MGCA: Support tuple expressions as direct const arguments) - #150696 (enrich error info when tries to dlopen Enzyme) - #150747 (tests/ui/runtime/on-broken-pipe/with-rustc_main.rs: Not needed so remove) - #150757 (Fix `alloc_error_handler` signature mismatch) - #150777 (Stabilize `slice::element_offset`) - #150791 (Remove out of date FIXME comment.) r? @ghost
related: #145899 (comment)
print error from EnzymeWrapper::get_or_init(sysroot) as a note
r? @ZuseZ4
e.g.
rustc +stage1 -Z autodiff=Enable -C lto=fat src/main.rs error: failed to load our autodiff backend: DlOpen { source: "dlopen(/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib, 0x0005): tried: \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file), \'/System/Volumes/Preboot/Cryptexes/OS/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (no such file), \'/Volumes/WD_BLACK_SN850X_HS_1TB/rust-lang/rust/build/aarch64-apple-darwin/stage1/lib/rustlib/aarch64-apple-darwin/lib/libEnzyme-21.dylib\' (slice is not valid mach-o file)" }