Sander Mertens/flecs: Release v3.1.0
Name: flecs
Owner: Sander Mertens
Release: Flecs v3.1.0
Released: 2022-10-15
License: NOASSERTION
Release Assets:
Release announcement
Release notes
This version includes the following bugfixes:
- Fixed issue with terms that had
Notoperator in combination with relationship traversal - Fixed issues in C++ API where component hooks could get reregistered across DLLs
- Fixed issue in queries with shared components and change detection
- Fixed issue in queries with fixed source terms and change detection
- Fixed issue in sparse set with bulk id generation and recycling
- Fixed issues with using emplace and commands
- Fixed issue in group_by example so it always returns alive entity identifier
- Fixed issue in pipeline with no_staging system after inactive system
- Fixed issue with instanced queries and nested
itercalls - Fixed issue where using observer with multiple components would crash when setting
ctxandctx_free - Fixed issue where
ecs_ref_twould do more lookups than necessary - Fixed C++ issue with overriding a prefab child that was associated with a type
- Fixed missing call to
movehook when moving entity in table - Fixed double free for moved-away from component
- Fixed leak where world was not destroyed when using
app::run - Fixed table lock assert when adding component in observer during merge
- Fixed crash when
OnRemoveobserver adds component to deleted entity - Fixed issue with using
ecs_add_pathwhen path is root - Fixed issue with assigning the same name to an entity after reparenting
- Fixed JSON crash on union pair with invalid target
- Fixed crash where
no_stagingsystem activated at end of schedule - Fixed leak when multithreaded pipeline rebuilt after running the last system
- Fixed issue where HTTP server would write to memory of purged connection
- Fixed issue where observer would not restore iterator state for next observer
- Fixed issues with redefining addon macro's
- Fixed issues with parsing identifiers that start with
_inECS_STRUCT - Fixed issues with parsing pointer types in
ECS_STRUCT
This version includes the following improvements:
[c]Addedecs_children/ecs_children_nextfunctions for iterating an entity's children[c++]Addedentity_view::parentfunction (shorthand fortarget(flecs::ChildOf)[c++]Made callingworld::modulein module constructor optional[c++]Addedeach/iteroverloads that accept a stage[c++]Allow module entity to be retrieved usingworld::entity/world::component[threading]Allowed using the world (vs. stage) in single threaded system running in multi threaded apps[commands]Command batching, which reduces archetype moves for entities when doing deferred operations[entity DSL]Improved syntax[entity DSL]Added entity DSL examples[entity DSL]Added support for multiline strings[entity DSL]Added support for anonymous entities[entity DSL]Added variable support (reusable values)[entity DSL]Added support for using simple arithmetic expressions[entity DSL]Implemented a vscode extension for DSL syntax highlighting[os api]Added function to get OS API struct (for easier support in language bindings)[queries]Added ability to add user-defined context to query groups[queries]Added assert on invalid usage ofFilterin combination with queries[queries]Addedecs_query_next_tablefor fast iteration where only tables are needed[queries]Improved performance/cleanup technical debt of query change detection[queries]Addedecs_query_get_group_infofunction[observers]AddedEcsFilter/flecs::Filterterm flag for terms only for filtering, not receiving events[observers]Added level 3 trace that shows which observers are invoked[pipeline]Improved detection of sync points, correctly handle wildcard queries[pipeline]Always insert sync point afterno_stagingsystem to ensure schedule consistency[stats]AddedFLECS_ACCURATE_COUNTERSfor tracking allocation counters in multithreaded apps[stats]Added new statistics for allocators, events and performance tracking[stats]Organized statistics into categories[stats]Improved system time measurement so it no longer includes merge time[stats]Fixed issue where measuring system time for last part of schedule could be skipped[stats]Use 64bit counters to reduce occurrences of stat overflows[stats]Ensure counter metrics are monotonically increasing in case of overflow[rest]Added brief descriptions to stats endpoints for improved visualization in explorer[http]Don't enqueue requests for connections that are no longer alive[http]Don't keep HTTP connection open longer than timeout[http]Set timeout on connection receive socket[http]SetSO_KEEPALIVEon connection socket so server is notified when client drops connection[http]Implement send queue to prevent blocking on main thread when sending reply[http]Fixed issue with sending replies without payload[ux]Throw assert when component id overlaps with reserved bits for id flags[ux]Added typename to invalid ctor/dtor error messages[ux]Added assert when attempting to useecs_bulk_initon stage[internals]Reduced number of heap allocations with internals now mostly using custom allocators[internals]Allow for overriding ofECS_HI_COMPONENT_IDmacro[internals]Allow for overriding ofECS_ID_CACHE_SIZEmacro[internals]Reduced bits reserved for id flags from 8 to 4[internals]Improved detection of platforms where execinfo/backtraceis not available[internals]ImprovedstrbufAPI so it relies less onstrlen[internals]Improved performance offlecs_sparse_clear
Known issues: https://github.com/SanderMertens/flecs/issues/765 https://github.com/SanderMertens/flecs/issues/714 https://github.com/SanderMertens/flecs/issues/620 https://github.com/SanderMertens/flecs/issues/478 https://github.com/SanderMertens/flecs/issues/314