Commit Graph

5 Commits

Author SHA1 Message Date
Alex Lytvynenko 2e0e38baa4 Serialize native shim calls around the shared API context
Guard common and handwritten entrypoints through native cleanup and callback restoration. Add exclusion, recursive forwarding and exception-unwind probes; p2 adds its concurrent cross-wrapper regression with the port.

Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
2026-10-17 20:33:34 +02:00
jijinbei 875291c4d9 shim: share identical C++ helpers through sc_sm.h, sc_nlib.h, sc_gw.h
125 shims carried private copies of the same small helpers (put_vec, st,
nl_status, Rd, dump_crv, read_nurb, ...). Move the most common, byte-identical
form of each into three headers grouped by the upstream API they need, and have
those shims pull them in with `using sc::<name>;`. Shims with a different
variant keep their own copy; files touched by open PRs are left alone.
`the_context()` stays per shim (its function-local SmContext must not be shared).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FBLgPenT24P1dunqnZR1Dj
2026-10-17 06:43:03 +09:00
bherbruck 305c332ad7 intersect.surface_intersector_p2: review fixes (unguard FlushCurve)
Drop the shim's is_rejected_flush and the runner's flush_rejected: the C++
does not misbehave on non-increasing knots (N_IgesValidate inside
CreateCanonical returns SM_ERR for decreasing knots, accepts equal ones), so
every Flush now runs and the sm_FlushCrv error path is compared. Add 105
review adversarial fixtures, drop the stale EvaluateNormal deferral note, and
record the classify-guard width, the unreachable Tangent/Coincident
classifications and the step-7 deferrals in plan/findings.md.

difftest: 1660 cases, 1508 pass, 0 fail, 152 deferred, max_rel_err 0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 09:18:36 -04:00
bherbruck ee75a1edd0 port: intersect.surface_intersector_p2 (partial)
Finish the SmSurfaceIntersector part 2 port: the shim, ffi and runner now
also build SmCurveBoundedSurface (over a plane or B-spline basis), the
generator wraps surfaces in it, and planar-section fixtures come from
prog_test my_test_planar_section on shovel.srf. Difftest: 1517 cases,
1314 pass, 203 deferred (surface.surface_p3/p5/p7, blend.fillet_executive_p1).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNGVDsEXPdxtFSUKma3wKs
2026-10-13 22:31:45 -04:00
bherbruck d808fa6f8d WIP intersect.surface_intersector_p2: interrupted by usage limit (unverified)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 22:00:03 -04:00