Bump manifold pin + fold to single #1690 carry-patch (v0.4.0-alpha.1)#13
Merged
Conversation
Pre-release for v0.4.0. Pins manifold to a current upstream master commit (5f95a3ac) and replaces the three shim-side iostream patches with a single vendored diff of elalish/manifold#1690 — the upstream PR that adds MANIFOLD_NO_IOSTREAM natively. Once #1690 lands and the manifold pin moves past it, the carry-patch drops entirely and a v0.4.0 (non-alpha) release follows. Helper refactor: * Drops the Clipper2 pre-declaration. Manifold's manifoldDeps.cmake (post-#1690) owns the FetchContent_Declare(Clipper2 ...) and derives CLIPPER2_NO_IOSTREAM=ON from MANIFOLD_NO_IOSTREAM=ON automatically. * Sets MANIFOLD_NO_IOSTREAM=ON as a CMake cache var and lets manifold's option chain propagate the macros as PUBLIC compile defs on the manifold target. * API: removes CLIPPER2_GIT_TAG and EXTRA_CLIPPER2_PATCHES (manifold owns Clipper2). MANIFOLD_GIT_TAG / EXTRA_MANIFOLD_PATCHES / SKIP_BUILTIN_PATCHES continue to work. Test expansion: 71 -> 121 tests run on the shim. Adds boolean_complex, manifoldc, smooth (alongside existing boolean, cross_section, sdf). Skipped: hull / properties / samples (need samples helper library); manifold_test (uses std::set/<thread> without direct includes our libcxx subset doesn't ship); polygon (RegisterPolygonTests is no-op under MANIFOLD_NO_IOSTREAM, file would compile but contribute zero tests). Size budget: manifold_tests_size_budget bumped 1.10 -> 1.40 MB to accommodate the expanded test set (current ~1.07 MB; ~30% headroom). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
82a701c to
4de0354
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pre-release groundwork for v0.4.0. Pins manifold to current upstream master and replaces the three shim-side iostream patches with a single vendored diff of elalish/manifold#1690 — the upstream PR that adds
MANIFOLD_NO_IOSTREAMnatively. Once #1690 lands and the manifold pin moves past it, the carry-patch drops entirely and a v0.4.0 (non-alpha) release follows.What changed
Helper refactor (
cmake/WasmCxxShimManifold.cmake):manifoldDeps.cmake(post-#1690) owns theFetchContent_Declare(Clipper2 ...)and derivesCLIPPER2_NO_IOSTREAM=ONfromMANIFOLD_NO_IOSTREAM=ONautomatically.MANIFOLD_NO_IOSTREAM=ONas a CMake cache var; manifold's option chain propagates the macros as PUBLIC compile defs.CLIPPER2_GIT_TAGandEXTRA_CLIPPER2_PATCHES(manifold owns Clipper2 now).MANIFOLD_GIT_TAG/EXTRA_MANIFOLD_PATCHES/SKIP_BUILTIN_PATCHEScontinue to work.Carry-patches:
0001-clipper2-strip-iostream,0002-manifold-ifdef-iostream,0003-manifold-test-main-ifdef-filesystem) deleted.0001-manifold-no-iostream.patch— verbatim diff of #1690 against pinned upstream commit5f95a3ac.Test expansion: 71 → 121 tests run on the shim. Adds
boolean_complex_test,manifoldc_test,smooth_testalongside existingboolean_test,cross_section_test,sdf_test. Skipped:hull_test,properties_test,samples_test— need the samples helper library (would also require pulling sample-geometry sources).manifold_test— usesstd::setand threading constructs without direct<set>/<thread>includes, which our libcxx subset doesn't ship transitively.polygon_test—RegisterPolygonTestsis no-op'd underMANIFOLD_NO_IOSTREAM, file would compile but contribute zero tests.Size budget:
manifold_tests_size_budgetbumped 1.10 → 1.40 MB. Current ~1.07 MB; ~30% headroom for future test additions.Test plan
cmake --preset wasm32 -DWASM_CXX_SHIM_BUILD_MANIFOLD_LINK=ON && cmake --build --preset wasm32 && ctest --preset wasm32: 18/18 ctest entries pass.manifold-link-probe.wasmsize: 339 KB (well under 450 KB budget).manifold-tests.wasmsize: 1.07 MB (well under 1.40 MB budget).manifold_link_imports_check+manifold_tests_imports_check).wasm_cxx_shim_helper_api_smoke) updated for the new file layout.cmake --build --preset wasm32after editing a CMakeLists.txt file completes without re-applying the carry-patch (relies on a wrapper-script PATCH_COMMAND in #1690).Notes for the (one-person) reviewer
5f95a3ac); if #1690 evolves in upstream review, this branch may need re-rolling (alpha.2, alpha.3, etc.).v0.4.0-alpha.1+5f95a3ac. The non-alpha v0.4.0 ships once #1690 actually merges and the manifold pin moves past it (drops the carry-patch, drops the+<sha>build-metadata).CLIPPER2_GIT_TAG/EXTRA_CLIPPER2_PATCHES) is fair game in a pre-1.0 alpha. CHANGELOG flags it.🤖 Generated with Claude Code