Sander Mertens/flecs: Release v3.1.1
Name: flecs
Owner: Sander Mertens
Release: Flecs v3.1.1
Released: 2022-12-01
License: NOASSERTION
Release Assets:
Highlights
- Observer refactor with new hierarchy cache that can improve event propagation performance up to 200x
- Systems are now excluded from a schedule when their module or phase is disabled
- Single threaded systems are now guaranteed to run on main thread
- New journaling addon
Release notes
This version includes the following bugfixes:
- Fixed issue with page/worker iterators and
InOutNone - Fixed issue with invoking
on_addhooks when usingecs_bulk_init - Fixed issue with searching for union relationships
- Fixed C++ enum relationships on Apple Clang 14
- Fixed issue with batched deferred emplace and remove
- Fixed issue where ctx/binding_ctx was not set for multithreaded systems
- Fixed race condition with
no_readonlysystems in multithreaded apps - Fixed issue where pipeline would resume at incorrect point in schedule after merge
- Fixed issue with batched clear commands
- Fixed issue where auto-overriding components would write to wrong component
- Fixed issue with parsing template name in module
- Fixed assert during deferred component registration in multithreaded app
- Fixed leak in pipeline cleanup
- Fixed issues with sending valid preflight response in HTTP server
- Prevent sending response to invalid socket
- Don't call send on socket when reply has no data
- Fixed issue with setting symbol on entity with
IsArelationship - Fixed issue with observer that has multiple fixed sources
- Fixed escaping issue in doc strings in JSON serializer
- Fixed issue where serialized path of core entity was not relative to root
- Fixed HTTP socket leak, add timeout to connection socket
- Replaced incorrect cast to
floattoecs_ftime_tin system addon - Fixed issue with
flecs::filtermove assignment
This version includes the following improvements:
[c++]Add support for run callback to C++ observers[c++]Add typed method for getting iterator ctx in C++ API[c++]Add support for run callback to C++ systems[c++]Add.term<R>(string)and.term(R, string)overloads to filter builder[c++]Add shorthandwith/withoutmethods to filter builder API[c++]Add pair support toemplace[c++]Add pair support forflecs::ref[c++]Ensureset,set_overrideuse move for pairs where possible[journal]Implement journaling addin[queries]Improve performance of query rematching[filters]Allow for creation of named filters/rules[filters]Cache id record on filter terms for faster matching[rules]Enable overriding transitive behavior withselfflag[observers]Refactor observer code for improved event propagation performance[observers]Implement reachable id cache to improve event performance of adding relationships[pipeline]Add doc name to pipeline schedule tracing[pipeline]Exclude systems from pipeline with disabled phase/disabled module[pipeline]Run single threaded systems on main thread[iterator]Addecs_iter_firstfunction[query DSL]Add query DSL support for specifying flags for(r, t)notation[commands]Reduce lookups during command batching (performance improvement)[storage]Reduce overhead of table graph edges, improve table creation speed[stats]Always usedoublefor metric types to avoid precision issues[stats]Add REST and HTTP statistics[units]Add frequency units[rest]Add endpoint for requesting results of existing query[rest]Add endpoint for enabling/disabling entities[rest]Add caching for named query requests[rest]Start/stop HTTP servers when enabling/disabling REST module[http]Send HTTP headers in send thread[http]Improve response times and handling of HTTP preflight requests[http]Always use double precision for time values in HTTP server[doc]Add system examples[doc]Update C++ examples with simplified query variable syntax[doc]Add example to show how to forward declare component/tag variables[doc]Fix typos in manuals[doc]Add custom phase example that does not use builtin phases[doc]Remove outdated reference toecs_scope_iter[doc]Replaceflecs::entitywithflecs::entity_tin C++order_byexample[doc]Improve pipeline section of manual[doc]Add observer examples for C/C++[ux]Improve error message for conflicting symbols during implicit component registration[build]Improve directory structure of cmake build to match visual studio[build]Improve bazel build to support .inl files[internals]Don't free chunks inflecs_sparse_clear(performance improvement)[internals]Use faster sparse set function in table event batching admin[internals]Replace map with faster sparse set in generic allocator[internals]Use faster storage for id records in low id range[internals]Inline type_info sparse set
Known issues: https://github.com/SanderMertens/flecs/issues/844 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