2023-03-29 15:33:22 -04:00
|
|
|
name: CI
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
2021-07-01 16:45:56 -04:00
|
|
|
on:
|
|
|
|
pull_request:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- master
|
2023-03-29 15:33:22 -04:00
|
|
|
|
|
|
|
env:
|
|
|
|
RUST_BACKTRACE: 1
|
|
|
|
CARGO_TERM_COLOR: always
|
|
|
|
CLICOLOR: 1
|
2024-02-07 16:53:09 -05:00
|
|
|
COLUMNS: 130
|
2023-03-29 15:33:22 -04:00
|
|
|
|
2024-01-18 10:22:25 -05:00
|
|
|
concurrency:
|
|
|
|
group: "${{ github.workflow }}-${{ github.ref }}"
|
|
|
|
cancel-in-progress: true
|
|
|
|
|
2021-07-01 16:45:56 -04:00
|
|
|
jobs:
|
2021-08-16 12:23:25 -04:00
|
|
|
ci:
|
2023-03-29 15:33:22 -04:00
|
|
|
permissions:
|
|
|
|
contents: none
|
2021-08-16 12:23:25 -04:00
|
|
|
name: CI
|
2024-04-01 12:36:58 -04:00
|
|
|
needs: [test, msrv, lockfile, docs, rustfmt, clippy]
|
2021-08-16 12:23:25 -04:00
|
|
|
runs-on: ubuntu-latest
|
2024-04-01 12:36:58 -04:00
|
|
|
if: "always()"
|
2021-08-16 12:23:25 -04:00
|
|
|
steps:
|
2024-04-01 12:36:58 -04:00
|
|
|
- name: Failed
|
|
|
|
run: exit 1
|
|
|
|
if: "contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')"
|
2021-07-01 16:45:56 -04:00
|
|
|
test:
|
|
|
|
name: Test
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2024-02-08 08:45:48 -05:00
|
|
|
os: ["ubuntu-latest", "windows-latest", "macos-14"]
|
2021-07-07 16:38:16 -04:00
|
|
|
rust: ["stable"]
|
2021-07-01 16:45:56 -04:00
|
|
|
continue-on-error: ${{ matrix.rust != 'stable' }}
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2023-09-30 23:30:16 -04:00
|
|
|
uses: actions/checkout@v4
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Install Rust
|
2023-03-29 15:33:22 -04:00
|
|
|
uses: dtolnay/rust-toolchain@stable
|
2021-07-01 16:45:56 -04:00
|
|
|
with:
|
|
|
|
toolchain: ${{ matrix.rust }}
|
2024-01-03 09:29:34 -05:00
|
|
|
components: rustfmt
|
2022-12-01 12:54:48 -05:00
|
|
|
- uses: Swatinem/rust-cache@v2
|
2024-03-28 10:57:23 -04:00
|
|
|
- uses: taiki-e/install-action@cargo-hack
|
2022-02-15 14:31:29 -05:00
|
|
|
- name: Build
|
2024-01-03 09:27:59 -05:00
|
|
|
run: cargo test --workspace --no-run
|
2024-03-28 10:57:23 -04:00
|
|
|
- name: Test
|
|
|
|
run: cargo hack test --feature-powerset --workspace
|
2021-07-01 16:45:56 -04:00
|
|
|
msrv:
|
2024-02-15 10:58:01 -05:00
|
|
|
name: "Check MSRV"
|
2021-07-01 16:45:56 -04:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2023-09-30 23:30:16 -04:00
|
|
|
uses: actions/checkout@v4
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Install Rust
|
2023-03-29 15:33:22 -04:00
|
|
|
uses: dtolnay/rust-toolchain@stable
|
2021-07-01 16:45:56 -04:00
|
|
|
with:
|
2024-02-15 10:58:01 -05:00
|
|
|
toolchain: stable
|
2022-12-01 12:54:48 -05:00
|
|
|
- uses: Swatinem/rust-cache@v2
|
2024-02-15 10:58:01 -05:00
|
|
|
- uses: taiki-e/install-action@cargo-hack
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Default features
|
2024-03-28 10:57:23 -04:00
|
|
|
run: cargo hack check --feature-powerset --locked --rust-version --ignore-private --workspace --all-targets
|
2023-08-07 17:16:17 -04:00
|
|
|
lockfile:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2023-09-30 23:30:16 -04:00
|
|
|
uses: actions/checkout@v4
|
2023-08-07 17:16:17 -04:00
|
|
|
- name: Install Rust
|
|
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
with:
|
|
|
|
toolchain: stable
|
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
|
|
- name: "Is lockfile updated?"
|
2024-03-28 10:53:02 -04:00
|
|
|
run: cargo update --workspace --locked
|
2021-07-01 16:45:56 -04:00
|
|
|
docs:
|
|
|
|
name: Docs
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2023-09-30 23:30:16 -04:00
|
|
|
uses: actions/checkout@v4
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Install Rust
|
2023-03-29 15:33:22 -04:00
|
|
|
uses: dtolnay/rust-toolchain@stable
|
2021-07-01 16:45:56 -04:00
|
|
|
with:
|
chore(deps): Update Rust Stable to v1.78 (#1011)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://togithub.com/rust-lang/rust) | minor | `1.77` ->
`1.78` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.78`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1780-2024-05-02)
[Compare
Source](https://togithub.com/rust-lang/rust/compare/1.77.0...1.78.0)
\==========================
<a id="1.78.0-Language"></a>
## Language
- [Stabilize `#[cfg(target_abi =
...)]`](https://togithub.com/rust-lang/rust/pull/119590/)
- [Stabilize the `#[diagnostic]` namespace and
`#[diagnostic::on_unimplemented]`
attribute](https://togithub.com/rust-lang/rust/pull/119888/)
- [Make async-fn-in-trait implementable with concrete
signatures](https://togithub.com/rust-lang/rust/pull/120103/)
- [Make matching on NaN a hard error, and remove the rest of
`illegal_floating_point_literal_pattern`](https://togithub.com/rust-lang/rust/pull/116284/)
- [static mut: allow mutable reference to arbitrary types, not just
slices and arrays](https://togithub.com/rust-lang/rust/pull/117614/)
- [Extend `invalid_reference_casting` to include references casting to
bigger memory layout](https://togithub.com/rust-lang/rust/pull/118983/)
- [Add `non_contiguous_range_endpoints` lint for singleton gaps after
exclusive ranges](https://togithub.com/rust-lang/rust/pull/118879/)
- [Add `wasm_c_abi` lint for use of older wasm-bindgen
versions](https://togithub.com/rust-lang/rust/pull/117918/)
This lint currently only works when using Cargo.
- [Update `indirect_structural_match` and `pointer_structural_match`
lints to match RFC](https://togithub.com/rust-lang/rust/pull/120423/)
- [Make non-`PartialEq`-typed consts as patterns a hard
error](https://togithub.com/rust-lang/rust/pull/120805/)
- [Split `refining_impl_trait` lint into `_reachable`, `_internal`
variants](https://togithub.com/rust-lang/rust/pull/121720/)
- [Remove unnecessary type inference when using associated types inside
of higher ranked
`where`-bounds](https://togithub.com/rust-lang/rust/pull/119849)
- [Weaken eager detection of cyclic types during type
inference](https://togithub.com/rust-lang/rust/pull/119989)
- [`trait Trait: Auto {}`: allow upcasting from `dyn Trait` to `dyn
Auto`](https://togithub.com/rust-lang/rust/pull/119338)
<a id="1.78.0-Compiler"></a>
## Compiler
- [Made `INVALID_DOC_ATTRIBUTES` lint deny by
default](https://togithub.com/rust-lang/rust/pull/111505/)
- [Increase accuracy of redundant `use`
checking](https://togithub.com/rust-lang/rust/pull/117772/)
- [Suggest moving definition if non-found macro_rules! is defined
later](https://togithub.com/rust-lang/rust/pull/121130/)
- [Lower transmutes from int to pointer type as gep on
null](https://togithub.com/rust-lang/rust/pull/121282/)
Target changes:
- [Windows tier 1 targets now require at least Windows
10](https://togithub.com/rust-lang/rust/pull/115141/)
- [Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1
Windows](https://togithub.com/rust-lang/rust/pull/120820/)
- [Add `wasm32-wasip1` tier 2 (without host tools)
target](https://togithub.com/rust-lang/rust/pull/120468/)
- [Add `wasm32-wasip2` tier 3
target](https://togithub.com/rust-lang/rust/pull/119616/)
- [Rename `wasm32-wasi-preview1-threads` to
`wasm32-wasip1-threads`](https://togithub.com/rust-lang/rust/pull/122170/)
- [Add `arm64ec-pc-windows-msvc` tier 3
target](https://togithub.com/rust-lang/rust/pull/119199/)
- [Add `armv8r-none-eabihf` tier 3 target for the
Cortex-R52](https://togithub.com/rust-lang/rust/pull/110482/)
- [Add `loongarch64-unknown-linux-musl` tier 3
target](https://togithub.com/rust-lang/rust/pull/121832/)
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.78.0-Libraries"></a>
## Libraries
- [Bump Unicode to version 15.1.0, regenerate
tables](https://togithub.com/rust-lang/rust/pull/120777/)
- [Make align_offset, align_to well-behaved in all
cases](https://togithub.com/rust-lang/rust/pull/121201/)
- [PartialEq, PartialOrd: document expectations for transitive
chains](https://togithub.com/rust-lang/rust/pull/115386/)
- [Optimize away poison guards when std is built with
panic=abort](https://togithub.com/rust-lang/rust/pull/100603/)
- [Replace pthread `RwLock` with custom
implementation](https://togithub.com/rust-lang/rust/pull/110211/)
- [Implement unwind safety for Condvar on all
platforms](https://togithub.com/rust-lang/rust/pull/121768/)
- [Add ASCII fast-path for
`char::is_grapheme_extended`](https://togithub.com/rust-lang/rust/pull/121138/)
<a id="1.78.0-Stabilized-APIs"></a>
## Stabilized APIs
- [`impl Read for
&Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin)
- [Accept non `'static` lifetimes for several `std::error::Error`
related
implementations](https://togithub.com/rust-lang/rust/pull/113833/)
- [Make `impl<Fd: AsFd>` impl take
`?Sized`](https://togithub.com/rust-lang/rust/pull/114655/)
- [`impl From<TryReserveError> for
io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error)
These APIs are now stable in const contexts:
-
[`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new)
<a id="1.78.0-Cargo"></a>
## Cargo
- [Stabilize lockfile
v4](https://togithub.com/rust-lang/cargo/pull/12852/)
- [Respect `rust-version` when generating
lockfile](https://togithub.com/rust-lang/cargo/pull/12861/)
- [Control `--charset` via auto-detecting config
value](https://togithub.com/rust-lang/cargo/pull/13337/)
- [Support `target.<triple>.rustdocflags`
officially](https://togithub.com/rust-lang/cargo/pull/13197/)
- [Stabilize global cache data
tracking](https://togithub.com/rust-lang/cargo/pull/13492/)
<a id="1.78.0-Misc"></a>
## Misc
- [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as
RUSTC_WRAPPER when building
doctests](https://togithub.com/rust-lang/rust/pull/114651/)
<a id="1.78.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Many unsafe precondition checks now run for user code with debug
assertions enabled](https://togithub.com/rust-lang/rust/pull/120594/)
This change helps users catch undefined behavior in their code, though
the details of how much is checked are generally not stable.
- [riscv only supports split_debuginfo=off for
now](https://togithub.com/rust-lang/rust/pull/120518/)
- [Consistently check bounds on hidden types of `impl
Trait`](https://togithub.com/rust-lang/rust/pull/121679)
- [Change equality of higher ranked types to not rely on
subtyping](https://togithub.com/rust-lang/rust/pull/118247)
- [When called, additionally check bounds on normalized function return
type](https://togithub.com/rust-lang/rust/pull/118882)
- [Expand coverage for `arithmetic_overflow`
lint](https://togithub.com/rust-lang/rust/pull/119432/)
<a id="1.78.0-Internal-Changes"></a>
## Internal Changes
These changes do not affect any public interfaces of Rust, but they
represent
significant improvements to the performance or internals of rustc and
related
tools.
- [Update to LLVM 18](https://togithub.com/rust-lang/rust/pull/120055/)
- [Build `rustc` with 1CGU on
`x86_64-pc-windows-msvc`](https://togithub.com/rust-lang/rust/pull/112267/)
- [Build `rustc` with 1CGU on
`x86_64-apple-darwin`](https://togithub.com/rust-lang/rust/pull/112268/)
- [Introduce `run-make` V2 infrastructure, a `run_make_support` library
and port over 2 tests as
example](https://togithub.com/rust-lang/rust/pull/113026/)
- [Windows: Implement condvar, mutex and rwlock using
futex](https://togithub.com/rust-lang/rust/pull/121956/)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/crate-ci/typos).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 13:09:21 -04:00
|
|
|
toolchain: "1.78" # STABLE
|
2022-12-01 12:54:48 -05:00
|
|
|
- uses: Swatinem/rust-cache@v2
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Check documentation
|
|
|
|
env:
|
|
|
|
RUSTDOCFLAGS: -D warnings
|
2022-02-15 14:31:29 -05:00
|
|
|
run: cargo doc --workspace --all-features --no-deps --document-private-items
|
2021-07-01 16:45:56 -04:00
|
|
|
rustfmt:
|
|
|
|
name: rustfmt
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2023-09-30 23:30:16 -04:00
|
|
|
uses: actions/checkout@v4
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Install Rust
|
2023-03-29 15:33:22 -04:00
|
|
|
uses: dtolnay/rust-toolchain@stable
|
2021-07-01 16:45:56 -04:00
|
|
|
with:
|
chore(deps): Update Rust Stable to v1.78 (#1011)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://togithub.com/rust-lang/rust) | minor | `1.77` ->
`1.78` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.78`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1780-2024-05-02)
[Compare
Source](https://togithub.com/rust-lang/rust/compare/1.77.0...1.78.0)
\==========================
<a id="1.78.0-Language"></a>
## Language
- [Stabilize `#[cfg(target_abi =
...)]`](https://togithub.com/rust-lang/rust/pull/119590/)
- [Stabilize the `#[diagnostic]` namespace and
`#[diagnostic::on_unimplemented]`
attribute](https://togithub.com/rust-lang/rust/pull/119888/)
- [Make async-fn-in-trait implementable with concrete
signatures](https://togithub.com/rust-lang/rust/pull/120103/)
- [Make matching on NaN a hard error, and remove the rest of
`illegal_floating_point_literal_pattern`](https://togithub.com/rust-lang/rust/pull/116284/)
- [static mut: allow mutable reference to arbitrary types, not just
slices and arrays](https://togithub.com/rust-lang/rust/pull/117614/)
- [Extend `invalid_reference_casting` to include references casting to
bigger memory layout](https://togithub.com/rust-lang/rust/pull/118983/)
- [Add `non_contiguous_range_endpoints` lint for singleton gaps after
exclusive ranges](https://togithub.com/rust-lang/rust/pull/118879/)
- [Add `wasm_c_abi` lint for use of older wasm-bindgen
versions](https://togithub.com/rust-lang/rust/pull/117918/)
This lint currently only works when using Cargo.
- [Update `indirect_structural_match` and `pointer_structural_match`
lints to match RFC](https://togithub.com/rust-lang/rust/pull/120423/)
- [Make non-`PartialEq`-typed consts as patterns a hard
error](https://togithub.com/rust-lang/rust/pull/120805/)
- [Split `refining_impl_trait` lint into `_reachable`, `_internal`
variants](https://togithub.com/rust-lang/rust/pull/121720/)
- [Remove unnecessary type inference when using associated types inside
of higher ranked
`where`-bounds](https://togithub.com/rust-lang/rust/pull/119849)
- [Weaken eager detection of cyclic types during type
inference](https://togithub.com/rust-lang/rust/pull/119989)
- [`trait Trait: Auto {}`: allow upcasting from `dyn Trait` to `dyn
Auto`](https://togithub.com/rust-lang/rust/pull/119338)
<a id="1.78.0-Compiler"></a>
## Compiler
- [Made `INVALID_DOC_ATTRIBUTES` lint deny by
default](https://togithub.com/rust-lang/rust/pull/111505/)
- [Increase accuracy of redundant `use`
checking](https://togithub.com/rust-lang/rust/pull/117772/)
- [Suggest moving definition if non-found macro_rules! is defined
later](https://togithub.com/rust-lang/rust/pull/121130/)
- [Lower transmutes from int to pointer type as gep on
null](https://togithub.com/rust-lang/rust/pull/121282/)
Target changes:
- [Windows tier 1 targets now require at least Windows
10](https://togithub.com/rust-lang/rust/pull/115141/)
- [Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1
Windows](https://togithub.com/rust-lang/rust/pull/120820/)
- [Add `wasm32-wasip1` tier 2 (without host tools)
target](https://togithub.com/rust-lang/rust/pull/120468/)
- [Add `wasm32-wasip2` tier 3
target](https://togithub.com/rust-lang/rust/pull/119616/)
- [Rename `wasm32-wasi-preview1-threads` to
`wasm32-wasip1-threads`](https://togithub.com/rust-lang/rust/pull/122170/)
- [Add `arm64ec-pc-windows-msvc` tier 3
target](https://togithub.com/rust-lang/rust/pull/119199/)
- [Add `armv8r-none-eabihf` tier 3 target for the
Cortex-R52](https://togithub.com/rust-lang/rust/pull/110482/)
- [Add `loongarch64-unknown-linux-musl` tier 3
target](https://togithub.com/rust-lang/rust/pull/121832/)
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.78.0-Libraries"></a>
## Libraries
- [Bump Unicode to version 15.1.0, regenerate
tables](https://togithub.com/rust-lang/rust/pull/120777/)
- [Make align_offset, align_to well-behaved in all
cases](https://togithub.com/rust-lang/rust/pull/121201/)
- [PartialEq, PartialOrd: document expectations for transitive
chains](https://togithub.com/rust-lang/rust/pull/115386/)
- [Optimize away poison guards when std is built with
panic=abort](https://togithub.com/rust-lang/rust/pull/100603/)
- [Replace pthread `RwLock` with custom
implementation](https://togithub.com/rust-lang/rust/pull/110211/)
- [Implement unwind safety for Condvar on all
platforms](https://togithub.com/rust-lang/rust/pull/121768/)
- [Add ASCII fast-path for
`char::is_grapheme_extended`](https://togithub.com/rust-lang/rust/pull/121138/)
<a id="1.78.0-Stabilized-APIs"></a>
## Stabilized APIs
- [`impl Read for
&Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin)
- [Accept non `'static` lifetimes for several `std::error::Error`
related
implementations](https://togithub.com/rust-lang/rust/pull/113833/)
- [Make `impl<Fd: AsFd>` impl take
`?Sized`](https://togithub.com/rust-lang/rust/pull/114655/)
- [`impl From<TryReserveError> for
io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error)
These APIs are now stable in const contexts:
-
[`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new)
<a id="1.78.0-Cargo"></a>
## Cargo
- [Stabilize lockfile
v4](https://togithub.com/rust-lang/cargo/pull/12852/)
- [Respect `rust-version` when generating
lockfile](https://togithub.com/rust-lang/cargo/pull/12861/)
- [Control `--charset` via auto-detecting config
value](https://togithub.com/rust-lang/cargo/pull/13337/)
- [Support `target.<triple>.rustdocflags`
officially](https://togithub.com/rust-lang/cargo/pull/13197/)
- [Stabilize global cache data
tracking](https://togithub.com/rust-lang/cargo/pull/13492/)
<a id="1.78.0-Misc"></a>
## Misc
- [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as
RUSTC_WRAPPER when building
doctests](https://togithub.com/rust-lang/rust/pull/114651/)
<a id="1.78.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Many unsafe precondition checks now run for user code with debug
assertions enabled](https://togithub.com/rust-lang/rust/pull/120594/)
This change helps users catch undefined behavior in their code, though
the details of how much is checked are generally not stable.
- [riscv only supports split_debuginfo=off for
now](https://togithub.com/rust-lang/rust/pull/120518/)
- [Consistently check bounds on hidden types of `impl
Trait`](https://togithub.com/rust-lang/rust/pull/121679)
- [Change equality of higher ranked types to not rely on
subtyping](https://togithub.com/rust-lang/rust/pull/118247)
- [When called, additionally check bounds on normalized function return
type](https://togithub.com/rust-lang/rust/pull/118882)
- [Expand coverage for `arithmetic_overflow`
lint](https://togithub.com/rust-lang/rust/pull/119432/)
<a id="1.78.0-Internal-Changes"></a>
## Internal Changes
These changes do not affect any public interfaces of Rust, but they
represent
significant improvements to the performance or internals of rustc and
related
tools.
- [Update to LLVM 18](https://togithub.com/rust-lang/rust/pull/120055/)
- [Build `rustc` with 1CGU on
`x86_64-pc-windows-msvc`](https://togithub.com/rust-lang/rust/pull/112267/)
- [Build `rustc` with 1CGU on
`x86_64-apple-darwin`](https://togithub.com/rust-lang/rust/pull/112268/)
- [Introduce `run-make` V2 infrastructure, a `run_make_support` library
and port over 2 tests as
example](https://togithub.com/rust-lang/rust/pull/113026/)
- [Windows: Implement condvar, mutex and rwlock using
futex](https://togithub.com/rust-lang/rust/pull/121956/)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/crate-ci/typos).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 13:09:21 -04:00
|
|
|
toolchain: "1.78" # STABLE
|
2021-07-01 16:45:56 -04:00
|
|
|
components: rustfmt
|
2022-12-01 12:54:48 -05:00
|
|
|
- uses: Swatinem/rust-cache@v2
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Check formatting
|
|
|
|
run: cargo fmt --all -- --check
|
|
|
|
clippy:
|
|
|
|
name: clippy
|
|
|
|
runs-on: ubuntu-latest
|
2023-03-29 15:33:22 -04:00
|
|
|
permissions:
|
|
|
|
security-events: write # to upload sarif results
|
2021-07-01 16:45:56 -04:00
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
2023-09-30 23:30:16 -04:00
|
|
|
uses: actions/checkout@v4
|
2021-07-01 16:45:56 -04:00
|
|
|
- name: Install Rust
|
2023-03-29 15:33:22 -04:00
|
|
|
uses: dtolnay/rust-toolchain@stable
|
2021-07-01 16:45:56 -04:00
|
|
|
with:
|
chore(deps): Update Rust Stable to v1.78 (#1011)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [STABLE](https://togithub.com/rust-lang/rust) | minor | `1.77` ->
`1.78` |
---
### Release Notes
<details>
<summary>rust-lang/rust (STABLE)</summary>
###
[`v1.78`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1780-2024-05-02)
[Compare
Source](https://togithub.com/rust-lang/rust/compare/1.77.0...1.78.0)
\==========================
<a id="1.78.0-Language"></a>
## Language
- [Stabilize `#[cfg(target_abi =
...)]`](https://togithub.com/rust-lang/rust/pull/119590/)
- [Stabilize the `#[diagnostic]` namespace and
`#[diagnostic::on_unimplemented]`
attribute](https://togithub.com/rust-lang/rust/pull/119888/)
- [Make async-fn-in-trait implementable with concrete
signatures](https://togithub.com/rust-lang/rust/pull/120103/)
- [Make matching on NaN a hard error, and remove the rest of
`illegal_floating_point_literal_pattern`](https://togithub.com/rust-lang/rust/pull/116284/)
- [static mut: allow mutable reference to arbitrary types, not just
slices and arrays](https://togithub.com/rust-lang/rust/pull/117614/)
- [Extend `invalid_reference_casting` to include references casting to
bigger memory layout](https://togithub.com/rust-lang/rust/pull/118983/)
- [Add `non_contiguous_range_endpoints` lint for singleton gaps after
exclusive ranges](https://togithub.com/rust-lang/rust/pull/118879/)
- [Add `wasm_c_abi` lint for use of older wasm-bindgen
versions](https://togithub.com/rust-lang/rust/pull/117918/)
This lint currently only works when using Cargo.
- [Update `indirect_structural_match` and `pointer_structural_match`
lints to match RFC](https://togithub.com/rust-lang/rust/pull/120423/)
- [Make non-`PartialEq`-typed consts as patterns a hard
error](https://togithub.com/rust-lang/rust/pull/120805/)
- [Split `refining_impl_trait` lint into `_reachable`, `_internal`
variants](https://togithub.com/rust-lang/rust/pull/121720/)
- [Remove unnecessary type inference when using associated types inside
of higher ranked
`where`-bounds](https://togithub.com/rust-lang/rust/pull/119849)
- [Weaken eager detection of cyclic types during type
inference](https://togithub.com/rust-lang/rust/pull/119989)
- [`trait Trait: Auto {}`: allow upcasting from `dyn Trait` to `dyn
Auto`](https://togithub.com/rust-lang/rust/pull/119338)
<a id="1.78.0-Compiler"></a>
## Compiler
- [Made `INVALID_DOC_ATTRIBUTES` lint deny by
default](https://togithub.com/rust-lang/rust/pull/111505/)
- [Increase accuracy of redundant `use`
checking](https://togithub.com/rust-lang/rust/pull/117772/)
- [Suggest moving definition if non-found macro_rules! is defined
later](https://togithub.com/rust-lang/rust/pull/121130/)
- [Lower transmutes from int to pointer type as gep on
null](https://togithub.com/rust-lang/rust/pull/121282/)
Target changes:
- [Windows tier 1 targets now require at least Windows
10](https://togithub.com/rust-lang/rust/pull/115141/)
- [Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1
Windows](https://togithub.com/rust-lang/rust/pull/120820/)
- [Add `wasm32-wasip1` tier 2 (without host tools)
target](https://togithub.com/rust-lang/rust/pull/120468/)
- [Add `wasm32-wasip2` tier 3
target](https://togithub.com/rust-lang/rust/pull/119616/)
- [Rename `wasm32-wasi-preview1-threads` to
`wasm32-wasip1-threads`](https://togithub.com/rust-lang/rust/pull/122170/)
- [Add `arm64ec-pc-windows-msvc` tier 3
target](https://togithub.com/rust-lang/rust/pull/119199/)
- [Add `armv8r-none-eabihf` tier 3 target for the
Cortex-R52](https://togithub.com/rust-lang/rust/pull/110482/)
- [Add `loongarch64-unknown-linux-musl` tier 3
target](https://togithub.com/rust-lang/rust/pull/121832/)
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.78.0-Libraries"></a>
## Libraries
- [Bump Unicode to version 15.1.0, regenerate
tables](https://togithub.com/rust-lang/rust/pull/120777/)
- [Make align_offset, align_to well-behaved in all
cases](https://togithub.com/rust-lang/rust/pull/121201/)
- [PartialEq, PartialOrd: document expectations for transitive
chains](https://togithub.com/rust-lang/rust/pull/115386/)
- [Optimize away poison guards when std is built with
panic=abort](https://togithub.com/rust-lang/rust/pull/100603/)
- [Replace pthread `RwLock` with custom
implementation](https://togithub.com/rust-lang/rust/pull/110211/)
- [Implement unwind safety for Condvar on all
platforms](https://togithub.com/rust-lang/rust/pull/121768/)
- [Add ASCII fast-path for
`char::is_grapheme_extended`](https://togithub.com/rust-lang/rust/pull/121138/)
<a id="1.78.0-Stabilized-APIs"></a>
## Stabilized APIs
- [`impl Read for
&Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin)
- [Accept non `'static` lifetimes for several `std::error::Error`
related
implementations](https://togithub.com/rust-lang/rust/pull/113833/)
- [Make `impl<Fd: AsFd>` impl take
`?Sized`](https://togithub.com/rust-lang/rust/pull/114655/)
- [`impl From<TryReserveError> for
io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error)
These APIs are now stable in const contexts:
-
[`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new)
<a id="1.78.0-Cargo"></a>
## Cargo
- [Stabilize lockfile
v4](https://togithub.com/rust-lang/cargo/pull/12852/)
- [Respect `rust-version` when generating
lockfile](https://togithub.com/rust-lang/cargo/pull/12861/)
- [Control `--charset` via auto-detecting config
value](https://togithub.com/rust-lang/cargo/pull/13337/)
- [Support `target.<triple>.rustdocflags`
officially](https://togithub.com/rust-lang/cargo/pull/13197/)
- [Stabilize global cache data
tracking](https://togithub.com/rust-lang/cargo/pull/13492/)
<a id="1.78.0-Misc"></a>
## Misc
- [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as
RUSTC_WRAPPER when building
doctests](https://togithub.com/rust-lang/rust/pull/114651/)
<a id="1.78.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Many unsafe precondition checks now run for user code with debug
assertions enabled](https://togithub.com/rust-lang/rust/pull/120594/)
This change helps users catch undefined behavior in their code, though
the details of how much is checked are generally not stable.
- [riscv only supports split_debuginfo=off for
now](https://togithub.com/rust-lang/rust/pull/120518/)
- [Consistently check bounds on hidden types of `impl
Trait`](https://togithub.com/rust-lang/rust/pull/121679)
- [Change equality of higher ranked types to not rely on
subtyping](https://togithub.com/rust-lang/rust/pull/118247)
- [When called, additionally check bounds on normalized function return
type](https://togithub.com/rust-lang/rust/pull/118882)
- [Expand coverage for `arithmetic_overflow`
lint](https://togithub.com/rust-lang/rust/pull/119432/)
<a id="1.78.0-Internal-Changes"></a>
## Internal Changes
These changes do not affect any public interfaces of Rust, but they
represent
significant improvements to the performance or internals of rustc and
related
tools.
- [Update to LLVM 18](https://togithub.com/rust-lang/rust/pull/120055/)
- [Build `rustc` with 1CGU on
`x86_64-pc-windows-msvc`](https://togithub.com/rust-lang/rust/pull/112267/)
- [Build `rustc` with 1CGU on
`x86_64-apple-darwin`](https://togithub.com/rust-lang/rust/pull/112268/)
- [Introduce `run-make` V2 infrastructure, a `run_make_support` library
and port over 2 tests as
example](https://togithub.com/rust-lang/rust/pull/113026/)
- [Windows: Implement condvar, mutex and rwlock using
futex](https://togithub.com/rust-lang/rust/pull/121956/)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any
time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/crate-ci/typos).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-02 13:09:21 -04:00
|
|
|
toolchain: "1.78" # STABLE
|
2021-07-01 16:45:56 -04:00
|
|
|
components: clippy
|
2022-12-01 12:54:48 -05:00
|
|
|
- uses: Swatinem/rust-cache@v2
|
2023-03-29 15:33:22 -04:00
|
|
|
- name: Install SARIF tools
|
2024-03-28 10:50:22 -04:00
|
|
|
run: cargo install clippy-sarif --locked
|
2023-03-29 15:33:22 -04:00
|
|
|
- name: Install SARIF tools
|
2024-03-28 10:50:22 -04:00
|
|
|
run: cargo install sarif-fmt --locked
|
2023-03-29 15:33:22 -04:00
|
|
|
- name: Check
|
|
|
|
run: >
|
|
|
|
cargo clippy --workspace --all-features --all-targets --message-format=json -- -D warnings --allow deprecated
|
|
|
|
| clippy-sarif
|
|
|
|
| tee clippy-results.sarif
|
|
|
|
| sarif-fmt
|
|
|
|
continue-on-error: true
|
|
|
|
- name: Upload
|
2024-02-29 22:09:12 -05:00
|
|
|
uses: github/codeql-action/upload-sarif@v3
|
2021-07-01 16:45:56 -04:00
|
|
|
with:
|
2023-03-29 15:33:22 -04:00
|
|
|
sarif_file: clippy-results.sarif
|
|
|
|
wait-for-processing: true
|
2023-05-18 15:58:59 -04:00
|
|
|
- name: Report status
|
|
|
|
run: cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated
|
2024-02-08 08:48:29 -05:00
|
|
|
coverage:
|
|
|
|
name: Coverage
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Checkout repository
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Rust
|
|
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
with:
|
2024-02-08 10:07:52 -05:00
|
|
|
toolchain: stable
|
2024-02-08 08:48:29 -05:00
|
|
|
- uses: Swatinem/rust-cache@v2
|
|
|
|
- name: Install cargo-tarpaulin
|
|
|
|
run: cargo install cargo-tarpaulin
|
|
|
|
- name: Gather coverage
|
|
|
|
run: cargo tarpaulin --output-dir coverage --out lcov
|
|
|
|
- name: Publish to Coveralls
|
|
|
|
uses: coverallsapp/github-action@master
|
|
|
|
with:
|
|
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|