mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-01 07:33:12 +08:00
macOS binds libnode's own calls to v8::base::Stack inside libnode, so the bridge's definitions cannot give V8 Node's stack as they do on Linux; V8 took the main thread's stack start and its conservative scan faulted in the gap above Node's stack. While Node starts on its stack, the main thread's pthread record now names that stack, which V8 reads once and keeps. macOS's makecontext clears the whole stack it is given, so it gets only the top slice of Node's stack (no 64 MiB pass per context). CI: dev-pack.json pins mirrored darwin-arm64 and darwin-x64 libnode builds of the pinned Node 24.22.0 from the libnode-packs workflow, the dev-pack action serves either platform, and the macOS lanes provision it, so island tests fail rather than skip on macOS CI. The arm64 LLVM job runs the island harness; the Intel job runs it and the island corpus. bridge-smoke loads the .dylib bridge on macOS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>