Commit Graph
194 Commits
Author SHA1 Message Date
coolguy 594704a07d dev: promote DOSBox-X and remove QEMU support 2026-08-16 22:14:50 +09:00
coolguyandClaude Opus 5 4ad3e3097b refactor: derive the milestone bounds from the registry
The highest supported milestone was spelled out in six places across four
files: range(1, 7) and default="m6" in test_cli.py, the same pair in
test_milestones_dosboxx.py, and through=6 in both registry.py and suite.py.
Registering M7 meant finding all six, and missing one failed silently.

Derive MAX_MILESTONE and MILESTONES from CASES instead, and move the mN
selector parser to registry.milestone_number so the pytest module stops
carrying its own copy. Adding cases for a new milestone is now enough for
ferro-test to accept --through/--only for it.

No behaviour change: MAX_MILESTONE evaluates to 6, ferro-test still advertises
{m1..m6} with default m6, and the case snapshot is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BScg8CF1sAAM2zVHAu5zvW
2026-08-16 22:11:36 +09:00
coolguyandClaude Opus 5 c25312135d refactor: rebuild the milestone registry as a table
registry.py was literally `cat registry_m1_m3.py registry_m4_m6.py`, which
left a duplicate `_c` definition and a stray module-level docstring at the
seam. Replace the hand-rolled append loops with five builders -- _emit, _wcl,
_triple, _rejects, _dump_ast -- and express the cases as one ordered list.

The irregularities are now parameters instead of one-off code, each with the
reason recorded:

- _triple(stem=) for M2 castwhil emitting CAST16
- _triple(build_source=) for M4 prop, which emits PROP.C but compiles
  PROPTEST.C because that file #includes it
- _triple(run_suffix="trap", run_ok=False) for the M3 bounds cases
- _triple(emit_suffix=None) for M4, whose ids lack the -emit suffix
- _emit(output_first=True) for M6, which passes -o before the input

The three scattered 8.3 output-name mappings collapse into one _OUT83 table
keyed by (milestone, name). The key needs both: bad-type is BAD-TY in M2 but
BAD-TYP in M4, and bad-cond is BAD-CO in M2 but unshortened in M5. Values are
carried over verbatim -- the shortenings are inconsistent and several were
never required, but that is a separate decision.

suite.py keeps only Case and drops the all_cases forwarder, so the
registry -> suite -> registry cycle is gone along with the function-scoped
import that worked around it. dosboxx.py still imports Case from suite and is
untouched.

Verified behaviour-preserving by snapshotting (id, milestone, command,
expect_success) for all 150 cases in order before and after: diff is empty.
pytest collects the same 151 items.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BScg8CF1sAAM2zVHAu5zvW
2026-08-16 22:11:13 +09:00
정시원 f946b14bde fix: keep M7 return context through if branches 2026-08-16 22:09:04 +09:00
정시원 24a99abd37 restore M7 fixture README 2026-08-16 22:01:07 +09:00
정시원 abbfdb3092 remove temporary M7 smoke workflow 2026-08-16 22:00:59 +09:00
정시원 7d76167179 document M7 smoke coverage 2026-08-16 21:57:34 +09:00
정시원 bdb307ffcc ci: focus M7 smoke on build errors 2026-08-16 21:56:18 +09:00
정시원 594a837003 ci: smoke test M7 compiler branch 2026-08-16 21:55:41 +09:00
정시원 53f4d79c4f expose ownership flags to M7 emitter 2026-08-16 21:55:28 +09:00
정시원 a2d7dffcae wire M7 DOS build 2026-08-16 21:55:00 +09:00
정시원 1856e99a61 wire M7 checker and emitter 2026-08-16 21:54:50 +09:00
coolguy 0dada80e65 test: unify registry and capture Watcom diagnostics 2026-08-16 21:54:22 +09:00
정시원 8a2e6ddd1e implement M7 C emission 2026-08-16 21:52:57 +09:00
정시원 1e90eba1be implement M7 semantic checker 2026-08-16 21:44:46 +09:00
coolguy 3a7d7de0d3 test: add unified DOSBox-X milestone runner 2026-08-16 21:44:39 +09:00
정시원 369aeb3b86 initialize contextual semantic metadata 2026-08-16 21:42:29 +09:00
정시원 a32ad3182a carry contextual M7 type metadata 2026-08-16 21:42:20 +09:00
정시원 c5e2496415 remove temporary M7 ownership overlay 2026-08-16 21:40:31 +09:00
정시원 b79970241a extend ownership through M7 wrappers 2026-08-16 21:40:22 +09:00
정시원 e0232a3e92 extend ownership for M7 wrapper types 2026-08-16 21:37:31 +09:00
정시원 5be7a5b852 preserve optional if-let patterns 2026-08-16 21:35:11 +09:00
정시원 8e23a6269b implement M7 optional and nominal result types 2026-08-16 21:34:10 +09:00
정시원 8ac76aed39 extend M7 type construction 2026-08-16 21:33:02 +09:00
정시원 411c86afc2 extend M7 semantic helpers 2026-08-16 21:32:46 +09:00
정시원 8b1efe3562 complete M7 type metadata 2026-08-16 21:32:34 +09:00
정시원 aeec10af48 Merge pull request #8 from sebastianrcnt/agent/m7-core-foundation
add M7 semantic and cleanup foundation
2026-08-16 21:20:05 +09:00
정시원 d43f28d06a wire M7 foundation into DOS build 2026-08-16 21:17:57 +09:00
정시원 bc9792532d wire M7 foundation into host build 2026-08-16 21:17:45 +09:00
정시원 47ef8420a9 add optional type kind 2026-08-16 21:17:33 +09:00
정시원 8aae7d9a63 implement cleanup lowering plan 2026-08-16 21:17:15 +09:00
정시원 40ec131ffc add cleanup lowering plan 2026-08-16 21:16:46 +09:00
정시원 c4f3accbb3 implement M7 semantic foundation 2026-08-16 21:16:30 +09:00
정시원 9c3cae7406 add M7 semantic foundation 2026-08-16 21:16:14 +09:00
정시원 43fa9c9bc9 Merge pull request #7 from sebastianrcnt/codex/m6-borrow-checker
Implement M6 borrow checker integration
2026-08-16 20:49:38 +09:00
coolguy aba9370ea6 implement M6 borrow checker integration 2026-08-16 20:46:45 +09:00
정시원 db0ed4bbe0 Merge pull request #6 from sebastianrcnt/agent/m6-ownership-core
implement M6 ownership analysis core
2026-08-16 20:01:32 +09:00
coolguy 748505513d test: audit M6-M9 fixtures for v0.1.8 2026-08-16 20:00:27 +09:00
정시원 3bcf6a33f1 tighten M6 ownership core semantics 2026-08-16 19:59:01 +09:00
정시원 8c4ec8a6e6 complete M6 ownership core primitives 2026-08-16 19:58:18 +09:00
정시원 db2b681f6b implement M6 ownership core 2026-08-16 19:57:15 +09:00
정시원 5981d2b5b1 add M6 ownership core interfaces 2026-08-16 19:56:15 +09:00
정시원 37f092196d Merge pull request #4 from sebastianrcnt/agent/extract-m5-ownership
refactor: extract M5 ownership analysis
2026-08-16 19:50:49 +09:00
정시원 2832888673 Merge pull request #5 from sebastianrcnt/codex/freeze-m6-m9-semantics
freeze M6-M9 semantics and unit model
2026-08-16 19:50:25 +09:00
coolguy 3de0564650 freeze M6-M9 semantics and unit model 2026-08-16 19:48:19 +09:00
정시원 db51611225 route M5 ownership state through own.c 2026-08-16 19:47:19 +09:00
정시원 5c88872ef0 wire ownership helper into DOS build 2026-08-16 19:45:20 +09:00
정시원 accc7dd94a wire ownership helper into compiler build 2026-08-16 19:45:09 +09:00
정시원 89cd035011 extract M5 ownership state helpers 2026-08-16 19:45:02 +09:00
정시원 7fd575859a extract M5 ownership state helpers 2026-08-16 19:44:51 +09:00