Files
solvecraft/harness/cpp
Pluto-XI ef995afa13 surface.offset_surface: run the C++ reference in process (review)
The maintainer asked for the build-script and Cargo changes to go to a
separate PR: the per-case offset-reference worker (build.rs link step,
GNU ld --wrap, offset_reference.rs, offset_worker.cpp) and cc's parallel
feature. build.rs, the solidcore-ffi Cargo.toml, Cargo.lock, lib.rs and
the difftest README are back to main's.

The shim now runs in the difftest process:
- CreateExtendedSurface is refused (FFI and shim): UB-107 and the
  HANG-6/HANG-22 searches inside it cannot be detected outside NLib, as
  the worker already did where it had no --wrap. The upstream-derived
  fixture api_offset_m12_copy_split_extend loses its two extension steps
  (ours; TestSmCreateOffsetSurface never extends) and is renamed.
- A surface of revolution base keeps surf_of_revolution_p1's in-process
  1e-6 minimum sizes (the worker's deadline had made them unnecessary).
- IsPlanar gets the shim's box-chain check over its natural domain, and
  the generator preflights it: after an outer offset's STEPInversion
  made an inner offset store an extension, IsPlanar's virtual box
  reached the inner's SmSurface body (UB-173) and overflowed the stack
  in a 100,000-seed run.
- BaseOffset distances are generated relative to the base's size (as in
  surf_of_revolution_p2): a 1e149 offset of a unit revolution makes a
  degenerate generator offset, and CreateSimpleOffset then copies an
  uninitialised dMaxGap3d.
- gen5909 (HANG-22) stays an FFI regression: it stops at its extension.

Also: rustfmt on the #[path] unit files, and issue IDs renumbered past
main and every open PR (UB-171..174, HANG-21/22, WR-160..166).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:10:25 -06:00
..