`posix-regex` dependency enforces nightly toolchain
Just documenting this here as the only apparent blocker for building without nightly?:
$ RUSTFLAGS="-C link-arg=-nostartfiles" cargo build --target x86_64-unknown-linux-gnu --release
Compiling posix-regex v0.1.1
Compiling tz-rs v0.7.0
error[E0554]: `#![feature]` may not be used on the stable release channel
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/posix-regex-0.1.1/src/lib.rs:2:33
|
2 | #![cfg_attr(feature = "no_std", feature(alloc))]
| ^^^^^^^^^^^^^^
error[E0554]: `#![feature]` may not be used on the stable release channel
--> /root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/posix-regex-0.1.1/src/lib.rs:4:1
|
4 | #![feature(nll)]
| ^^^^^^^^^^^^^^^^ help: remove the attribute
|
= help: the feature `nll` has been stable since `1.63.0` and no longer requires an attribute to enable
// src/main.rs
fn main() {
println!("Hello, world!");
}
# Cargo.toml
[package]
name = "example"
version = "0.1.0"
edition = "2021"
[dependencies]
std = { version = "0.17.0", package = "eyra" }
c-scape dependency:
https://github.com/sunfishcode/c-ward/blob/aae71b8d3ce608a3ee3701b7646f345f1c649a27/c-scape/Cargo.toml#L39
posix-regex source for the feature(nll) line is here. The crate hasn't been updated for over 5 years though 🤷♂️
The other error for feature(alloc) looks like an attempt was to resolve it 4 years ago (October 2020), with the maintainer chiming in with a response over a year ago (March 2023) regarding resolving a conflict to push that forward. Gitlab being terrible for notifications in my experience the original contributor probably wasn't aware of that or has since moved on to other things.
No expectation for anyone to resolve this, just a tracking issue 👍
c-scape and c-gull both depend on some nightly features too. C-scape depends on c_variadics for defining ioctl and such. c_variadics is unlikely to be stabilized any time soon.
Yes, c-scape and c-gull depend on several nightly-only features. I've now posted #145 to document this.
To elaborate, setjmp etc. depend on naked_functions, pthread_setspecific etc. depend on thread_local, printf depends on c_variadic, malloc depends on linkage so that it can define weak symbols, and various bits of libc static memory use sync_unsafe_cell. In theory some of these things could be made optional, if there are specific use cases that would benefit.