Skip to content

offset_of! ecosystem testing #111839

Closed
Closed
@est31

Description

@est31

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 the memoffset crate, whose version 0.9.0 supports the unstable_offset_of feature due to Gilnaa/memoffset#72. So for a lot of the users, testing out is as simple as updating memoffset and running the tests with the unstable_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:

  1. update the memoffset crate to 0.9.0, ideally filing a PR (but not enabling unstable_offset_of in Cargo.toml unless the project already requires nightly!)
  2. run cargo +nightly test --features memoffset/unstable_offset_of or cargo +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 workspace
  3. tell here about the experience

In 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 on memoffset 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    E-help-wantedCall for participation: Help is requested to fix this issue.F-offset_of`#![feature(offset_of)]`

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions