Skip to content

build: add robust-laplacian riscv64 wheel workflow - #3347

Merged
luhenry merged 3 commits into
mainfrom
robust-laplacian
Oct 27, 2026
Merged

luhenry merged 3 commits into
mainfrom
robust-laplacian

Conversation

@luhenry

@luhenry luhenry commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Compiles a pybind11 extension (geometry-central/eigen) for robust mesh and point-cloud Laplacians. Upstream publishes no riscv64 wheel.

Mirrors upstream's publish.yml cibuildwheel matrix unchanged, including its own cibuildwheel_config.toml.

Differs from upstream

  • Stages licences for pybind11/eigen/geometry-central/happly/nanoflann/nanort/jc_voronoi - none ship in the default wheel

Testing

  • same as upstream

License: Project and all vendored dependencies (pybind11 BSD, eigen MPL2, geometry-central MIT, happly MIT, nanoflann BSD, nanort MIT, jc_voronoi MIT) are permissive; none are GPL.

Built on cp312/cp313/cp314/cp314t.

Adds a riscv64 build for robust-laplacian (pybind11/scikit-build-core, MIT),
mirroring upstream's publish.yml cibuildwheel matrix. Only its own LICENSE
ships by default; the submodule and vendored dependencies compiled into the
extension (pybind11, eigen, geometry-central and its own
happly/nanoflann/nanort, jc_voronoi) are staged as additional licence files.
@luhenry
luhenry marked this pull request as draft October 16, 2026 00:06
All four build legs of this PR fail identically at CIBW_TEST_COMMAND
with code 139 (SIGSEGV), with no Python-level traceback. Narrow the
matrix to cp312 and run the test under gdb with debug info kept
(SKBUILD_CMAKE_BUILD_TYPE=RelWithDebInfo, SKBUILD_INSTALL_STRIP=false)
to get a real backtrace per gotcha 115/168. To be reset once the
crash site is identified.
… gdb rebuild

All four interpreter legs crashed identically at CIBW_TEST_COMMAND with a
SIGSEGV and no Python-level traceback under scikit-build-core's default
Release config. The gotcha 115 diagnostic rebuild
(SKBUILD_CMAKE_BUILD_TYPE=RelWithDebInfo, gdb backtrace) ran clean on
cp312 - no crash, so no backtrace - which means the rebuild itself is the
fix: the fault is sensitive to -O3 vs -O2, the usual shape of UB the
optimiser is free to miscompile at one level and not the other (see
gotcha 662).

Keep SKBUILD_CMAKE_BUILD_TYPE=RelWithDebInfo as the shipped build type,
drop the gdb/strip scaffolding that only existed to read symbols, and
restore the full interpreter matrix.
@luhenry
luhenry marked this pull request as ready for review October 27, 2026 13:16
@luhenry
luhenry merged commit d23c771 into main Oct 27, 2026
12 of 15 checks passed
@luhenry
luhenry deleted the robust-laplacian branch October 27, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant