Skip to content

Conversation

zhassan-aws
Copy link
Contributor

The main change to get the toolchain upgrade to 2025-03-18 to work is to make this change in kani-regression.sh:

-RUSTFLAGS="-D warnings" cargo build --target-dir /tmp/kani_build_warnings
+RUSTFLAGS="-D warnings" cargo build --target-dir /tmp/kani_build_warnings --no-default-features --features cprover

Explanation:

  1. cargo build suppresses warnings from dependencies unless they're local dependencies (e.g. included with path = ...) (see dependencies warning control, overriding path heuristic rust-lang/cargo#8546)
  2. Since we integrate charon as a git submodule and add it as a dependency using path = ..., its warnings are not suppressed
  3. The toolchain upgrade includes adding a #[must_use] attribute on an enum used in charon: rust-lang/rust@2439623278. This results in a warning that causes the RUSTFLAGS="-D warnings" cargo build to fail: https://github.com/model-checking/kani/actions/runs/13914318184/job/38934470822#step:4:2983

The short-term solution in this PR is to exclude the Charon feature when building with -D warnings.

The long-term solution is to fix the warning in upstream Charon (if it's not already fixed), and update our Charon pin to point to a commit that includes the fix. Updating the Charon pin requires us to upgrade our MIR to ULLBC module though, which will require a non-trivial amount of work since it's 2.5 months old.

Resolves #3944

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@zhassan-aws zhassan-aws requested a review from a team as a code owner March 25, 2025 23:15
@github-actions github-actions bot added the Z-EndToEndBenchCI Tag a PR to run benchmark CI label Mar 25, 2025
@tautschnig tautschnig added this pull request to the merge queue Mar 26, 2025
Merged via the queue into model-checking:main with commit 49c4b6f Mar 26, 2025
24 of 25 checks passed
@zhassan-aws zhassan-aws deleted the toolchain-2025-03-18 branch March 26, 2025 17:12
github-merge-queue bot pushed a commit that referenced this pull request Apr 4, 2025
Bump Kani version to 0.61.0.

Github-generated release notes:

## What's Changed
* Fix CHANGELOG of 0.60.0 by @qinheping in
#3925
* Bump tests/perf/s2n-quic from `d88faa4` to `8670e83` by @dependabot in
#3928
* Update toolchain to 2025-03-04 by @qinheping in
#3927
* Install the right toolchain for HEAD and BASE checks in
`verify-std-check.yml` by @remi-delmas-3000 in
#3920
* Automatic cargo update to 2025-03-10 by @github-actions in
#3926
* Automatic toolchain upgrade to nightly-2025-03-05 by @github-actions
in #3929
* Upgrade toolchain to nightly-2025-03-07 by @tautschnig in
#3931
* Upgrade toolchain to nightly-2025-03-12 by @tautschnig in
#3933
* Automatic toolchain upgrade to nightly-2025-03-13 by @github-actions
in #3934
* Update CBMC dependency to 6.5.0 by @tautschnig in
#3936
* Automatic toolchain upgrade to nightly-2025-03-14 by @github-actions
in #3937
* Automatic toolchain upgrade to nightly-2025-03-15 by @github-actions
in #3938
* Automatic toolchain upgrade to nightly-2025-03-16 by @github-actions
in #3939
* Automatic toolchain upgrade to nightly-2025-03-17 by @github-actions
in #3940
* Automatic cargo update to 2025-03-17 by @github-actions in
#3941
* Autoharness: Don't panic on `_` argument and add `_autoharness` suffix
to GOTO files by @carolynzech in
#3942
* Implement `f16` and `f128` cases in `codegen_float_type` by
@carolynzech in #3943
* Support function implementations of known built-ins by @tautschnig in
#3945
* Autoharness: metadata improvements and enable standard library
application by @carolynzech in
#3948
* Autoharness: `--list` option by @carolynzech in
#3952
* Add support for anonymous nested statics by @carolynzech in
#3953
* Automatic cargo update to 2025-03-24 by @github-actions in
#3954
* Bump tests/perf/s2n-quic from `8670e83` to `324cf31` by @dependabot in
#3955
* Document behavior of checked_size_of_raw and is_inbounds by @rajath-mk
in #3956
* Upgrade toolchain to 2025-03-18 by @zhassan-aws in
#3959
* Remove unstable-features from code formatting script by @zhassan-aws
in #3962
* Remove CI job to update features/verify-rust-std by @tautschnig in
#3963
* Make is_inbounds public by @rajath-mk in
#3958
* Enable Kani to work with a stable toolchain by @zhassan-aws in
#3964
* Automatic cargo update to 2025-03-31 by @github-actions in
#3966
* Add support for struct field accessing in loop contracts by
@thanhnguyen-aws in #3970
* Bump tests/perf/s2n-quic from `324cf31` to `d0aff82` by @dependabot in
#3968
* Clarify `is_inbounds` docs by @carolynzech in
#3974
* Upgrade toolchain to 2025-04-01 by @carolynzech in
#3973
* Remove remaining `--enable-unstable` mentions by @carolynzech in
#3978
* Clean up unused dependencies by @zhassan-aws in
#3981
* Automatic toolchain upgrade to nightly-2025-04-02 by @github-actions
in #3983
* Update dependencies per `cargo-outdated` by @carolynzech in
#3982
* Fix `autoharness` termination test & print metadata in alphabetical
order by @carolynzech in
#3971
* Fix cargo invocations to only use `pkg_args` where appropriate by
@carolynzech in #3984


**Full Changelog**:
kani-0.60.0...kani-0.61.0

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Z-EndToEndBenchCI Tag a PR to run benchmark CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Toolchain upgrade to nightly-2025-03-18 failed
3 participants