checker: a function named like a built-in a call always takes is refused at its declaration - function words(st, k) compiled and every call became words(n) with a pointer for n (invalid IR, far from the cause); the table is selfhost/check/check_builtins.ludic, emit_call's built-ins no find_fn guard lets a declared function take, and ludic-dev syntax --check holds it to emit_call both ways; every other built-in (buffer, floats, double, ...) yields to a declared function in the checker as it already did in codegen. string_temps' keep and cross_heap_test's keep renamed (hand, keep_cell); rejected/builtin_call_name and functions/builtin_yield with their cases (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 01:10:24 +03:00
parent 26b986de5b
commit d4df925b8f
13 changed files with 14830 additions and 13043 deletions

View file

@ -44,7 +44,7 @@ program CrossHeapTest {
cs.on[c] = false
}
# the ring kept round chunk (px, pz): those past it out, those in it in, and the broad phase rebuilt
function keep(physics_st: mut PhysicsState, cs: mut CrossState, px: int, pz: int) -> void {
function keep_cell(physics_st: mut PhysicsState, cs: mut CrossState, px: int, pz: int) -> void {
for c in 0 .. N * N {
let near = Math.abs(c % N - px) <= RING and Math.abs(c / N - pz) <= RING
if cs.on[c] and not near { chunk_out(physics_st, cs, c) }
@ -54,8 +54,8 @@ program CrossHeapTest {
phys_step(physics_st)
}
function crossing(physics_st: mut PhysicsState, cs: mut CrossState) -> void {
for k in 0 .. N { keep(physics_st, cs, k, k) }
for k in 0 .. N { keep(physics_st, cs, N - 1 - k, N - 1 - k) }
for k in 0 .. N { keep_cell(physics_st, cs, k, k) }
for k in 0 .. N { keep_cell(physics_st, cs, N - 1 - k, N - 1 - k) }
}
test "crossing the map and back six times holds the bodies, the shapes and Jolt's bytes of the first crossing" (physics_st: mut PhysicsState, cross_st: mut CrossState) {