ffi M5.A.next.2b.fu34.A: bare args + runtime index — lock in unresolved/LLVM errors
Lock-ins for follow-ups #3 (bare `args` reference) and #4 (`args[<runtime_int>]`) from step 2b. Both share the same root cause: the pack-mono does not materialise an `[]Any` slice value for the pack name, so any body that needs `args` as a value at runtime fails. `examples/162-pack-bare-args.sx` — pack-fn body forwards `args` to a `[]Any`-typed helper. Today: "unresolved 'args' (in ... fn forward__pack_s64_string_f64)". `examples/163-pack-runtime-index.sx` — pack-fn body indexes `args[i]` with a runtime `i`. Today: LLVM verifier crash — "GEP base pointer is not a vector or a vector of pointers" — because `args` resolves to a junk Ref via the scope-lookup fall-through, and the slice-indexing path emits a GEP off that. Next commit materialises an `[]Any` slice on demand inside the mono: each pack param is boxed into Any, stored in a stack [N x Any] array, and the slice {data_ptr, len} is bound to the pack name. `args` then resolves as a runtime value the same way the pre-2b inline path used to. `args[i]` runtime indexing goes through the standard slice index path; element type is `Any` (lossy on per-position types — inherent to runtime indexing into a heterogeneous pack). 202/202 example tests + `zig build test` green.
This commit is contained in:
1
tests/expected/162-pack-bare-args.exit
Normal file
1
tests/expected/162-pack-bare-args.exit
Normal file
@@ -0,0 +1 @@
|
||||
1
|
||||
Reference in New Issue
Block a user