ludic/selfhost
Orkuncakilkaya 0497029dae
All checks were successful
bootstrap / cfree-fixpoint (push) Successful in 22s
ci / build-and-test (push) Successful in 2m21s
commit-lint / conventional-commits (push) Successful in 5s
docs / build-and-deploy (push) Successful in 29s
fix(input): #87 key_pressed/key_released edges never fired under the frame loop
Since #83 the loop commits the device layer once per frame (input_drive), but a
game that ALSO called Input.poll by hand committed a second time in the same
frame; input_device_commit copies in_held into in_prev at the top of every
commit, so the second commit left in_prev == in_held and the edges (held &&
!prev) could never see a transition.

Fix: an in_have_frame_driver flag. The loop's input_drive sets it; a manual
Input.poll under the loop then becomes a no-op returning the frame's key
instead of re-committing. An entry-driven harness has no loop, so the flag
stays false and each Input.poll commits a frame as before (the #7/#50
record/replay + device tests are unchanged). Frame loop now calls input_drive.

Example input_edge (press edge on the down frame, release edge on the up
frame). Full suite 110/0, goldens byte-identical, fixpoint holds.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 07:27:24 +03:00
..
backend fix(input): #87 key_pressed/key_released edges never fired under the frame loop 2026-09-02 07:27:24 +03:00
frontend feat(render): #85 engine sprite-render system + deprecate bare draw_sprite 2026-09-02 07:20:13 +03:00
golden chore(repo): DX cleanup — categorise examples, text-diffable golden, build/ output (#27 #28 #30) 2026-08-30 18:54:21 +03:00
support refactor(selfhost): reorganise into concern-based subdirectories 2026-08-31 00:26:02 +03:00
tests feat(types): tagged-union enums — variant payloads + binding match + exhaustiveness (#56) 2026-09-01 03:07:46 +03:00
ludicc.seed.ll fix(input): #87 key_pressed/key_released edges never fired under the frame loop 2026-09-02 07:27:24 +03:00
main.ludic feat(compiler): dynamic system registration + --emit-module for binary packages (#64) 2026-09-01 07:44:18 +03:00