As of Rust 1.68, the uefi crates work on stable. Remove the
`channel = "nightly"` setting from `rust-toolchain.toml` and
`template/rust-toolchain.toml`.
Related changes:
* The CI job to compile with the MSRV has been changed from `nightly-2022-11-22`
to `1.68`. So for now the MSRV job isn't checking anything that isn't already
checked by other jobs, but once 1.69 comes out it will.
* The CI job to test the latest crates.io release still needs the nightly
toolchain until we do a new release.
* Some of the uefi-macros compiler ui tests have been modified so that the error
output matches the errors produced by stable compiler, which are currently
slightly different in a few cases from the nightly compiler. In particular,
the precise spans we output for errors in the guid macros don't work on
stable, because proc-macro's Literal::subspan method is currently unstable.
The `abi_efiapi` feature has been stabilized, so in the very latest nightlies we
get this warning from enabling it:
the feature `abi_efiapi` has been stable since 1.68.0-nightly and no longer requires an attribute to enable
We don't want to stop using `#![feature(abi_efiapi)]` just yet though, because
that would require raising our nightly MSRV to 2023-01-13. So for now, to get
the CI passing again, turn off the `stable_features` warning.
In the `uefi-macros` tests, just remove `#![feature(abi_efiapi)]` since that
code is only run when developing uefi-rs, not when using it.
To prevent confusion, this renames the `alloc` crate feature to
`global_allocator` and the `exts` feature to `alloc` to match the
conventions of the ecosystem.
Temporarily modify rust-toolchain.toml to pin to `nightly-2022-08-26`,
as compilation is broken on current nightly due to
https://github.com/rust-osdev/uefi-rs/issues/500. `nightly-2022-09-01`
is the most recent nightly that avoids the bug, but it doesn't have miri
(which is run by CI), so pin to a slightly older version.
Also pinned the toolchain in the template app.
This change should be reverted once #500 is fixed.