Two shared-file entries based on scoreboard patterns:
- Math trig/transcendental primitives missing. 34× "TypeError: not a
function" across Math category — sin/cos/tan/asin/acos/atan/atan2,
sinh/cosh/tanh/asinh/acosh/atanh, log/log2/log10/log1p/expm1,
clz32/imul/fround, variadic hypot/max/min. All need OCaml/JS platform
primitives; can't polyfill from pure SX and keep precision. Once
present in the runtime, `js-global.Math` gets one extension and all 34
failures flip together.
- Evaluator CPU bound at ~1 test/s on 2-core box. Runner already
auto-disables parallel workers on ≤2 cores. Optimization surface for
the shared evaluator: lexical addresses (vs name walk), inline caches
on js-get-prop (vs __proto__ walk), force-JIT transpiled JS bodies
(vs lazy), OCaml 5 domains (vs separate processes).
Progress-log entry for P0 harness cache added alongside.