Box2D 0.1.0.0 → 0.1.1.0
raw patch · 5 files changed
+28/−1 lines, 5 files
Files
- Box2D.cabal +1/−1
- CHANGELOG.md +11/−0
- cbits/box2d_shim.c +10/−0
- cbits/box2d_shim.h +2/−0
- test/Spec.hs +4/−0
Box2D.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: Box2D-version: 0.1.0.0+version: 0.1.1.0 synopsis: Low-level bindings to the Box2D physics engine description: Low-level FFI bindings to Box2D, Erin Catto's 2D rigid-body physics engine. The engine's C sources (v3.2.0, MIT licensed) are bundled and compiled with
CHANGELOG.md view
@@ -6,6 +6,17 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## 0.1.1.0 - 2026-11-14++### Fixed++- `defaultMoverJointDef` and `defaultPogoJointDef` called C shims that were+ missing from the package. Calling either one failed with+ `undefined symbol: hs_b2DefaultMoverJointDef` (or `hs_b2DefaultPogoJointDef`).+ Loading the library could fail the same way without either function being+ called, as reported when using Template Haskell.+ ([#1](https://gitlab.com/dpwiz/box-nd/-/work_items/1))+ ## 0.1.0.0 - 2026-11-08 Initial release, bundling Box2D `v3.2.0` (upstream commit `178495b`).
cbits/box2d_shim.c view
@@ -115,6 +115,16 @@ *out = b2DefaultMotorJointDef(); } +void hs_b2DefaultMoverJointDef(b2MoverJointDef* out)+{+ *out = b2DefaultMoverJointDef();+}++void hs_b2DefaultPogoJointDef(b2PogoJointDef* out)+{+ *out = b2DefaultPogoJointDef();+}+ void hs_b2DefaultPrismaticJointDef(b2PrismaticJointDef* out) { *out = b2DefaultPrismaticJointDef();
cbits/box2d_shim.h view
@@ -58,6 +58,8 @@ void hs_b2DefaultDistanceJointDef(b2DistanceJointDef* out); void hs_b2DefaultMotorJointDef(b2MotorJointDef* out);+void hs_b2DefaultMoverJointDef(b2MoverJointDef* out);+void hs_b2DefaultPogoJointDef(b2PogoJointDef* out); void hs_b2DefaultPrismaticJointDef(b2PrismaticJointDef* out); void hs_b2DefaultRevoluteJointDef(b2RevoluteJointDef* out); void hs_b2DefaultWeldJointDef(b2WeldJointDef* out);
test/Spec.hs view
@@ -45,6 +45,8 @@ import Box2D.Geometry (Capsule (..), CastOutput (..), Circle (..), Hull (..), MassData (..), Polygon (..), RayCastInput (..), Segment (..), ShapeProxy (..)) import Box2D.Joint (JointDef (..), pattern DistanceJoint) import Box2D.MotorJoint (defaultMotorJointDef)+import Box2D.MoverJoint (defaultMoverJointDef)+import Box2D.PogoJoint (defaultPogoJointDef) import Box2D.PrismaticJoint (defaultPrismaticJointDef) import Box2D.RevoluteJoint (defaultRevoluteJointDef) import Box2D.Shape (QueryFilter (..), ShapeDef (..), defaultFilter, defaultQueryFilter, defaultShapeDef, defaultSurfaceMaterial, pattern CapsuleShape, pattern ChainSegmentShape, pattern CircleShape, pattern PolygonShape, pattern SegmentShape)@@ -417,6 +419,8 @@ let rt mk = mk >>= \x -> roundTrip x >>= (@?= x) rt defaultDistanceJointDef rt defaultMotorJointDef+ rt defaultMoverJointDef+ rt defaultPogoJointDef rt defaultPrismaticJointDef rt defaultRevoluteJointDef rt defaultWeldJointDef