diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index 93201a19..fda679a5 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -64,7 +64,7 @@ Each cluster below is one commit. Order is rough — a loop agent may skip ahead 15. **[pending] `transition` query-ref + multi-prop + initial** — `transition` 3 tests. Expected: +2-3. -16. **[in-progress] `send can reference sender`** — 1 assertion fail. Expected: +1. +16. **[done (+1)] `send can reference sender`** — 1 assertion fail. Expected: +1. 17. **[pending] `tell` semantics** — `tell / attributes refer to the thing being told`, `does not overwrite me symbol`, `your symbol represents thing being told` (3 tests). Expected: +3. @@ -158,6 +158,9 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests (Reverse chronological — newest at top.) +### 2026-04-23 — cluster 16 send can reference sender +- **ed8d71c9** — `HS: send can reference sender (+1 test)`. Three parts: (a) `emit-send` builds `{:sender me}` detail instead of nil for `send NAME target` and `send NAME`. (b) Parser parse-atom recognises `sender` keyword (previously swallowed as noise) and emits `(sender)`. (c) Compiler translates bare `sender` symbol and `(sender)` list head to `(hs-sender event)`, a new runtime helper that reads `detail.sender`. Suite hs-upstream-send: 7/8 → 8/8. Smoke 0-195: 162/195 unchanged. + ### 2026-04-23 — cluster 14 unless modifier (blocked, reverted) - Attempted: parser `cl-collect` handles `cmd unless cond` by emitting `(hs-unless-wrap cond cmd)`, compiler adds a `hs-unless-wrap` case that translates to `(if (hs-falsy? cond) cmd nil)`. Compile output correct. But test fails with `Undefined symbol: _test-result` suggesting the test-harness thunk eval throws somehow. Also added a generator pattern for `classList.add/remove/toggle` but that alone didn't fix the test. Reverted per abort rule; compile-shape fix looks sound and should be revisited after clusters that don't depend on harness internals.