inline the code from unreachable and void#13
inline the code from unreachable and void#13Amanieu merged 3 commits intoAmanieu:masterfrom Eh2406:minimal-versions
Conversation
|
regex depends on this crate, which tries to be a bit more conservative with its minimal Rust version, so I'm hoping we can stay conservative here. @Amanieu What do you think about just dropping the |
|
How did my pr break the 1.9.0 CI job? It should be using the latest version w/out this PR? |
|
@Eh2406 It wasn't your PR. The lazy-static crate hasn't been that great about maintaining their MSRV. It's technically 1.21 now, but it wasn't always. |
|
The minimum rust version for this crate is basically dictated by regex, which is it's biggest user. @BurntSushi I'm fine with just inlining the unreachable functionality since it is very little code. |
|
I inlined the code from unreachable and void, what do you think? |
|
@Eh2406 LGTM. Thank you! Do you want to just update the CI config to be 1.21 to match lazy static so we can get a green build? |
|
Network error, CI why do you hate me? |
|
You can try |
|
I closed and reopened. We are green! |
|
Great work! Thanks! |
|
Published in 0.3.6. |
|
@BurntSushi While I have your attention, some of your crates are on my queue for this kind of thing, and I was wondering your opinion of Specifically, would you be interested in:
Your thoughts? |
|
@Eh2406 I'm generally in favor of having a I'm not sure how I feel about adding synthetic dependencies though. Doesn't that mean I'm using a dependency that isn't maintained? If so, I'd rather fix that than work-around it. I care a lot about maintaining high standards for which dependencies I bring in, so if there is an unmaintained dependency somewhere, I'm probably willing to do the work to fix that, whatever it takes. Although, I suppose an alternative explanation is that it might be a dependency that is maintained but doesn't want to support |
|
That is entirely reasonable! A major part of this experiment is to find out how Cargo's support feels, and whether it needs to be changed before The Cargo Team recommends it be used widely. |
This bumps the minimal acceptable versions in Cargo.toml to versions that build on modern rust. this gets
thread_localworking with Cargos-Z minimal-versions. This is part of the process of seeing how hard this is for crates to use in preparation for getting it stabilized for use in CI, specifically upstreaming the changes required to getcriterionworking with it. It is easy to use if all of your dependencies support it, but much harder if trying to impose it on them.I would have started with a pr to
unreachablebut it seems not to be merging pull requests.If it is compatible with your
minimum rustc versionpolicy an alternative is to drop the requirement onunreachableand use std::hint::unreachable_unchecked insted.