2023-11-30 02:35:29 +00:00
|
|
|
# @generated by autocargo from //hermetic_infra/reverie:reverie-syscalls
|
2021-12-30 00:14:23 +00:00
|
|
|
|
|
|
|
[package]
|
|
|
|
name = "reverie-syscalls"
|
|
|
|
version = "0.1.0"
|
2022-05-27 17:20:35 +00:00
|
|
|
authors = ["Meta Platforms"]
|
2021-12-30 00:14:23 +00:00
|
|
|
edition = "2021"
|
2023-12-11 23:49:03 +00:00
|
|
|
repository = "https://github.com/facebookexperimental/reverie"
|
2021-12-30 00:14:23 +00:00
|
|
|
license = "BSD-2-Clause"
|
|
|
|
|
|
|
|
[dependencies]
|
Update bitflags to 2.4
Summary:
## Motivation
Since the latest compiler update, we are getting `clippy::bad_bit_mask` errors at the callsites of `bitflags!` macros where one of the variant is zero.
[Upstream won't address it in the `1.x` branch](https://github.com/bitflags/bitflags/pull/373) and recommends upgrading to the `2.x` branch.
We are very close to reaching **zero clippy lints** in [Mononoke and other servers](https://fburl.com/code/pd76yn5e), which would feel nice.
## Specific categories of changes (in case it helps with the code review)
The change from `1.x` to `2.x` introduces a number of backward compatibility breakages which I had to workaround in our codebase.
See [the release notes for 2.0](https://github.com/bitflags/bitflags/releases/tag/2.0.0) for the explanation for the manual fixes I had to perform at each call site.
---
**Adding traits to derive:**
```
#[derive(PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Clone, Copy)]
```
> Generated flags types now derive fewer traits. If you need to maintain backwards compatibility, you can derive the following yourself:
---
**Replacing read uses of `.bits` with `.bits()`**
> You can now use the .bits() method instead of the old .bits.
> The representation of generated flags types has changed from a struct with the single field bits to a newtype.
---
**Replacing raw setting of `.bits` with `.from_bits_retain()`**
Due to the point above, the representation of the type is not exposed anymore. From [the documentation](https://docs.rs/bitflags/latest/bitflags/example_generated/struct.Flags.html#method.from_bits_retain), `from_bits_retain` "convert from a bits value exactly", which matches the old behaviour
---
**Replacing the unsafe `from_bits_unchecked` method with `from_bits_retain`**
> The unsafe from_bits_unchecked method is now a safe from_bits_retain method.
---
**Extracting some structs outside of the `bitflags!` macro**
Apart from the derives that `bitflags` knows about, such as `serde`, `bitflags` now can't deal with custom derives in macros with the previous syntax. I followed the recommendation from [their documentation](https://docs.rs/bitflags/latest/bitflags/index.html#custom-derives) to declare the `struct` ahead of of the macro call and only declare the `impl` block inside the macro.
---
**Changes to test output**
This does not stand out in the release notes, but as of [this upstream PR](https://github.com/bitflags/bitflags/pull/297), the `Debug` output of generated bitflags has changed. This means any tests that rely on this (and of course, there are a few) needed updating.
In particular, the `vespa` tests rely on that output in a non-obvious way. You might have to trust me (and CI) on these ones...
Reviewed By: dtolnay
Differential Revision: D49742979
fbshipit-source-id: c818c37af45f0964e8fdb7ec6173ad66bb982c00
2024-01-16 08:38:02 +00:00
|
|
|
bitflags = "2.4"
|
2022-07-22 14:22:52 +00:00
|
|
|
derive_more = "0.99.17"
|
2023-02-13 00:30:00 +00:00
|
|
|
libc = "0.2.139"
|
2022-10-03 22:31:17 +00:00
|
|
|
nix = "0.25"
|
2023-10-26 07:06:40 +00:00
|
|
|
paste = "1.0.14"
|
2022-12-08 02:06:56 +00:00
|
|
|
reverie-memory = { version = "0.1.0", path = "../reverie-memory" }
|
2023-08-21 13:07:02 +00:00
|
|
|
serde = { version = "1.0.185", features = ["derive", "rc"] }
|
2022-10-12 21:29:02 +00:00
|
|
|
syscalls = { version = "0.6.7", features = ["serde"] }
|