Skip to content

[Post-0.31][Backend] Evaluate policy dispatch alternatives with measured crossover evidence #37

Closed

Description

@a19q3

Follow-up to #32 and D3. 0.31 retains linear tags and direct action stubs. 0.32 is a planning target only.

Compare the existing dispatcher with saved-selector routing and bounded comparison trees before choosing whether to implement either. A jump table needs a separate exact-target-set decision; no crossover threshold has been accepted.

Acceptance:

  • Use the current immediate planner and unchanged dense/sparse/high-u32 fixture matrix.
  • Report dispatcher bytes and every action's success/rejection cycles separately.
  • Preserve unknown-tag precheck, common-check order, first-failure behavior and selector lifetime.
  • Bind routing to exact decoder/action targets in the independent checker; mutate selector, branch and call targets.
  • Record the chosen threshold or retain the current dispatcher if measurements do not justify a change; run backend and CI gates.

Activity

  1. added this to the 0.32 milestone on Oct 3, 2026
  2. a19q3 commented on Oct 4, 2026

    @a19q3
    CollaboratorAuthor

    Completed the bounded 0.32 dispatch evaluation. Retain the existing linear dispatcher and direct action stubs. No production crossover threshold or new optimization profile is admitted.

    • Balanced routing: 402 paired cases across dense/sparse/high-u32 tags and sizes 1–64; 314 byte/cycle tradeoff rows, 82 favoring linear routing and 6 ties.
    • Saved selector: 804 cases; 205 tradeoff rows and 599 favoring the current design. The two-pass probe includes a clobbering common-check surrogate and distinguishes unknown-tag rejection from common-check failure.
    • Late-action savings do not remove early-path regressions/code growth. The routing microbenchmarks embed the selected input and support only their finite local comparisons; they are not a production threshold or whole-transaction speedup claim.
    • The retained production matrix and independent checker continue to enforce unknown-tag prechecks, common-check/first-failure order, exact decoder/action destinations, selector dataflow and outgoing-argument ownership. No new machine shape is adopted, so the current versioned checker contract remains authoritative.

    See the experiment decisions, paired frontier and historical full-gate record. CI/backend passed at clean source 6a453d3015784784a27ba1aa0a4b6b1a73db79a8; unchanged ceilings and 6,782 comparable metrics passed. Archived source identities are not relabeled as the latest client commit.

    Closure audit on 2026-10-04: all seven archive byte counts/SHA-256 values in that gate record match. Fresh focused replay on the 0.32 checkout based on 35bf983d passed 9 policy-artifact-checker tests and 6 cost_experiments tests, including both dispatch alternatives. Commands: cargo test --locked -p cellscript --test policy_artifact_checker -- --test-threads=1 (run with cost_measurement in the same invocation), and cargo test --locked -p cellscript cost_experiments --lib -- --test-threads=1.

    This resolves the issue's explicit option to retain current routing when measurements do not justify replacement. A jump table or broader routing policy still needs its own design/evidence; none is implied by closure.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions