Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
Flecs v4.1.0 source code.tar.gz | 2025-06-29 | 24.1 MB | |
Flecs v4.1.0 source code.zip | 2025-06-29 | 25.1 MB | |
README.md | 2025-06-29 | 7.4 kB | |
Totals: 3 Items | 49.2 MB | 1 |
Release announcement
https://ajmmertens.medium.com/flecs-4-1-is-out-fab4f32e36f6
Release notes
This version includes the following bugfixes:
- [core]
Add missing FLECS_API
to ecs_get_path_w_sep_buf
- [core]
Fix issue with component toggling in multithreaded apps
- [core]
Fix issue where not having a default ctor would mark copy/move ctor as invalid
- [core]
Fix issue where component_record::keep_alive
refcount was incorrectly updated by observers (thanks @garrett-is-a-swann!)
- [core]
Fix misaligned addresses in sanitized mode
- [queries]
Fix issue with change detection after early outing from iterator
- [queries]
Fix issue where query incorrectly flagged itself as MatchOnlySelf
- [observers]
Don't assert on invalid observer creation
- [observers]
Fix uninitialized value in multi-component OnSet
observer when overriding
- [json]
Fix crash when escaping null character in JSON serializer
- [script]
Fix issue in script template instantiation where children vector was deleted while iterating
- [script]
Fix script assert when adding component as tag without default ctor
- [script]
Fix issue where token buffer was incorrectly used for interpolated strings
- [script]
Fix assert when parsing incorrect syntax for interpolated strings
- [http]
Fix buffer overflow in ecs_http_server_request
function
- [rest]
Fix serialization of pipeline statistics to JSON
- [os]
Fix bug where a condition variable was not correctly freed on Windows (thanks @kagetu!)
This version includes the following improvements:
- [cpp]
Change flecs::entity::parent()
to use ecs_get_parent
- [cpp]
Add size()
, entities()
, clear_entities()
, column_size()
, depth()
, records()
, id()
, lock()
, unlock()
, has_flags()
methods to C++ table API
- [cpp]
Run system queries entirely in C++ to avoid function pointer overhead
- [cpp]
Change return type of get()
to const T&
- [cpp]
Change return type of get_mut()
to T&
- [cpp]
Add new try_get()
with const T*
return type
- [cpp]
Add new try_get_mut()
with T*
return type
- [cpp]
Add entity_view::get_constant()
for fetching constant from enum relationship
- [cpp]
Add entity::child()
method for spawning a child of an existing entity
- [cpp]
Remove redundant set
functions
- [cpp]
Implement entity::assign()
method
- [c]
Add ecs_singleton_get_mut
, ecs_singleton_ensure
- [core]
Remove redundant ecs_header_t::magic
field
- [core]
Reduce large initial size of table edge diff builder vectors
- [core]
Reduce page size of entity index
- [core]
Shrink world after bootstrap when FLECS_LOW_FOOTPRINT
is defined
- [core]
Allocate stack allocator page on first use, not when initializing the allocator
- [core]
Bypass ecs_allocator_t
when using FLECS_USE_OS_ALLOC
- [core]
Reclaim memory from stages when calling shrink()
- [core]
Improve performnace of ecs_ref_get
- [core]
Implement support for non-fragmenting components
- [core]
Cleanup sparse set functions
- [core]
Implement world exclusive access feature
- [core]
Remove redundant entity count arguments from internal functions
- [core]
Improve organization and documentation of core code
- [core]
Implement OrderedChildren
storage
- [core]
Remove redundant fields from ecs_iter_t
- [core]
Make sure ecs_vec_reclaim
frees memory when FLECS_USE_OS_ALLOC
is defined
- [core]
Remove support for creating entity ids in multithreaded mode
- [core]
Remove support for Union
relationships (replaced by DontFragment, Exclusive
)
- [core]
Move core tags out of low id range
- [queries]
Improve detection of trivial queries
- [queries]
Don't use large static arrays in query struct
- [queries]
Reduce size of ecs_query_op_ctx_t
- [queries]
Default to uncached queries when FLECS_LOW_FOOTPRINT
is defined
- [queries]
Speed up query evaluation with bloom filter
- [queries]
Remove redundant table_id
field from query cache element
- [queries]
Reduce query cache footprint by removing dependency on ecs_table_cache_t
- [queries]
Add trivial query cache iterator
- [queries]
Speed up change detection for trivial queries
- [queries]
Remove now redundant query notification mechanism
- [queries]
Use smaller query cache element for trivial queries
- [queries]
Use array to store query cache elements instead of a linked list
- [queries]
Cache column pointers on query cache elements
- [queries]
Allow using trivial query cache for queries with not/optional operators
- [queries]
Treat !(R, *)
terms as cacheable
- [queries]
Prevent rematching when creating/deleting targets of traversable relationships
- [queries]
Change argument of ecs_iter_get_group
to const ecs_iter_t*
(thanks @Indra-db!)
- [observers]
Support single-term observers without query
- [systems]
Improve performace of running systems by using more efficient iteration function
- [timer]
Replace AddTickSource
system with With
pair
- [pipeline]
Improve performance of running systems in pipeline
- [meta]
Implement ordered enum/bitmask constants (thanks @Bonkt!)
- [script]
Add flecs::entity::lookup()
method to script
- [build]
Add Android support to cmake build (thanks @jiannanya!)
- [docs]
Fix C# filter example in observer manual
- [docs]
Add clojure binding to quickstart guide (thanks @pfeodrippe!)
- [docs]
Remove unmaintained Rust binding from README (thanks @Indra-db!)
- [docs]
Add new jellycacke videos on observers and singletons
- [docs]
Add link to ECS survivors to docs
- [docs]
Update change tracking examples
- [docs]
Add FEAST game to README
- [docs]
Remove Hytale game to README
- [docs]
Remove outdated references to instancing in query manual
- [docs]
Improve monitor example in observer manual
- [docs]
Fix incorrect location of lookup variable section in query manual
- [docs]
Add ECS Survivors, Ascendant to README
Breaking changes:
- Change detection now has to be explicitly enabled on queries (https://github.com/SanderMertens/flecs/discussions/466#discussioncomment-13249013)
- It is no longer possible to pass 0
to the size argument of ecs_field_w_size
(https://github.com/SanderMertens/flecs/discussions/466#discussioncomment-13249030)
- It is no longer allowed to create entities in multithreaded systems (https://github.com/SanderMertens/flecs/discussions/466#discussioncomment-13393095)
- get
/get_mut
now return references instead of pointers (https://github.com/SanderMertens/flecs/discussions/466#discussioncomment-13438915)
- get
no longer returns the enumeration constant when used with enum relationship (https://github.com/SanderMertens/flecs/discussions/466#discussioncomment-13438960)
- Union
relationships are no longer supported (https://github.com/SanderMertens/flecs/discussions/466#discussioncomment-13578339)
New Contributors
- @sean-reed made their first contribution in https://github.com/SanderMertens/flecs/pull/1612
- @Bonkt made their first contribution in https://github.com/SanderMertens/flecs/pull/1619
- @jiannanya made their first contribution in https://github.com/SanderMertens/flecs/pull/1646
Full Changelog: https://github.com/SanderMertens/flecs/compare/v4.0.5...v4.1.0