HS: scoreboard 1511/1511 (3 architectural skips remaining)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 50s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 50s
This session cleared 15 of the 18 documented skips:
- Toggle parser ambiguity (1) — 2-token lookahead in parse-toggle
- Throttled-at modifier (1) — parser + emit-on wrap + runtime hs-throttle!/hs-debounce!
- Tokenizer-stream API (13) — hs-stream wrapper + 15 stream primitives
Plus a perf fix in compiler.sx (hoisted throttle/debounce helpers to
module level so they don't get JIT-recompiled per emit-on call). Wall
time for full batched suite: 28m45s, was 26m17s before sync (so net
+18 tests cost only +2m even though 3x more work).
Remaining skips (3):
- Template-component scope tests (2) — needs <script type="text/
hyperscript-template"> custom-element bootstrap registrar.
- Async event dispatch (1) — repeat until event needs the OCaml
kernel to release the JS event loop between iterations.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,22 +4,24 @@ Live tally for `plans/hs-conformance-to-100.md`. Update after every cluster comm
|
||||
|
||||
```
|
||||
Baseline: 1213/1496 (81.1%) initial scrape
|
||||
Snapshot: 1496/1514 upstream sync 2026-05-08 (+18 new upstream tests)
|
||||
Conformance: 1496/1496 (100.0%) on counted tests; 18 documented architectural skips
|
||||
Wall: 26m17s sequential (8 batches × 200) via tests/hs-run-batched.js
|
||||
Target: 1514/1514 — clear the 18 skip list (in progress)
|
||||
Snapshot: 1511/1514 upstream sync 2026-05-08 (+18 new upstream tests)
|
||||
Conformance: 1511/1511 (100.0%) on counted tests; 3 documented architectural skips
|
||||
Wall: 28m45s sequential (8 batches × 200) via tests/hs-run-batched.js
|
||||
Target: 1514/1514 — clear the 3 remaining skips
|
||||
Note: full-suite single-process is unreliable due to JIT cache saturation;
|
||||
use hs-run-batched.js (fresh kernel per batch) for deterministic numbers.
|
||||
|
||||
Cleared this session:
|
||||
- Toggle parser ambiguity → 2-token lookahead in parse-toggle
|
||||
- Throttled-at modifier → parser + emit-on wrap + hs-throttle!/hs-debounce!
|
||||
- Tokenizer-stream API (13) → hs-stream wrapper + 15 stream primitives
|
||||
```
|
||||
|
||||
## Skip list (18 — work to do)
|
||||
## Skip list (3 — work remaining)
|
||||
|
||||
| Skip | Reason | Estimated work |
|
||||
|------|--------|----------------|
|
||||
| **Tokenizer-stream API (13)** — `matchToken`, `matchTokenType`, `matchOpToken`, `matchAnyToken*`, `peekToken`, `consumeUntil`, `consumeUntilWhitespace`, `pushFollow`/`popFollow`, `pushFollows`/`popFollows`, `clearFollows`/`restoreFollows`, `lastMatch`, `lastWhitespace` | Upstream exposes a streaming token API on `_hyperscript.internals.tokenizer`. Our `hs-tokenize` returns a flat list; parser holds stream state internally as closures. | Wrap `hs-tokenize` output in a token-stream object exposed as a primitive. ~1-2 days, mostly mechanical. |
|
||||
| **Template-component scope (2)** — `component reads a feature-level set from an enclosing div on first load`, `component reads enclosing scope set by a sibling init on first load` | Upstream supports `<script type="text/hyperscript-template" component="...">` — HTML-template-based custom elements. Our `defcomp` is SX-only; no template-component bootstrap. | Add a `<script type="text/hyperscript-template">` registrar alongside the existing script-tag scanner. ~1 day. |
|
||||
| **Toggle parser ambiguity (1)** — `toggle does not consume a following for-in loop` | Parser greedily consumes `for x in [...]` as `toggle .foo for <duration>`. Need lookahead to distinguish `for <num>ms/s` (duration) from `for <ident> in <expr>` (iteration). | Targeted parser fix in `parse-toggle`. ~2-4 hours. |
|
||||
| **Throttled-at modifier (1)** — `throttled at <time> drops events within the window` | Parser doesn't recognize `throttled at <duration>` as a handler modifier. Currently emits malformed SX (handler body is the literal `throttled` symbol; time expression dangles outside closure). | Parser support + runtime `hs-throttle!` wrapper. ~4 hours. |
|
||||
| **Async event dispatch (1)** — `until event keyword works` | `repeat until event click from #x` suspends the OCaml kernel waiting for a click that the sync test runner can't dispatch (kernel busy, JS event loop blocked). | Architectural — requires either yielding to the JS event loop between iterations, or a different test-runner shape that can interleave event injection. ~2-3 days. |
|
||||
|
||||
## Cluster ledger
|
||||
|
||||
Reference in New Issue
Block a user