Skip to content

Flecs v3.2.12

Compare
Choose a tag to compare
@SanderMertens SanderMertens released this 12 Jul 05:28
· 389 commits to master since this release
3210bff

Highlights

  • This release marks the last commit before the v4 release, which is happening in the next few days!
  • This is by far the most stable v3 release, and recommended for anyone staying on v3
  • All of the changes below are already part of the v4 branch!

Release notes

This version includes the following bugfixes:

  • Fix issue where anonymous entity would be deserialized into named entity with same id
  • Fix query DSL issue where incorrect entity could get resolved for OneOf terms
  • Fix issue where module symbol lookup could interfere with name lookups
  • Fix typo in named query REST endpoint
  • Don't serialize entity ids as floats in JSON
  • Fix issues with assigning path names with deleted parent in deferred mode
  • Fix compiler error when application defines free macro
  • Fix integer conversion assert in JSON serializer
  • Fix issue where compiling JSON addon without REST didn't work
  • Fix issue with any pair terms in observers
  • Fix world deserialization issue with entities that have relationship cycles
  • Fix issue with sorting shared components
  • Fix potential divide by zero in JSON profiler code
  • Fix enum reflection issue on VS2019
  • Fix assert for invalid query with uninitialized dependent variable
  • Fix infinite loop in progress when using integer time type
  • Fix issues with yield_existing and observers with entity source
  • Fix offset on nullptr in JSON serializer code
  • Fix out of bounds write when bulk overriding components (thanks @Indra-db!)
  • Fix assert when moving component without ctor to existing table (thanks @Thinkofname!)
  • Remove declaration to non-existent ecs_meta_set_component (thanks @pfeodrippe!)
  • Fix potential buffer overflow with large compilers strings (thanks @apache-hb!)
  • Fix duplicate definition errors when using unity builds (thanks @apache-hb!)
  • Fix issue with sorting non-trivial components
  • Fix issue with OR/wildcard queries
  • Fix issue with overcounting nodata terms in query with OR terms

This version includes the following improvements:

  • [cpp] Don't rely on automatic registration of builtin components
  • [cpp] Improve robustness and flexibility of enum reflection (thanks @garrett-is-a-swann!)
  • [cpp] Add additional overloads that make use of enum reflection (thanks @RoyAwesome!)
  • [cpp] Add iter::field_at method, disallow usage of iter::field in each
  • [cpp] Change entity constructor to take entity_t instead of id_t
  • [cpp] Add pair overload to get_ref (thanks @TBlauwe!)
  • [cpp] Add missing get_mut singleton methods (thanks @Indra-db!)
  • [cpp] Improve performance of entity::children
  • [cpp] Remove static for improved compatibility with C++20 modules (thanks @alexv-ds!)
  • [cpp] Alow for creating owned flecs::world from custom C world
  • [cpp] Add term_index to flecs::iter (thanks @jpeletier!)
  • [cpp] Mark overridden methods with override (thanks @jpeletier!)
  • [queries] Add support for parsing special characters in entity names
  • [queries] Add support for matching empty tables for cached queries
  • [queries] Fix issue with query traversal that could cause duplicate results
  • [rules] Fix incorrectly initialized context in query engine
  • [observers] Add support for disabling observers
  • [observers] Add missing event propagation code paths
  • [pipelines] Add multi_threaded argument to readonly_begin
  • [core] Improve error messages for constraint violations
  • [core] Allow for setting component name through type_info_t::name
  • [core] Automatically add Module tag to parents of components (thanks @garrett-is-a-swann!)
  • [core] Rename of get_mut, ensure to ensure, make_alive
  • [core] Add new get_mut that doesn't add component
  • [core] Add ability to include user-defined header with compile-time settings
  • [core] Don't create intermediate tables when instantiating prefab children
  • [core] Fix uninitialized value in cleanup logic
  • [core] Add table type order check in sanitized mode
  • [core] Add ecs_get_build_info
  • [core] Implement Relationship, Target, Trait constraint traits
  • [core] Use destructive move semantics when move & move_ctor is not set (thanks @Indra-db!)
  • [core] Improve performance of ecs_children
  • [core] Add world-global parameter for specifying default query flags
  • [json] serialize prefabs when serializing world
  • [json] improve robustness when deserializing into world with missing reflection data
  • [json] Don't asert on invalid entity identifier in JSON deserializer
  • [json] Add query info JSON serializer
  • [json] Add query profiler
  • [json] Always serialize full path for parent fields
  • [rest] Add support for inspecting observers with REST API
  • [rest] Implement endpoint for capturing commands of a single frame
  • [doc] Merge COREDOC addon with doc addon
  • [monitor] Add frame_count to WorldSummary
  • [monitor] Add build info to WorldSummary
  • [doc] Fix incorrect comments in simple_module examples
  • [doc] Add code tabs and C# snippets to relationship manual (thanks @BeanCheeseBurrito!)
  • [doc] Fix inconsistent order_by docs
  • [doc] Fix headers and language example tabs in relationship manual
  • [doc] Fix issue with observer example in quickstart (thanks @lenis0012!)
  • [ci] Add deprecated CI platforms (thanks @waywardmonkeys!)
  • [ci] Fix warnings when using FLECS_USE_OS_ALLOC (thanks @waywardmonkeys!)
  • [ci] Fix issues with windows/clang64
  • [ci] Add test to make sure amalgamated files are updated
  • [ci] Fix asan issue with casting function pointers (thanks @darkuranium!)
  • [windows] Ensure windows version macro is set correctly for inet_pton (thanks @benjitrosch!)
  • [misc] Make ctx argument of world::atfini optional
  • [misc] Use fseek instead of rewind (thanks @waywardmonkeys!)
  • [misc] Add missing #ifndef which could cause macro redefinitions (thanks @Indra-db!)

Benchmark results
https://github.com/SanderMertens/ecs_benchmark/tree/4681e8606aa9204b97f6316d3611e9f0d2572852

Breaking changes

Known issues:
#844
#765
#714
#620
#478
#314

New Contributors

Full Changelog: v3.2.11...v3.2.12