compiler: a test program may hold a phase handler - the test runner called @rt_init whenever the program had systems, and a handler alone makes none (LLVM: use of undefined value '@rt_init'); it calls it only when it exists, as an entry program's main does; a ludic test case with a handler (added, not run); reseeded, bootstrap-cfree fixpoint holds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-30 00:34:34 +03:00
parent eaeadc6a52
commit 9a0011c38f
5 changed files with 3187 additions and 3150 deletions

View file

@ -161,7 +161,7 @@ function emit_test_runner() -> void {
emit(`{lrun0}:\n`)
emit(" call void @L_init_runtime()\n")
if has_ecs() { emit(" call void @L_grow(i32 1)\n") }
if has_ecs() { emit(" call void @rt_init()\n") }
if (find_fn("rt_init") != null) { emit(" call void " + fn_sym("rt_init") + "()\n") } # as emit_main: a handler alone makes no rt_init
emit(" call void @L_init_globals()\n")
i = 0
while i < len(g_tests) {

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff