Skip to content

option values: alternations become choices, bare-word and glued value specs survive - #150

Merged
sadigaxund merged 10 commits into
mainfrom
r10/option-values
Sep 13, 2026
Merged

sadigaxund merged 10 commits into
mainfrom
r10/option-values

Conversation

@sadigaxund

Copy link
Copy Markdown
Collaborator

An option row's value spec is read as what it is now: a delimited alternation of literal values becomes the flag's choices, a bare-word placeholder after a single-dash-long spelling survives, and a glued bracket-and-angle run keeps both halves. Seven seed-7 audit items were one family of value-spec defects, and the alternation rule was narrowed by hand until it refused every metavar that only looks like a choice list.

Fleet sweep against the 0b30c15 baseline, 2269 tools matched, 0 appeared, 0 disappeared: 0 flag losses, 2 flags gained (runuser and su each recovering a real -l, --login), 0 subcommand losses, 0 subcommand gains, 120 tools field-level, of which 118 are a value name corrected and 52 a choices list attached. Twenty field-level rows were read against the tool's own bytes; one fabrication found that way (-one-file-system gaining a value cut from a neighbour's description) is fixed by requiring a real column gap. All nine named controls hold.

sadigaxund and others added 10 commits September 12, 2026 16:24
A value spec that is one delimited alternation of literal values attaches as
the flag's own choices instead of rendering as one opaque placeholder. Covers
the angle, paren and argparse brace forms. docs/shapes.md S-155, S-156.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
[S-157] A table row's bare-word value name (no bracket, no angle
placeholder) survived being dropped into the description's own first
word. Fixed inside the single-dash-long-table gate only.

Moves 57 tools with 0 flag and 0 subcommand losses on a full-PATH
sweep-diff of 2269 tools: Xvfb, mksquashfs, sqfstar, the qemu-*-static
family (42), lshw, ckbcomp, screen, sqlite3, xdpyinfo, xev, xkill,
xlsatoms, ldattach, pod2usage, containerd-shim-runc-v2, docker-proxy.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… a slash alias

A value spec mixing bracket groups and angle placeholders keeps its whole
source spelling, a third single-dash-long spelling after a valued long form
survives, and a `/`-joined alias is read outside a lowdown bullet.
docs/shapes.md S-158, S-160, S-161.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A paren alternation at any member count, a brace alternation only on an
argparse document, and an angle alternation at three or more members or at
two purely numeric ones. Refuses a two-member metavar alternation such as
`<number|name>`. docs/shapes.md S-155.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Both branches wrote corpus/rustc/1.97.1/meta.toml, so its contract carries both
claims: S-155's choices and negative value names, S-158's glued value runs.
Detector registry, round-10 footer and atlas keep both sides.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…r gains

The issue #142 relaxation joined `-c, --copyright` but kept a fabricated value
name, and it fused pod2man's `--lquote` and `--rquote` into one entity. Refused
and recorded in the atlas; icupkg stays xfail. Four snapshots carry real
recovered value tails, each read against its own bytes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mksquashfs's `-one-file-system-x` describes itself as "-one-file-system option
except ...", and that continuation line donated the fabricated value `option`
to `-one-file-system`. A row separates its value from its description by a tab
or two spaces; prose naming a spelling does not. docs/shapes.md S-157.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…y xfail

The three reserved ids had code or a detector but no entry, and cargo-clippy
had no fixture stating that its `/`-joined rows are still unrepaired.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Keep-both in CHANGELOG, docs/shapes.md (numeric order), the detector registry
and xtask/src/coverage/round10.rs. sqfstar's contract takes the union of both
flag lists.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
S-146's compressor sub-labels and S-157's bare-word value recovery compose:
`-Xstrategy` and `-Xbcj` now carry the value names their own rows write.
Two added lines per fixture, nothing removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@sadigaxund
sadigaxund merged commit 30285b5 into main Sep 13, 2026
17 checks passed
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