SUPERCILEX / fuc

Modern, performance focused unix commands
Apache License 2.0
340 stars 8 forks source link

rust 1.61.0 support #15

Closed jelmd closed 1 year ago

jelmd commented 1 year ago

Since on Ubuntu LTS 20.04 (focal) - and probably on its derivations, too - rust 1.61.0 is the only supported version, it would be nice to get the fuc compiled there as well. Right now it fails with something like "blabla requires rustc 1.63.0" or even 1.64.0 ...

SUPERCILEX commented 1 year ago

Unfortunately I need a number of nightly features, so no stable version of the compiler will work. I don't expect this to change anytime soon. You'll want to use the prebuilt binaries or rustup: https://doc.rust-lang.org/cargo/getting-started/installation.html

jelmd commented 1 year ago

Hmmm, ok. Idea was to provide it on our cluster nodes. But there only packages are allowed and I build the missing ones with supported compilers, only. Anyway, if users think they need it, they can build, or download, or bench on their own risk ... ;-)

jelmd commented 1 year ago

BTW: x86_64-unknown-linux-gnu binaries do not work as well, because they are linked against GNU libc > 2.31.

SUPERCILEX commented 1 year ago

Hmmm, you'll probably need to use the *-musl variants then (as they're statically linked). 20.04 is pretty old at this point.

andreasstieger commented 1 year ago

I checked and the nightly features you are using are not in 1.68 either. Your choice, but even rolling distributions would appreciate if you found a way to target current rust stable.

SUPERCILEX commented 1 year ago

I really don't want to have to copy all of once_cell, but I dropped some features that should be implemented with other nightly features anyway. So basically this is pending once_cell stabilization.

andreasstieger commented 1 year ago

Thanks. For once_cell it seems there is a crate version at https://docs.rs/once_cell/latest/once_cell/ If that is the last one this would bring fuc to the realm of rust stable

SUPERCILEX commented 1 year ago

Lemme first see if I can get once_cell moving again: it finished its fcp back in January, so it's a little surprising that it hasn't been merged yet. Otherwise, are people building from master or tags? I could potentially just apply a patch before tagging that has stable support and keep master on nightly.

andreasstieger commented 1 year ago

Distros can build from any git reference including tags, and any combination of patches on top, including non-contiguous series. I'll volunteer my openSUSE package for fast feedback.

SUPERCILEX commented 1 year ago

Hmmm, ok. I don't want to make any guarantees that I won't return to requiring nightly, but it's currently trival to support building the binaries with stable. cargo test still requires nightly, but that isn't a problem I hope/assume.

Triggered a release: https://github.com/SUPERCILEX/fuc/actions/runs/4536253663 Patch applied in 1.1.7: https://github.com/SUPERCILEX/fuc/commit/e2285aac23a09029303423df29a3de9587f939d8

SUPERCILEX commented 1 year ago

As a sanity check, it'd be helpful if someone could cargo install rmz cpz on stable rust.

andreasstieger commented 1 year ago

Looks good with (at least) rust 1.68, package works. For cargo install rmz cpz see separate issue referred below.