Open bavshin-f5 opened 1 week ago
1.82 seems too new after all. 1.79 is old enough to be available even in RHEL, so #98 sets the MSRV to 1.79.0 and adds the CI validation.
Leaving the issue open because we want to document some kind of policy, even as arbitrary as "n-2" or "what's available in $distro".
At the moment, we neither set the
rust-version
in the manifests nor test it in the CI. It would be nice to address both items. I'm still undecided between 1.82 (17 October 2024) and 1.79 (13 June 2024) and don't see compelling arguments to go below that. I'm sure these will be quite old by the time we consider the project stable.Non-exhaustive list of benefits we could get from the recent Rust releases (as per https://releases.rs/):
1.83.0 (unreleased)
const_refs_to_static
1.82.0
addr_of(_mut)!
macros and the newly stabilized&raw (const|mut)
are now safe to use with all static items&raw const
and&raw mut
operatorsoffset_of!
1.81.0
error_in_core
(could be useful for plannedno_std
conversion)1.80.0
LazyCell
NonNull
methods1.79.0
<*const T>::is_aligned
and<*mut T>::is_aligned
(I intend to use these for assertions, even though we assumed that everything coming out ofngx_p(c)alloc
is sufficiently aligned. Certain Rust types require 16-byte alignment)cargo add
(but not the MSRV-aware resolver)1.78.0
1.77.0
cargo::
syntax in the buildscripts1.76.0
ptr::{from_ref, from_mut}
1.75.0
mem::zeroed
in const contexts1.71.0
1.63.0