ReviewOS

zig-utils/zig-js

Home: pin and verify the public C embedding profile

#162
Closed chris opened this 9 days ago ·
9 days ago

Parent: #134 Depends on: #135

Keep Home’s public JavaScriptCore embedding surface explicit and mechanically separate from its private Bun/JSC ABI.

Acceptance:

  • Pin the exact Home revision and source files that declare the public C consumer surface.
  • Check in a machine-readable symbol, calling-convention, enum, and opaque-layout profile.
  • Reject a changed revision/source digest unless the profile is deliberately updated.
  • Add a Zig compile-link-runtime fixture derived from the pinned Home consumer.
  • Verify every declared consumer symbol is exported by zig-js, with zero missing entries.
  • Document the supported profile and state clearly that it does not imply private ABI support.
9 days ago

Completed in b5d131b and documented in 8b329a2.

Evidence:

  • pinned Home revision 7ed99c0 plus exact hashes for extern_fns.zig, opaques.zig, and types.zig
  • machine-readable 50-symbol C-calling-convention, opaque-layout, enum, and semantic-assumption profile
  • 50/50 zig-js exports, zero missing
  • real Zig fixture forces all 50 symbols through the linker and passes context/evaluation/retain/GC/typed-array runtime checks
  • live source verification passes with -Dhome-source-root; unknown IDs and revision/hash drift fail explicitly
  • README and integration/API docs clearly separate this public profile from private Home/Bun ABI support

Sign in to comment on this issue.