Skip to content

feat: implement v0.1.0-beta.1 blockers#36

Open
CharlesHoskinson wants to merge 1 commit intomasterfrom
feature/beta-blockers
Open

feat: implement v0.1.0-beta.1 blockers#36
CharlesHoskinson wants to merge 1 commit intomasterfrom
feature/beta-blockers

Conversation

@CharlesHoskinson
Copy link
Copy Markdown
Owner

Summary

  • Close 6 of 8 beta blockers (2 were already resolved on master), moving EARS score from 26/50 to 31/50
  • REQ-LC-005: Remove dual runtime path — delete dosbox_step() and MachineContext::step(), update 9 test files
  • REQ-TH-004: Add std::mutex to MixerState for thread-safe compound access from audio callback
  • REQ-EX-004: Expand reentrancy guard (in_step check) to 11 additional API functions
  • REQ-IN-004: Fix text_input atomicity — pre-check slot capacity before enqueueing any events
  • REQ-SR-002: Serialize CPU GPR (EAX-EDI, EIP, EFLAGS, 6 segment registers) in save state, with backward-compat for V4 files
  • REQ-SEC-038: Enforce 64 KB max shader file size in loadCustomShader()
  • REQ-SEC-039: Enforce 256 MB soundfont and 1 MB ROM file size limits

Test plan

  • Verify build passes on all 3 platforms (Windows, Linux, macOS)
  • Run full test suite — all previously-passing tests should still pass
  • Run TSan build to verify mixer mutex resolves data races
  • Verify save/load round-trip preserves CPU register state
  • Verify oversized shader/soundfont files are rejected

Close 6 beta blockers, moving EARS score from 26/50 to 31/50:

- REQ-LC-005: Remove dual runtime path (dosbox_step + MachineContext::step)
- REQ-TH-004: Add std::mutex to MixerState for thread-safe compound access
- REQ-EX-004: Expand reentrancy guard to all API functions reachable from callbacks
- REQ-IN-004: Fix text_input atomicity — pre-check slots before enqueueing
- REQ-SR-002: Serialize CPU GPR (EAX-EDI, EIP, EFLAGS, segment registers)
- REQ-SEC-038: Enforce 64 KB max shader file size
- REQ-SEC-039: Enforce 256 MB soundfont and 1 MB ROM file size limits

REQ-LC-006 and REQ-SEC-038 were already resolved on master.

20 files changed across engine headers, source, tests, and documentation.
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