rust-num / num-complex

Complex numbers for Rust
Apache License 2.0
232 stars 49 forks source link

add rkyv support #108

Closed zyansheep closed 2 years ago

zyansheep commented 2 years ago

Should be good to merge now... Wish I could run the workflows to make sure though :)

zyansheep commented 2 years ago

I've been using nightly this whole time to test! So that's why it kept erroring... Doing some more testing with an older version of rust (1.42). I'm getting edition conflicts (hashbrown updated in v0.12 to edition 2021) so I don't think this PR will be possible if num-complex stays at edition 2018.

On that note: Is it really necessary to continue to support such an old edition of rust? It seems like the supermajority of popular crates don't continue to support before 1.56 (https://lib.rs/stats) due to either edition 2021, or like in rkyv's case, a broken dependency.

cuviper commented 2 years ago

MSRV is a hot topic that I don't really want to dig into here... For now, I just want to make sure that the existing features continue to work. I don't mind if an optional dependency (like rkyv) carries a greater Rust requirement, because that moves the conversation to rkyv and its users.

For example, the CI matrix includes 1.36 for rand base support, and ci/test_full.sh filters on that to enable the feature.

I don't think this PR will be possible if num-complex stays at edition 2018.

Note that mixed editions are fine between crates -- num-complex can be on 2018 while other crates are on 2021, as long as the toolchain is new enough for all those that are activated in the build.

zyansheep commented 2 years ago

Wait nvm, hashbrown is an optional dependency, so I should be able to disable that when compiling dev-dependencies. MSRV for rkyv (after some testing effort) is 1.54, so I will add that to the CI files. Hopefully it works this time!