moka-rs / moka

A high performance concurrent caching library for Rust
Apache License 2.0
1.56k stars 69 forks source link

CI: Kani verifier v0.49.0 uses Rust `nightly-2024-03-29`, which cannot compile `proc-macro2@1.0.80` #418

Closed tatsuya6502 closed 5 months ago

tatsuya6502 commented 5 months ago

As of April 16, 2024, the latest version v0.49.0 of Kani verifier uses Rust nightly-2024-03-29, which cannot compile proc-macro2@1.0.80, causing a CI job to tail.

https://github.com/moka-rs/moka/actions/runs/8691269712/job/23852829412

...
Installed Kani  successfully
[0/5] Running Kani first-time setup...
[1/5] Ensuring the existence of: /home/runner/.kani/kani-0.49.0
[2/5] Downloading Kani release bundle: kani-0.49.0-x86_64-unknown-linux-gnu.tar.gz
[3/5] Installing rust toolchain version: nightly-2024-03-29-x86_64-unknown-linux-gnu
info: syncing channel updates for 'nightly-2024-03-29-x86_64-unknown-linux-gnu'
info: latest update on 2024-03-29, rust version 1.79.0-nightly (ba527200c 2024-03-28)
...
  nightly-2024-03-29-x86_64-unknown-linux-gnu installed - rustc 1.79.0-nightly (ba527200c 2024-03-28)

...
cargo-kani --features 'sync, future'

rror[E0658]: use of unstable library feature 'proc_macro_byte_character'
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.80/src/wrapper.rs:871:21
    |
871 |                     proc_macro::Literal::byte_character(byte)
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #115268 <https://github.com/rust-lang/rust/issues/115268> for more information
    = help: add `#![feature(proc_macro_byte_character)]` to the crate attributes to enable
    = note: this compiler was built on 2024-03-28; consider upgrading it if it is out of date

error[E0658]: use of unstable library feature 'proc_macro_c_str_literals'
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.80/src/wrapper.rs:898:21
    |
898 |                     proc_macro::Literal::c_string(string)
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: see issue #119750 <https://github.com/rust-lang/rust/issues/119750> for more information
    = help: add `#![feature(proc_macro_c_str_literals)]` to the crate attributes to enable
    = note: this compiler was built on 2024-03-28; consider upgrading it if it is out of date

error: aborting due to 2 previous errors
tatsuya6502 commented 5 months ago

A similar issue was reported:

Until a new version of Kani is released with a support for a recent version of Rust nightly compiler, we will need to pin the proc-macro2 version to an old one that is compatible with Rust nightly-2024-03-29. (cargo update -p proc-macro2 --precise 1.0.xx)

tatsuya6502 commented 5 months ago

proc-macro2@1.0.79 should compile with Rust nightly-2024-03-29 compiler.

https://github.com/moka-rs/moka/actions/runs/8679905628/job/23799679790

CI log ```console cargo-kani --features 'sync, future' shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} env: CARGO_INCREMENTAL: 0 CARGO_TERM_COLOR: always Kani Rust Verifier 0.49.0 (cargo plugin) Compiling crossbeam-utils v0.8.19 Compiling proc-macro2 v1.0.79 Compiling autocfg v1.2.0 Compiling unicode-ident v1.0.12 Compiling libc v0.2.153 Compiling pin-project-lite v0.2.14 Compiling cfg-if v1.0.0 Compiling parking v2.2.0 Compiling lock_api v0.4.11 Compiling quote v1.0.36 Compiling concurrent-queue v2.4.0 Compiling syn v2.0.58 Compiling slab v0.4.9 Compiling parking_lot_core v0.9.9 Compiling event-listener v4.0.3 Compiling thiserror v1.0.58 Compiling smallvec v1.13.2 Compiling scopeguard v1.2.0 Compiling bitflags v2.5.0 Compiling raw-cpuid v11.0.1 Compiling event-listener-strategy v0.4.0 Compiling getrandom v0.2.14 Compiling moka v0.12.7 (/home/runner/work/moka/moka) Compiling futures-task v0.3.30 Compiling once_cell v1.19.0 Compiling futures-core v0.3.30 Compiling pin-utils v0.1.0 Compiling uuid v1.8.0 Compiling async-lock v3.3.0 Compiling parking_lot v0.12.1 Compiling event-listener v5.3.0 Compiling crossbeam-epoch v0.9.18 Compiling crossbeam-channel v0.5.12 Compiling triomphe v0.1.11 Compiling quanta v0.12.3 Compiling tagptr v0.2.0 Compiling futures-macro v0.3.30 Compiling thiserror-impl v1.0.58 Compiling async-trait v0.1.80 Compiling futures-util v0.3.30 ```