Conversation
added 2 commits
September 7, 2026 16:53
Enabling `arctic` enabled arctic's default features, which are `std` plus an
SMR backend, so a crate that declares `#![no_std]` quietly linked one anyway.
arctic 0.1.11 is the first release where this is fixable: before it,
`smr-ps-reclaim` forced `std` on by itself.
--features arctic arctic-wt [smr-ps-reclaim] ps-reclaim [libc,spin]
--features arctic,std arctic-wt [smr-ps-reclaim,std] ps-reclaim [libc,spin,std]
`congee` and `wti` now state `std` in the manifest, because neither crate is
no_std upstream and pretending otherwise only moves the failure later.
CI grows three steps in the existing job, no new runner:
- the core and `hydrate` build for x86_64-unknown-none, which has no `std`
to find, so the no_std claim is checked against a target rather than a host
- the arctic graph is asserted to carry no `std` feature; the assertion was
run against `--features arctic,std` first to prove it can fail
The arctic backend itself cannot target bare metal: ps-reclaim stores its
participant slot in thread-local storage and its no_std path is pthread keys,
so it needs an OS. no_std here means no standard library, not no operating
system, and that distinction is now written down instead of assumed.
pathscale
force-pushed
the
feat/hydrate
branch
from
September 7, 2026 09:53
958ed5f to
1803f22
Compare
pathscale
force-pushed
the
feat/no-std-backends
branch
from
September 7, 2026 09:53
26b2622 to
29d6a0c
Compare
Owner
Author
|
Folded into #4. Same commits, no new branch. |
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.
Stacked on #5, which is stacked on #4. Merge order is #4, #5, then this one.
The bug this fixes
worktable-vecdeclares#![no_std]. Enabling thearcticfeature enabled arctic's default features, which arestdplus an SMR backend, so the crate linked a standard library it says it does not use. Nobody noticed because it was only ever built on a host that has one.arctic 0.1.11 is the first release where this is fixable at all: until pathscale/arctic-wt#9 landed today,
smr-ps-reclaimforcedstdon by itself, sono_std+ reclamation was not a combination that existed.A
stdfeature now exists and forwards; it is off by default, because the core never needed one.congeeandwtigained"std"in their feature lists. Neither crate isno_stdupstream —congee-wthas no#![no_std]at all andWorkTablesIndex'sconcurrentfeature pullsparking_lot— so the manifest now says so instead of failing later at link time.What is actually no_std, precisely
x86_64-unknown-nonehydratearcticcongee,wtiThe arctic row is not a defect to fix here. ps-reclaim keeps its participant slot in thread-local storage, and its
no_stdpath is pthread keys, so it needs an operating system.no_stdmeans no standard library, not no operating system, and the distinction is now written down rather than assumed. A bare-metal reclamation backend would need a slot mechanism that does not exist yet; that is a ps-reclaim question, not this crate's.The verifier
A rule with no check is a comment. CI grows three steps inside the existing job — no new runner:
hydratebuild forx86_64-unknown-none, a target with nostdto find, so the claim is checked against a target instead of a hoststdfeatureThe assertion was run against
--features arctic,stdfirst and it failed there, which is the only evidence that it can fail at all.Checks
Version 0.1.5, covering #4, #5 and this — one publish for the series rather than three.