-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
inline the code from unreachable and void #13
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_local
working 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 getcriterion
working 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
unreachable
but it seems not to be merging pull requests.If it is compatible with your
minimum rustc version
policy an alternative is to drop the requirement onunreachable
and use std::hint::unreachable_unchecked insted.