Flecs v4.0.2
Highlights
- New blog: Building an ECS #3: Storage in pictures
- Runtime types now automatically generate hooks that cleanup resources (thanks @jpeletier!)
- New OS API hooks that enable integration with tracy-style profilers!
Release notes
This version includes the following bugfixes:
[cpp]Fix spurious entities that are created when renaming C++ module[cpp]Fix issue with non-$this fields in query iteration (thanks @Gaspard--!)[cpp]Fix issue with computing component name from multiple threads/worlds[cpp]Fix issue where C++ world object would sometimes not get freed (thanks @jpeletier!)[cpp]Fix issue with observers and up traversal[cpp]Fix clang 20 compiler error in enum reflection code[core]Fix issue with using sparse components andecs_new_w_table[core]Fix issue withecs_new_w_tableand overriding components[core]Fix issue with creating queries inside of hooks[core]Fix issue with testing tables for wildcard pair ids[core]Fix potential leak inecs_clonedue to double constructor call (thanks @jpeletier!)[core]Fix issues with simple observers/queries for sparse components[core]Fix issues with hooks for sparse components[core]Fix issue with batchedOnAdd+OnRemoveobservers[queries]Fix issue with matchingIsA -> IsA -> ChildOfup traversal[queries]Fix issue with matching prefab/disabled entities for queries that start with not term[systems]Fix issue with setting rate filter on system without tick source[systems]Fix issue with cleaning up iterator resources for systems that match nothing[json]Fix crash when serializing query plan for trivial query[json]Fix issue where conflictingalertsmember could serialize to invalid JSON[script]Fix issue where script visitor function wasn't restored after parsing template[stats]Fix issue where units module was not always imported by stats (thanks @domdom!)[stats]Fix crash when fetchingWorldSummaryby REST API before it's initialized[explorer]Fix issue with entity names that have contain/characters
This version includes the following improvements:
[cpp]Addflecs::ref::has[cpp]Add missing overload forquery_builder::with(const char*, id_t)[cpp]Addflecs::iter::other_table()[c]Removeconstfromecs_ref_get[core]Implement fine-grained feature tracking for add/remove operations[core]Add performance tracing hooks to OS API[core]Add perf trace when sleeping due to target_fps (thanks @waywardmonkeys!)[core]Add support forAUTO_OVERRIDEto prefab children[core]Implement deterministic ids for prefab children[core]Use__alignof__on clang[core]Allow for restoring ranges withecs_set_entity_range[core]Add compile time flag to disable statistics counters[core]Fix thread sanitizer warnings[core]Prevent callingecs_run_post_frameoutside of frame[core]Addecs_id_from_str[core]Allow for suspending readonly mode outside of multithreaded systems[queries]Remove redundant query instruction constants[queries]Allow(IsA, tgt|self)queries to be cached[queries]Don't automatically cache queries with only not/optional terms[observers]Addyield_existingsupport toOnRemoveobservers[meta]Support callingecs_meta_get_stringon opaque string types[meta]Make flaky alert tests not flaky (thanks @jpeletier!)[meta]Add aconst_stringopaque type (thanks @jpeletier!)[meta]Auto-generate lifecycle hooks for reflection-only types[stats]Add counter for tracking component monitor evaluations[units]Remove unused symbols from units addons[docs]Fix typos in documentation on how to run tests (thanks @jpeletier!)[docs]Add Meta copyright notice to LICENSE (has no impact on license which is still MIT!)[docs]Fix typos (thanks @waywardmonkeys!)[docs]Fixemit/eventtypo in observer manual (thanks @awest03!)[docs]Add missing access modifier section to query language manual[docs]Add link to storage in pictures to docs[docs]Fix broken links in design guide[build]Move flecs.c and flecs.h files todistrfolder[build]Migrate bazel build to bzlmod (thanks @reutermj!)[build]Add bazel build definitions for examples and add bazel build/test to CI[ci]Add spell check to CI (thanks @Georgiy-Tugai!)
Breaking changes
New Contributors
- @domdom made their first contribution in #1312
- @reutermj made their first contribution in #1301
- @Gaspard-- made their first contribution in #1327
- @awest03 made their first contribution in #1344
- @Georgiy-Tugai made their first contribution in #1353
Full Changelog: v4.0.1...v4.0.2