Skip to content

mcpplibs.mwrap.box2d 3.2.0: box2d-m (Box2D as C++23 modules) - #615

Merged
Sunrisepeak merged 1 commit into
mainfrom
mwrap-box2d
Oct 28, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
mwrap-box2d

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Based on main, which now has compat.box2d 3.2.0 (#611); rebased onto it.

Adds mcpplibs.mwrap.box2d 3.2.0 — mcpplibs/box2d-m (PR mcpplibs/box2d-m#1, merged; tag mwrap-3.2.0 on the merged main commit 361aa31), Box2D 3.2.0 (MIT) as C++23 modules over compat.box2d.

  • pkgs/mwrap/box2d.lua: form A, release asset mwrap-3.2.0/box2d-m-3.2.0.tar.gz (sha256 a7b448ea…7572); CN gitcode.com/mcpp-res/mwrap-box2d release 3.2.0, byte-identical; extensions.autoupdate on mwrap-${version}.
  • tests/mwrap/box2d-physics (member): behavior (a box that falls, rests and sleeps, a ray cast, constants and id macros, and the struck-pyramid determinism hash 0x790D7C28 in a consumer compiled without any floating-point flag) and the side header beside the import.
  • validate.yml: installed archive → mcpp new default physics template → strict build/run → relocated self-contained bundle; check_installed_template.py gets the Box2D deployment contract (wrapper LICENSE/NOTICE, Box2D README/LICENSE, byte-identical).
  • CHANGELOG entry and .agents/docs/2026-10-28-add-box2d-mwrap-plan.md.

Module surface: 110 types, 3 opaque structs, 176 enumerators, 506 B2_API functions, 91 inline functions, 8 vector operators and b2_lengthUnitsPerMeter by export using; the 13 static const objects as constants in mcpplibs::mwrap::box2d; mcpplibs.mwrap.box2d.macros with 20 constants, 5 length-unit functions (B2_LINEAR_SLOP() …) and 3 constexpr id functions; 12 macros stay in <mwrap/box2d/macros.hpp>.

Determinism (box2d-m CI, dev and release, 1/2/4/8 workers, a user task system, the SSE2 fallback): identical on Linux x86_64 GCC 16.1 and LLVM 23.1.3, Linux arm64 GCC and LLVM, macOS arm64, Windows x86_64 and wasm32-emscripten — falling hinges asleep at step 299, hash 0x465F3DF4 (upstream's pin); struck pyramid hash 0x790D7C28.

Locally (mcpp 2026.10.26.1): bash tests/run_members.sh box2d-physics ok; check_installed_template.py --package mcpplibs.mwrap.box2d@3.2.0 --deploy ok (4 byte-identical license files).

Descriptor pkgs/mwrap/box2d.lua (form A, the immutable mwrap-3.2.0 release
asset, tagged on box2d-m's merged main; CN is the gitcode
mcpp-res/mwrap-box2d mirror with the same bytes), over compat.box2d 3.2.0.
Consumer tests/mwrap/box2d-physics: a box that falls, rests and sleeps, a
ray cast, the mapped constants and id macros, and the wrapper's struck
20-row pyramid, whose transform hash (0x790D7C28) is the one every box2d-m
CI row computes, in a consumer compiled without any floating-point flag; and
the side header beside the import. The installed-template check in
validate.yml with its deployment contract (the wrapper's LICENSE/NOTICE,
Box2D's README and LICENSE, byte for byte in a relocated bundle), and the
plan.
@Sunrisepeak
Sunrisepeak changed the base branch from compat-box2d to main October 28, 2026 11:42
@Sunrisepeak Sunrisepeak reopened this Oct 28, 2026
@Sunrisepeak
Sunrisepeak merged commit 731d80a into main Oct 28, 2026
18 checks passed
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