dev: restore core=dynamic; the trap failures were the PATH bug
The previous commit blamed core=dynamic for the M3 bounds cases exiting 0
instead of trapping. That was wrong. Both suspects were live at the time --
the recompiler and a cache hit that skipped BUILD.BAT's `set PATH` -- and the
core was ruled out before the PATH line was restored, so the test proved
nothing.
Retested with the PATH fix in place: core=dynamic gives 50 passed on m3, the
traps included. abort() reports its exit status fine under the recompiler.
Per milestone, warm cache, all green:
m1 2s m2 3s m3 7s m4 3s
m5 3s m6 6s m7 5s 29s total
against 65s on the interpreter.
This commit is contained in:
@@ -287,13 +287,14 @@ def run_suite(cases: list[Case], *, keep: bool = False, show_dos: bool = False,
|
||||
console = run_root / "CONSOLE.LOG"
|
||||
config = run_root / "DOSBOX.CON"
|
||||
config.write_text(
|
||||
# Do not tune [cpu] here. core=dynamic is roughly 5x faster but the
|
||||
# recompiler loses abort()'s exit status -- a program that traps
|
||||
# exits 0 instead, so the M3 bounds cases stop reporting the trap
|
||||
# they exist to prove. Verified against a compiler built under
|
||||
# core=normal, so it is the runtime and not the build.
|
||||
# core=auto leaves real mode on the interpreter, which is where the
|
||||
# 16-bit compiler build spends its time. Nothing here is timing
|
||||
# sensitive -- a compiler and a batch file -- so ask for the
|
||||
# recompiler explicitly. The M3 bounds cases confirm abort() still
|
||||
# reports its exit status under it.
|
||||
f"[log]\nlogfile={console}\n"
|
||||
f"[dosbox]\nlog console=quiet\n",
|
||||
f"[dosbox]\nlog console=quiet\n"
|
||||
f"[cpu]\ncore=dynamic\ncycles=max\n",
|
||||
encoding="ascii",
|
||||
)
|
||||
if cached.is_file():
|
||||
|
||||
Reference in New Issue
Block a user