Skip to content

Release 0.5.0 and migrate to ATRAPS LLC - #1

Merged
BinFlip merged 4 commits into
mainfrom
chore/llc-migration
Aug 10, 2026
Merged

Release 0.5.0 and migrate to ATRAPS LLC#1
BinFlip merged 4 commits into
mainfrom
chore/llc-migration

Conversation

@BinFlip

@BinFlip BinFlip commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Carries the unreleased 0.5.0 work plus the ownership migration, per TRANSFER.md.

fix: establish substitutions and definitions rather than stating them — was already staged in the index, unreleased. Correctness of the SSA rebuild and the phi transforms; every defect shares a shape, a value substitution or definition record that was stated rather than established.

On a 125 MB x86-64 reference binary (50,000 functions): pass rollbacks 6,094 → 0, verifier-reported undefined uses ~28,960 → 0, no function floored by normalization. Output 6% leaner (10,089,320 → 9,490,820 lowered rows) while landing 4% more rewrites (94,257 → 98,467), because rejected work is no longer discarded wholesale. Bumps serde to 1.0.229.

Two defects in that work would have failed CI and are fixed in the same commit: a let-and-return in ir/function/rebuild.rs that trips clippy::let_and_return under CI’s own invocation, and cargo fmt violations in editor.rs, rebuild.rs, and transforms.rs.

chore: assign copyright

  • The Apache-2.0 appendix was never filled in — still the literal [yyyy] [name of copyright owner], so nothing in this repo stated who owned it. Now Copyright 2026 ATRAPS LLC.
  • Added a repository field. The manifest declared documentation but no repository at all, so crates.io has shown no source link for any published version of this crate.
  • NOTICE added; authors dropped; README names the holder; the 0.5.0 changelog entry gains an Ownership subsection.

ci: trusted publishing — a short-lived OIDC token bound to this repo and workflow replaces the stored CARGO_REGISTRY_TOKEN, and the job refuses to publish a release whose commit is not contained in main.

No CI lint-scope change needed: this repo already runs cargo clippy --all-targets --all-features -- -D warnings.

Verified locally: 746+ tests across 8 suites pass, clippy clean under both CI and --all-targets --all-features, fmt clean, cargo package ships LICENSE, NOTICE, CHANGELOG.md.

Note: rustfmt.toml sets imports_granularity and group_imports, which are nightly-only and silently ignored on stable — so neither local runs nor CI are applying them today.

BinFlip added 4 commits August 9, 2026 18:07
Correctness of the SSA rebuild and the phi transforms. Every defect
here shares a shape: a value substitution or a definition record that
was *stated* rather than *established* — a chain composed without
resolving to a surviving target, a label asserting a definition that did
not exist, or a rewrite recorded before its operands were known good.

On a 125 MB x86-64 reference binary (50,000 functions), pass rollbacks
went from 6,094 to 0 and verifier-reported undefined uses from ~28,960
to 0; no function is now floored by normalization. Output is 6% leaner
(10,089,320 to 9,490,820 lowered rows) while landing 4% more rewrites
(94,257 to 98,467), because rejected work is no longer discarded
wholesale.

Release 0.5.0. Bumps serde to 1.0.229.
Record ATRAPS LLC as copyright holder following the executed IP
assignment. The Apache-2.0 appendix was never filled in — it still
carried the literal "[yyyy] [name of copyright owner]" placeholder, so
nothing in this repo stated who owned it.

Also add a `repository` field. The manifest declared `documentation` but
no repository at all, so crates.io has shown no source link for any
published version of this crate.

- LICENSE: appendix now reads "Copyright 2026 ATRAPS LLC"
- NOTICE: added, per Apache-2.0 section 4(d) attribution channel
- Cargo.toml: drop deprecated `authors`; add `repository`
- README: name the holder in the license section
Replace the long-lived CARGO_REGISTRY_TOKEN repo secret with a
short-lived OIDC token minted per run by crates-io-auth-action and
revoked when the job ends.

Also gate the job on the release commit being contained in main: a
release can be cut from any commit, including one that never landed on
main, so the `release: published` trigger alone does not imply it.
`[`SsaRollbackPolicy::Never`](crate::ir::function::SsaRollbackPolicy::Never)`
spells out a destination the label already resolves to, which
`rustdoc::redundant_explicit_links` denies at crate level. Two sites in
ir/function/mod.rs failed the Docs job.

Only reproducible with CI's full invocation — `cargo doc --no-deps
--all-features --document-private-items`. A plain `cargo doc --no-deps`
does not reach them.
@BinFlip
BinFlip merged commit 6ea81e2 into main Aug 10, 2026
9 checks passed
@BinFlip
BinFlip deleted the chore/llc-migration branch August 10, 2026 01:17
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.

1 participant