RandomSpace named-axis builder (RandomBinder sibling to SweepBinder) #79
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Friction (fieldtest 0049): RandomSpace has no named-axis builder
The grid sweep has a fluent by-name sibling —
Composite::axis("sma_cross.fast", ...).sweep(run)(theSweepBinder) — which resolves axes againstparam_space()by name, so a mis-ordered or mis-counted axis is structurally impossible.RandomSpace(cycle 0049) has no counterpart: the author must buildVec<ParamRange>in exactlyparam_space()slot order and pass it positionally toRandomSpace::new(&space, ranges, count, seed). TheArity/RangeKindMismatchchecks catch a wrong count or a kind-swapped slot, but a same-kind transposition (e.g. swapping the twoI64ranges forfast.lengthandslow.length) passes validation silently and tunes the wrong knob over the wrong interval — the exact failure class the namedSweepBinderwas built to remove for the grid axis.Proposed: a
RandomBindersibling toSweepBindermappingname -> ParamRangeagainstparam_space(), so the by-name resolution that protects the grid sweep also protects the random sweep.context: surfaced by the cycle-0049 fieldtest (docs/specs/fieldtest-0049-random-sweep.md, "no named-axis builder" finding). Pairs with the named↔positional sweep-ergonomics surface in sweep.rs.