-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
offset_of!
ecosystem testing
#111839
Comments
@rustbot label F-offset_of |
@rustbot label E-help-wanted |
981: epoch: bump `memoffset` to v0.9 r=taiki-e a=Jules-Bertholet CC: rust-lang/rust#111839 Co-authored-by: Jules Bertholet <julesbertholet@quoi.xyz>
…Simulacrum Update field-offset and enable unstable_offset_of This makes the compiler use the builtin `offset_of!()` macro, through the wrappers in memoffset and then in field-offset. cc rust-lang#111839
Per rust-lang/rust#111839, I've also run the tests with `--features memoffset/unstable_offset_of`, with both the linux-raw and libc backends, and they passed.
With bytecodealliance/rustix#689 I've now updated rustix to memoffset 0.9, and run the tests with |
Per rust-lang/rust#111839, I've also run the tests with `--features memoffset/unstable_offset_of`, with both the linux-raw and libc backends, and they passed.
With bytecodealliance/wasmtime#6731, wasmtime-runtime is now updated to memoffset 0.9, and I've now run the tests with |
has been merged to main in |
Looks like PRs for pyo3 and field-offset have merged. |
Implemented as part of rust-lang/rust#111839
PR for wasmer-types/wasmer-vm: wasmerio/wasmer#4273 |
Implemented as part of rust-lang/rust#111839
PR for glium: glium/glium#2081 Testing results: glium/glium#2081 (comment) |
Looks like virtio-queue is already done: rust-vmm/vm-virtio@f69ec8a |
Implemented as part of rust-lang/rust#111839
Looks like ggez is already done on their |
Implemented as part of rust-lang/rust#111839
For what it is worth, we have been successfully using it in the kernel for a while, and the first mainline user should be landing soon: https://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git/commit/?h=for-6.7-rust-bindings&id=7324b88975c525a013ae0db747df97924ce80675. |
@joshlf thanks for filing these pull requests. For checking the checkboxes, can you verify that enabling the |
Confirmed for field-offset. Confirmed for pyo3 (there were trybuild failures, but I believe they're related to compiler version, not behavior changes). Some of the remaining crates are difficult to test locally for one reason or another. I've put up do-not-merge PRs that enable memoffset's
|
Testing as part of rust-lang/rust#111839 Signed-off-by: Joshua Liebow-Feeser <hello@joshlf.com>
Testing as part of rust-lang/rust#111839 Signed-off-by: Joshua Liebow-Feeser <joshlf@users.noreply.github.com>
Confirmed for virtio-queue. |
@est31 Are we hoping to get to 100% coverage here, or is 14/16 good enough? (For the remaining 2, we haven't found issues, we've just run into unrelated problems running the test or getting the feature merged.) |
It's not a precise science, my main goal for the list was to give a starting point. I think we can close this particular issue which was mostly to get things started, as projects often use stable only and are afraid to use nightly features (and indeed there is discussions to maybe change the syntax of Thanks ❤️ @joshlf for your help, and thanks @ojeda and everyone else for confirming that it works for their use cases. |
My pleasure! |
Implemented as part of rust-lang/rust#111839
Implemented as part of rust-lang/rust#111839
I'm filing this issue to get some testing of the
offset_of
macro, whose implementation has recently been merged in #106934 .There is already widespread use of the
offset_of
macro in the ecosystem through an implementation supporting stable via thememoffset
crate, whose version 0.9.0 supports theunstable_offset_of
feature due to Gilnaa/memoffset#72. So for a lot of the users, testing out is as simple as updatingmemoffset
and running the tests with theunstable_offset_of
feature enabled. Thankfully, for testing one doesn't have to add that feature to Cargo.toml, creating a requirement on nightly, one can just add--features memoffset/unstable_offset_of
and it will work.The biggest reverse dependencies of
memoffset
are:It would be good to go through this list, and:
memoffset
crate to 0.9.0, ideally filing a PR (but not enablingunstable_offset_of
in Cargo.toml unless the project already requires nightly!)cargo +nightly test --features memoffset/unstable_offset_of
orcargo +nightly run --features memoffset/unstable_offset_of
etc, trying out the feature and seeing if something is broken, ideally also the--all
parameter if it's a workspaceIn addition of that, it is useful to get feedback from any project that uses the
memoffset
crate indirectly as a transitive dependency. For that, one also has to wait for the upgrade to 0.9.0 to go through the dependency chain and then one can add a direct (unused) dependency onmemoffset
to enable the feature, and test it out.For example, field-offset has a large number of reverse dependencies that one could go through also. I have made a PR for rustc in #112298.
cc #106655 tracking issue
The text was updated successfully, but these errors were encountered: