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_table
and 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_clone
due 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
+OnRemove
observers[queries]
Fix issue with matchingIsA -> IsA -> ChildOf
up 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 conflictingalerts
member 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 fetchingWorldSummary
by 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]
Removeconst
fromecs_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_OVERRIDE
to 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_frame
outside 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_existing
support toOnRemove
observers[meta]
Support callingecs_meta_get_string
on opaque string types[meta]
Make flaky alert tests not flaky (thanks @jpeletier!)[meta]
Add aconst_string
opaque 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
/event
typo 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 todistr
folder[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