Skip to content

Conformance triage batch 1: summaries, eshost fix, skip classifications#2

Merged
Sam Gammon (sgammon) merged 6 commits into
mainfrom
compat/triage-batch-1
Jul 18, 2026
Merged

Conformance triage batch 1: summaries, eshost fix, skip classifications#2
Sam Gammon (sgammon) merged 6 commits into
mainfrom
compat/triage-batch-1

Conversation

@sgammon

Copy link
Copy Markdown
Member

Summary

Testsuite-side half of conformance batch 1 (runtime half: elide-dev/WHIPLASH#1347). Driven by a full five-suite triage of the 1.4.1+20260716.b8b6531 reports; per-suite briefings included.

  • Headline summaries now include all five suitesnode-api (25.4%) and wpt-wintertc (75.3%) are no longer muted from the README table, reports/index.md, and pass-rate.svg.
  • eshost shim bug fixed: $262.evalScript swallowed exceptions and returned a {type, value} record, failing 15 test262 executions (language/global-code script-declaration tests) that the runtime actually handles correctly. All 31 evalScript-using tests: 29/15 → 44/0 against the same pinned binary. Run harness/scripts/install-elide-host.sh after pulling.
  • jtreg per-case timeout 300s → 900s: two slow-but-passing tests (file/zip/T6836682, combo-based LambdaParserTest) pass in isolation but starve under full-suite concurrency.
  • 79 skip classifications with per-entry justifications: 42 javac (native-image runtime annotation-processor loading, WHIPLASH #1174 — verified via retained .jtr diagnostics), 37 cpython (subprocess, JVM GC/refcount finalization timing, buffer-export locking, locale, hash internals — verified via per-test reruns). Genuine defects stay tracked as failures.
  • Five per-suite triage briefings documenting current state, failure clusters, and ranked work items.

Notes

  • Expectations ratchet deliberately NOT included: baselines get re-ratcheted after the full-suite verification run against the WHIPLASH#1347 native build, so new passes are absorbed in one step.
  • Harness report/adapter tests: 77/77 pass. The 6 pre-existing eshost-elide unit-test failures reproduce on clean main (environment-dependent) and are untouched by this diff.

🤖 Generated with Claude Code

Sam Gammon (sgammon) and others added 5 commits July 17, 2026 20:58
Empty SUMMARY_MUTED_WORKLOADS so all five suites appear in the README
compat table, reports/index.md, and pass-rate.svg. Regenerated from the
latest committed reports (1.4.1+20260716.b8b6531 / 3d3ea83ed640):
node-api lands at 25.4%, wpt-wintertc at 75.3%.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The shim wrapped the native call in try/catch and returned a {type, value}
record, so assert.throws(SyntaxError, () => $262.evalScript(...)) saw no
exception — failing 15 test262 executions (language/global-code
script-declaration tests) that Elide's native $262 handles correctly.
Delegate directly per test262 INTERPRETING.md. All 31 evalScript-using
tests: 29 pass/15 fail -> 44 pass/0 fail against the same pinned binary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
file/zip/T6836682 and combo-based LambdaParserTest pass in isolation but
hit the 300s per-case wall under full-suite -concurrency:36, where
thousands of concurrent per-compile native-binary launches starve them.
The 1h whole-run wall is unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
javac-jtreg: 42 skips — 40 tests outside tools/javac/processing/ that
compile an annotation processor during the test and load it via
-processor, hitting the same native-image runtime-classloading limit
already classified for tools/javac/processing/** (WHIPLASH #1174); plus
the custom PlatformProvider SPI test and the -J-flag NewLineTest.

cpython-core: 37 skips — subprocess-dependent tests (no child-process
support), JVM GC/refcount finalization timing, buffer-protocol export
locking, native locale internals, and hash-algorithm implementation
details. Genuine defects (34, all GraalPy-fork-resident) remain tracked
as failures.

Every entry carries a one-line justification. Diagnosis details in the
triage reports; classification verified against retained .jtr files and
per-test reruns on the pinned nightly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Self-contained handoff docs (current numbers, run commands, failure
clusters, ranked work items) for test262, wpt-wintertc, cpython-core,
javac-jtreg, and node-api, generated from the 1.4.1+20260716.b8b6531
reports and used to drive the batch-1 triage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sgammon

Copy link
Copy Markdown
Member Author

Compliance CI analysis: cpython-core RED is nightly drift, not this PR

Per-suite outcomes on the 1.4.1+20260718.acbafa6 nightly:

Suite Result Notes
test262 GREEN, +15 new passes exactly the evalScript shim fix (this nightly predates the error-stack change in WHIPLASH#1347)
javac-jtreg GREEN, +2 new passes the two timeout-starved tests recovered with the 900s bump; 42 skips applied
wpt-wintertc GREEN, +2
cpython-core RED, "249 regressions" stale ratchet baseline vs nightly drift — see below

The cpython run's own changes.json (vs the previous 20260716 run) decomposes the red result: added: 3,460, regressed: 2, fixed: 0, removed: 26. The 20260718 nightly expanded the runnable test universe from 1,865 to 5,334 cases (whole modules that previously died at import now run — test_compileall alone contributes 103 newly-visible failures). Newly-visible failing cases count as baseline regressions, hence 249. None of this is reachable from this PR's diff (skip entries can only turn failures into skips).

The 2 genuine pass→fail flips against the previous nightly — test_list.ListTest.test_list_resize_overflow and test_math.MathTests.test_sumprod_stress — come from runtime changes on main between the nightlies and deserve an upstream look.

Resolution: re-ratchet cpython-core against the current nightly to absorb the expanded universe (the documented baseline-reset flow), which will be pushed to this branch after analysis of the local batch-binary verification completes.

🤖 Generated with Claude Code

The 20260718.acbafa6 nightly expanded the runnable cpython universe from
1,865 to 5,334 cases (previously import-crashing modules now run), so the
frozen baseline flagged 249 newly-visible failures as regressions on CI.
Regenerated from that CI run's own results (linux-amd64) via the harness
ratchet functions: 283 known-fail entries. Only 2 entries are genuine
pass->fail flips between nightlies (test_list_resize_overflow,
test_sumprod_stress) — tracked for upstream investigation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sgammon
Sam Gammon (sgammon) merged commit f43a845 into main Jul 18, 2026
1 check failed
@sgammon
Sam Gammon (sgammon) deleted the compat/triage-batch-1 branch July 18, 2026 06:26
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