## Problem `compileParam()` asserts `assert(false === $param->variadic)`. Wrapper functions and routers need `function route(string $path, ...$handlers)`. ## Goal Support PHP variadic parameters and minimal introspection. ## Tasks - [ ] Remove variadic assert; pack extra args into array at call boundary - [ ] VM: `TYPE_ARG_RECV` for variadic slot receives packed array - [ ] `func_get_args()` / `func_num_args()` builtins (VM first) - [ ] JIT: pack trailing args (may call VM helper initially) - [ ] PHPT with spread at call site (**#141** related) ## Acceptance criteria ```php function sum(...$nums) { $t=0; foreach ($nums as $n) $t+=$n; return $t; } echo sum(1,2,3); // 6 ``` Requires **#53** foreach or indexed loop fallback. ## Dependencies - **#53** foreach - **#141** spread operator ## Files - `lib/Compiler.php`, `lib/VM.php`, `ext/standard/`
Problem
compileParam()assertsassert(false === $param->variadic). Wrapper functions and routers needfunction route(string $path, ...$handlers).Goal
Support PHP variadic parameters and minimal introspection.
Tasks
TYPE_ARG_RECVfor variadic slot receives packed arrayfunc_get_args()/func_num_args()builtins (VM first)Acceptance criteria
Requires #53 foreach or indexed loop fallback.
Dependencies
Files
lib/Compiler.php,lib/VM.php,ext/standard/