Skip to content

fix(ILO-472): pin flt named-predicate parity across engines#777

Merged
danieljohnmorris merged 2 commits into
mainfrom
ilo-472-flt-named-predicate
May 23, 2026
Merged

fix(ILO-472): pin flt named-predicate parity across engines#777
danieljohnmorris merged 2 commits into
mainfrom
ilo-472-flt-named-predicate

Conversation

@danieljohnmorris
Copy link
Copy Markdown
Collaborator

Outcome

Tree-walker engine is no longer reachable from the CLI (outcome A path).

The hmac-cookie-parser persona's repro (flt non-empty parts on L t) now produces the correct filtered list on both surviving engines:

  • --vm (default register VM)
  • --jit (Cranelift)

--run-tree / --run were dropped as recognised flags in the rerun8 cleanup (see src/cli/args.rs:147-160); the tree-walker stays in-tree only as the HOF callback runtime that VM/JIT bail to, and that path was never the broken one (VM was reported correct in the original bug). The original divergence is therefore no longer reachable via ilo run.

What this PR does

Adds tests/regression_flt_named_predicate_parity.rs, a cross-engine regression suite that pins flt <named-helper> <L t> and <L n> shapes across every CLI-selectable engine:

  • Persona shape: non-empty s:t>b;>len s 0 + flt non-empty parts on cookie-fragment-like L t (the original bug repro).
  • All-pass / all-fail / empty-input variants of the same shape.
  • Numeric L n variant with is-pos.
  • Named-helper vs inline-lambda equivalence per engine (pins the persona's workaround in lockstep with the named-helper path).

If --features cranelift is enabled the suite runs against --vm and --jit; otherwise just --vm.

Test plan

  • cargo test --features cranelift,http,golden --test regression_flt_named_predicate_parity — 6 passed
  • cargo test --features cranelift,http,golden --lib — 3505 passed
  • cargo test --features cranelift,http,golden --tests — all suites green

Closes ILO-472.

🤖 Generated with Claude Code

Daniel Morris and others added 2 commits May 23, 2026 22:57
Adds a cross-engine regression test for the `hmac-cookie-parser`
persona shape: `flt <named-bool-helper> <L t>`. The persona
reported the tree-walker engine returning the predicate's bool
output instead of the filtered list, while the VM produced the
correct result.

The tree-walker is no longer user-selectable from the CLI
(`--run-tree` / `--run` were dropped in the rerun8 cleanup, see
`src/cli/args.rs:147-160`), so the original divergence is no
longer reachable via `ilo run`. This test pins the surviving
engines (VM default + Cranelift JIT under `--features cranelift`)
on the persona's exact shape plus numeric / empty-list / all-pass
/ all-fail variants, and additionally pins that the named-helper
and inline-lambda surfaces produce identical output per engine so
the persona's workaround can't silently start lying.

Closes ILO-472.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@danieljohnmorris danieljohnmorris force-pushed the ilo-472-flt-named-predicate branch from 9ae97e8 to 43fa030 Compare May 23, 2026 21:58
@danieljohnmorris danieljohnmorris merged commit 08f4dd4 into main May 23, 2026
7 of 10 checks passed
@danieljohnmorris danieljohnmorris deleted the ilo-472-flt-named-predicate branch May 23, 2026 21:59
@codecov
Copy link
Copy Markdown

codecov Bot commented May 23, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
3804 1 3803 0
View the top 1 failed test(s) by shortest run time
ilo::coverage_interpreter::mapr_short_circuits_on_err
Stack Traces | 0.012s run time
thread 'mapr_short_circuits_on_err' (42138) panicked at tests/coverage_interpreter.rs:950:5:
stderr={"code":"ILO-P024","labels":[{"col":49,"end":52,"line":1,"message":"here","primary":true,"start":48}],"message":"fn declarations are top-level only; this one is inside another function's body","notes":[],"severity":"error","suggestion":"use an inline lambda for a one-off helper that captures locals (e.g. `proc = (x:n>n; +x rows)` or `proc = {x> +x rows}`), or lift the helper to the top level and pass the captured value as an explicit parameter"}
{"code":"ILO-T005","labels":[{"col":64,"end":79,"line":1,"message":"","primary":true,"start":63}],"message":"undefined function 'f': its definition failed to parse","notes":["in function 'main'"],"severity":"error","suggestion":"fix the parse error first (see ILO-P024 reported earlier in this file); other references to 'f' are suppressed until then"}

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

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