Repository navigation
Turn the core's std off, which the std feature could never do - #3
Merged
Merged
Conversation
The wrapper depended on `parking_lot_lite_hack_core` without
`default-features = false`, and that core has `default = ["std"]`. So the
core linked `std` in every build, and this crate's own `std` feature, which
exists to say otherwise, could not turn it off:
before, --no-default-features parking_lot_lite_hack_core [default,std]
after, --no-default-features parking_lot_lite_hack_core []
after, --features std parking_lot_lite_hack_core [std]
That makes the fork's own reason for existing untested. `no-std.yml` checks
the core directly with `-p ... --no-default-features`, and those lines were
real. Every line without `-p` went through this crate, so
`cargo check --no-default-features` and `--test no_std_backends` were
exercising a std core and passing for the wrong reason.
cargo test 36 + 1 + 1 + 4 passed
cargo check --no-default-features clean
cargo check clean
0.12.6. Publishing here is manual, so the version bump is the only thing this
commit does about release.
This was referenced Sep 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This crate exists to be parking_lot's
MutexandRwLockwithoutstd. It has not been that in any build.The wrapper depends on
parking_lot_lite_hack_corewithoutdefault-features = false, and that core carriesdefault = ["std"]. So the core linkedstdunconditionally, and this crate'sstdfeature — the whole point — could not turn it off.One line:
default-features = falseon that dependency.Why nothing caught it
no-std.ymlis not wrong, it is half right. The lines naming the core directly were testing the real thing:Every line that goes through the wrapper was not:
tests/no_std_backends.rs, the file whose name is the claim, was exercising astdcore and passing for the wrong reason. Those same commands are now checking what they say.Who this was breaking
WorkTablesIndexis being ported tono_stdand takes this crate for itsMutexandRwLock. With the leak,WorkTablesIndex --no-default-featuresstill pulled astdcore, so its ownno_stdclaim would have been false in a real build no matter what it did.Checks
Version 0.12.6. Publishing here is manual (release-plz is
workflow_dispatchin this fork), so this needs a deliberate publish before WorkTablesIndex can require it.