You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
perry/container & perry/compose calls compile to undefined — NativeMethodCall reaches no js_container_* symbol (JS surface dead) #11211
Found while working on tokio lane K (#11209). A compiled Perry program cannot call the perry/container / perry/compose APIs at all. It fails the same way on main and on #11209.
A probe calls getBackend(), await listImages(), and await up({...}) / down() against a stub docker on PATH. It compiles and links: auto-optimize selects features=async-bridge,container, and the archive contains the container code. But every call evaluates to undefined, and the stub docker is never invoked.
HIR lowers these calls to NativeMethodCall { module: "perry/container", method: "getBackend" }, which apparently reaches no js_container_* symbol in codegen.
Consequences:
The JS-facing container surface is effectively dead.
Only the stdlib FFI tests cover the bridge.
There are no perry/container gap tests: --filter container|compose|workload matches nothing relevant. That is why this went unnoticed.
Fix: wire the perry/container, perry/compose and perry/workloads NativeMethodCalls to the js_container_* / compose FFI exports. Add gap tests that run against a stub docker binary on PATH, so they need no real container runtime, and assert that the stub was actually invoked.
Activity
perry/container, perry/compose, perry/workloads: route NativeMethodCa…
perry/container, perry/compose, perry/workloads: route NativeMethodCa…