BSD-3-Clause licensed by Jonas Carpay
Maintained by [email protected]
This version can be pinned in stack with:apecs-stm-0.3@sha256:8eaa71c59fe1a03f729ea0618d35dca2835467aa3172767d7b1e5443079a1e43,1684

Module documentation for 0.3

apecs-stm

Experimental STM stores, allow apecs to be run in the STM monad.

atomically . cmap $ \(Position p, Velocity v) -> Position (v+p)

Changes

[0.3]

The package is now fully subordinate to vanilla apecs, reusing its EntityCounter, makeWorld etc.

While it can still be used as “put everything into STM” this is quite inefficient.

  • Renamed Map, Global, Unique to TMap, TGlobal, TUnique. They now can be used alongside vanilla Map/Global/Unique and only where it matters.
  • TMap.explMembers is not atomic under IO. Using stm-containers’ listTNonAtomic escape hatch for single-threaded/non-atomic membership tests.

[0.2]

Removed

  • Removed custom EntityCounter, newEntity, and makeWorld.

Changed

  • (#118) Use makeWorld, EntityCounter and entity functions from core.

[0.1.5]

Changed

  • Bumped the minimum apecs version to 0.9.3, since we need makeMapComponentsFor

[0.1.4]

Add

  • (#74) makeWorldAndComponents, similar to how it exists in apecs proper

[0.1.3]

Changed

  • (#60) Add Component type names in non-existent component errors
  • Increased upper bound apecs dependency

[0.1.2]

Changed

  • apecs version bump

[0.1.0]

Added

  • Split out the STM parts of the main apecs package