Skip to content

v0.8.6

Compare
Choose a tag to compare
@richardbiely richardbiely released this 08 Apr 07:28
· 120 commits to main since this release
7d8dfdb

This is a maintenance release bringing mostly bug fixes and internal improvements.

New features are of internal nature. In order to have more control over allocations, the project switched to using allocators for everything (we already had ChunkAllocator for handling allocation of memory for archetype chunks). This way, every allocation can be monitored and if necessary, allocation strategy for any given place in the project can be easily changed. Also, this gives the user the ability to override the default allocation with a custom one if needed.

The project supports allocation tracing via Tracy. This gives us the ability to see where any allocation comes from and how the situation changes over time:
tracy_1

Release notes

Fixed:

  • added fallback for setting thread name on Win (e.g. if Win10 is not the target platform) 6de6982
  • build with profiler enabled dd6c809
  • GAIA_LOG_W/E would not output to stderr entirely 08a0fbe
  • possible build errors d55f235
  • ::emplace_back would not return a reference 1e1d22a
  • ecs::call_ctor would not work with braces initialization 1e1d22a
  • incorrect ranges used for indexed view/view_mut dcd9931
  • ecs::Core no longer excluded by default on queries 5b05dba
  • remapping not applied properly for chunk batching 0b3ef53
  • numerical overflow in the app example d2db469

Changed:

  • Picobench and Catch2 version bump b53fdb4
  • all Gaia-ECS allocations go through internal DefaultAllocator by default 58a17a0
  • benchmarks will no longer generate output in profiling mode 5ac6adb
  • use 64b hash for entity lookup 1820ff4
  • World::has_none -> has_no 5b05dba

Tweaked:

Added:

  • DefaultAllocator 58a17a0
  • StackAllocator fcdb1ea
  • support for custom allocator on containers 58a17a0
  • support for named allocation (currently exposed for profiling sessions only) 98b92b0
  • support for mutex profiling 278e757
  • World::set_max_lifespan to change how long an empty archetype stays alive until deleted 506efc5

Full Changelog: v0.8.5...v0.8.6