-
Notifications
You must be signed in to change notification settings - Fork 69
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
Post-release dependency version bump for v0.21.0 #1013
Conversation
39eaeda
to
bd46bef
Compare
Bump the version of dependencies to their latest version. The "atomic" crate, since version 0.6.0, requires the `T` in `Atomic<T>` to implement `bytemuck::NoUnint`. It is a marker trait for types that satisfies some requirements. One requirement is that `T` must not have any padding bytes (in the middle or at the end). The derive macro `#[derive(NoUninit)]` can be used on custom types to automatically check if the type satisfies its requirements. Two notable types are: 1. `enum MMapStrategy`. It is missing a representation annotation which `NoUninit` requires. This PR adds `#[repr(u8)]` to fix this. 2. `WORKER_ORDINAL: Atomic<Option<ThreadId>>`. The `Option` type does have padding bytes, making it un-eligible for `Atomic<T>`. This PR changes it to `Atomic<ThreadId>`, with `ThreadId::max` representing the uninitialized value.
bd46bef
to
681dabd
Compare
binding-refs |
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.
LGTM.
@wks The performance regression CI seems to be broken. Something about |
Maybe try manually merge mmtk/mmtk-openjdk#259 first. Then rerun the failed CI jobs. The OpenJDK PR was not automatically merged due to an error here: https://github.com/mmtk/mmtk-core/actions/runs/7082168787/job/19272539610. The PR uses mmtk-core/.github/scripts/replace-mmtk-dep.py Lines 68 to 69 in a058b8c
|
Interestingly the mmtk-core PR is merged, but the mmtk-openjdk PR is not. I'll update and manually merge the mmtk-openjdk PR. |
The reason is what I wrote above. However, even if the mmtk-openjdk PR is merged as expected, we will still see failed jobs for mmtk-core perf CI, as those jobs are executed before the binding PRs are merged. I don't know if what would be a good way to deal with it (maybe we should wait until the binding PRs are merged and then execute the perf CI?) |
Yes. I think we should re-run the perf CI once the binding PR is merged. PRs may fail to merge for one reason or another, and there should be a way to manually trigger those things. |
I restarted the performance regression CI after merging the mmtk-openjdk PR https://github.com/mmtk/mmtk-core/actions/runs/7083003792 |
Bump the version of dependencies to their latest version.
The "atomic" crate, since version 0.6.0, requires the
T
inAtomic<T>
to implementbytemuck::NoUnint
. It is a marker trait for types that satisfies some requirements. One requirement is thatT
must not have any padding bytes (in the middle or at the end). The derive macro#[derive(NoUninit)]
can be used on custom types to automatically check if the type satisfies its requirements. Two notable types are:enum MMapStrategy
. It is missing a representation annotation whichNoUninit
requires. This PR adds#[repr(u8)]
to fix this.WORKER_ORDINAL: Atomic<Option<ThreadId>>
. TheOption
type does have padding bytes, making it un-eligible forAtomic<T>
. This PR changes it toAtomic<ThreadId>
, withThreadId::max
representing the uninitialized value.