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_add
hooks 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_readonly
systems 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
IsA
relationship - 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
float
toecs_ftime_t
in system addon - Fixed issue with
flecs::filter
move 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
/without
methods to filter builder API[c++]
Add pair support toemplace
[c++]
Add pair support forflecs::ref
[c++]
Ensureset
,set_override
use 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 withself
flag[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_first
function[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 usedouble
for 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::entity
withflecs::entity_t
in C++order_by
example[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