Flecs v3.2.2
Highlights
- New entity index data structure which improves performance of create/delete/add/remove by 10-20%
- Replaced hash implementation with wyhash, improving table creation performance by 15-30%
- Graph visualization of queries in the explorer!
Release notes
This version includes the following bugfixes:
- Fix issue where assert would trigger during (component) id deletion
- Fix issue with detecting redeclared variables in flecs script
- Fix incorrect value of
EcsTypeKindLast
- Fix issue with creating query on entity that already has an existing query
- Fix potential crash in
ecs_iter_fini
when using chained iterators - Fix issue where observer could cause emplace to return invalid pointer
- Fix issue where
With
pair would assume type of pair target - Fix inconsistencies in enum constant registration between C and C++ APIs
- Fix issues with symmetric relationships and recycled ids
- Add missing
ecs_rule_var_count
,ecs_rule_var_name
andecs_rule_var_is_entity
functions (thanks @copygirl!) - Fix inconsistent naming of desc size constants
- Fix issue where id record could get deleted twice during world cleanup
- Fix incorrect JSON serialization of pair ids
- Fix bug in query creation with recycled relationship id
- Add missing imports to monitor module
- Fix assert when iterating rule with
0
source - Fix possible leak when reassigning system/observer ctx/binding_ctx
- Fix crash in
ecs_pipeline_stats_get
when obtaining stats for pipeline with one task system
This version includes the following improvements:
[cpp]
Don't compileECS_FUNC_*
marco's for C code (thanks @aganm!)[cpp]
Addcomponent::constant
overload that works with enum classes[cpp]
Removeentity_view::delta_time
function[cpp]
Change argument ofenable_rest
to HTTP port[c]
Remove unnecessarysep
variable initialization inecs_new_from_path_w_sep
(thanks @copygirl!)[c]
Addport
member toecs_app_desc_t
[http]
use non-blocking socket forrecv
which increases stability for servers with many clients[docs]
Add note on pipeline switching performance[docs]
Update outdatedcascade
example in quickstart[docs]
Fix incorrect comment foriterable::each
(thanks @ZeroErrors!)[docs]
Fix error in quickstart example[json]
Improve error handling of JSON iterator serializer[rest]
Propagate serialization errors to REST endpoints[rest]
Log errors that happen while replying to REST request to console[metrics]
Improved logic for deriving metric name from enum constant inuntyped_component::metric
[internals]
Implement new entity index data structure[internals]
Replace hash function with wyhash[portability]
Emulate POSIX atomics for systems that do not have GNU builtins (thanks @aganm!)[portability]
Add compiler support for tinycc (thanks @aganm!)[ci]
Add vs2017 job to CI
Benchmark results
https://github.com/SanderMertens/ecs_benchmark/tree/7bb9d7cf672f0b5991b5faff4f5f8cc5afcd94ef
Breaking changes:
- The
entity_view::delta_time
method has been removed (#466 (comment)) - The argument of
app_builder::enable_rest
has changed (#466 (comment))
Known issues:
#969
#965
#844
#765
#714
#620
#478
#314
Full Changelog: v3.2.1...v3.2.2