Skip to content

perf(pm): restore cold_path() hints in the vendored aube hot loops - #553

Merged
colinhacks merged 2 commits into
mainfrom
aube-coldpath
Jul 24, 2026
Merged

perf(pm): restore cold_path() hints in the vendored aube hot loops#553
colinhacks merged 2 commits into
mainfrom
aube-coldpath

Conversation

@colinhacks

Copy link
Copy Markdown
Contributor

Restores the cold_path() hints #442 reverted. Upstream aube pins MSRV 1.91 for mise's distro packaging, but nub vendors aube and builds on stable, so that floor doesn't bind us.

  • 22 core::hint::cold_path() hints on the rare arms of the hot install loops (linker fallbacks, resolver cache-misses, subset-parser bails, tarball rejects). Inert.
  • vendor/aube/Cargo.toml MSRV → 1.95, documented as a deliberate fork delta (kept on every bump; noted in the aube-bump skill).
  • nub root MSRV → 1.95 (nub-cli depends on aube; nub-native already needed it). CI MSRV Check runs root + native on 1.95.0; nub-phantom (aube-free) keeps 1.93.0.

Builds clean on stable locally. Refs #442.

nub vendors aube and builds every binary on current stable, so aube's
upstream MSRV floor (1.91, held there so mise's distro packaging can embed
the crates) does not bind nub. Re-add core::hint::cold_path() on the rare
arms of the hot install loops: linker link-fallbacks, resolver semver
cache-misses, lockfile subset-parser bails, tarball validation rejects.
Behaviorally inert — a codegen hint only.

Raise the vendored aube rust-version to 1.95 (documented in Cargo.toml as a
deliberate fork delta, preserved on every aube bump) and, because nub-cli
depends on aube, the nub root rust-version to 1.95 as well. nub-native
already required 1.95, so this only aligns the root floor with what the full
build needs. The CI MSRV Check job runs the root + native legs on 1.95.0;
nub-phantom (aube-free) keeps its 1.93.0 leg.

Refs #442
Copilot AI review requested due to automatic review settings July 24, 2026 21:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nub Ready Ready Preview, Comment Jul 24, 2026 9:37pm

Request Review

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — restores the 22 core::hint::cold_path() codegen hints #442 reverted and raises the MSRV floor to 1.95 (the version cold_path() stabilized) across the root workspace and vendored aube.

  • cold_path() hints on rare hot-loop arms — 22 inert codegen hints on link-error fallbacks (materialize.rs), parser bails (subset.rs), resolver cache misses (semver_util.rs), and tarball validation rejects (tarball.rs), all on genuinely rare branches.
  • MSRV bump to 1.95vendor/aube/Cargo.toml (1.91 → 1.95) and root Cargo.toml (1.93 → 1.95), each with a provenance comment; the vendored bump is flagged as a deliberate fork delta.
  • CI MSRV Check reordered — aube-free nub-phantom verifies on 1.93.0; the aube-dependent root --all-targets + native checks move to 1.95.0.
  • aube-bump skill documents the fork delta — adds cold_path to the fork-delta grep guard and records the standing 1.95-vs-upstream-1.91 divergence to preserve on every sync.

I verified the load-bearing facts directly: core::hint::cold_path() stabilized exactly in 1.95.0 (per the Rust docs), so the MSRV floor is correct rather than over-conservative; the 22 hints are present and all sit on rare arms; and the CI split is sound — the aube-free workspace keeps its 1.93 floor while everything depending on the vendored engine verifies on 1.95. The hints are behaviorally inert by definition, so there is no runtime risk. vendor/aube/.rules still states msrv 1.93, but that describes upstream aube's floor (intentionally not nub's) and is vendored upstream content the PR correctly leaves untouched.

Pullfrog  | View workflow run | Using Claude Opus𝕏

Raising the workspace rust-version to 1.95 propagated to nub-phantom-core
and nub-phantom-scan (root members), which the aube-free nub-phantom eval
tool depends on — so the MSRV Check job's nub-phantom-on-1.93 leg failed
with "requires rustc 1.95". Only nub-cli actually pulls in the vendored
aube (the sole user of core::hint::cold_path), so set rust-version = "1.95"
on nub-cli alone and restore the workspace floor to 1.93. Every other crate
keeps its 1.93 floor.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — since the prior review at b0d20bc, the only new commit (e52b441) refines the MSRV scoping: instead of raising the whole root workspace floor to 1.95, it keeps the workspace at 1.93 and sets rust-version = "1.95" only on crates/nub-cli. The cold_path() hints themselves are unchanged.

  • Per-crate MSRV floorcrates/nub-cli/Cargo.toml overrides rust-version.workspace = true with an explicit rust-version = "1.95"; the root [workspace.package] floor reverts to 1.93 with an updated provenance comment.
  • CI unchanged in effect — the MSRV Check job still verifies the aube-free nub-phantom on 1.93.0 and the aube-dependent root --all-targets + native on 1.95.0.
  • Skill doc updated — the aube-bump fork-delta note now records that the 1.95 floor lives on nub-cli while the workspace stays at 1.93.

I verified the scoping is precisely correct: the root workspace members are nub-cache-key, nub-cli, nub-core, nub-phantom-core, and nub-phantom-scan, and only nub-cli takes path dependencies into vendor/aube — so a 1.95 floor on nub-cli alone covers exactly the crate that pulls core::hint::cold_path(), leaving the aube-free nub-phantom-* crates buildable on 1.93. nub-native is a separate workspace already at 1.95. rust-version is advisory metadata; compilation of the vendored cold_path() is actually exercised by the CI cargo check --all-targets run under the 1.95.0 toolchain. This is a strict improvement over the prior over-raised workspace floor and remains behaviorally inert.

Pullfrog  | View workflow run | Using Claude Opus𝕏

@colinhacks
colinhacks merged commit 2e27afd into main Jul 24, 2026
53 checks passed
@colinhacks

Copy link
Copy Markdown
Contributor Author

Shipped in v0.6.0: https://github.com/nubjs/nub/releases/tag/v0.6.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants