Skip to content

Flecs v3.2.11

Latest
Compare
Choose a tag to compare
@SanderMertens SanderMertens released this 07 Feb 21:03
· 96 commits to master since this release
198607d

Highlights

  • Hytale is using Flecs as the backbone for their upcoming engine!
  • More than half of the contributions in this release are from the community ❤️
  • Work on Flecs 4.0 is well underway, with simpler query APIs and better performance! Follow progress here

Release notes

This version includes the following bugfixes:

  • Fix issue with parsing newlines in query strings
  • Fix issue with registration of nested types in module
  • Fix issue in rule engine with lookup variables and equality operators
  • Fix issue with rules that are partially trivial
  • Fix issue where a member with a missing MetaType wasn't correctly handled (thanks @ZeroErrors!)
  • Fix issue where query term with equality operator was incorrectly marked as trivial
  • Fix potential out of bounds read in rule engine
  • Fix JSON serialization error for labels with double quotes
  • Fix issue with evaluating R(_, _) and _(_, T) queries
  • Fix issues with not/optional operators and terms with any (_) source
  • Fix issue where rule compiler would not detect uninitialized lh of equality operator
  • Fix issue where ecs_ref_t could point to invalid component after table recycling
  • Fix issue in code that dedups events for multi-component observers
  • Fix issue where observer could access deleted id record during world cleanup

This version includes the following improvements:

  • [cpp] Add missing overloads for delete_with and remove_all (thanks @Charlie-83!)
  • [cpp] Add FLECS_CPP_NO_AUTO_REGISTRATION flag to disable automatic component registration
  • [cpp] Add flecs::string::contains
  • [cpp] Add support for associating a timer/tick source with a type (thanks @ZeroErrors!)
  • [cpp] Add missing const to entity_view methods (thanks @waywardmonkeys!)
  • [cpp] Add missing flecs::doc::get/set_color() functions (thanks @waywardmonkeys!)
  • [cpp] Mark explicit move ctors/operator= as noexcept (thanks @waywardmonkeys!)
  • [cpp] Remove redundant void arg of log function (thanks @waywardmonkeys!)
  • [query-dsl] Add support for R(A, B || C) syntax to DSL
  • [query] Fill out ecs_iter_t.system when using filters, queries and rules (thanks @BeanCheeseBurrito!)
  • [query] Improve string conversion of queries with equality operators
  • [rule] Skip empty ids for R(_, *) and *(_, T) queries
  • [json] Implement serializer for user-friendly JSON format
  • [json] Add option for serializing query field metadata
  • [rest] Fix issue where cached REST request would always return code 200
  • [rest] Add try parameter that prevents throwing HTTP error when trying out queries
  • [snapshot] Reduce copies when duplicating tables with non-POD components for snapshots (thanks @ZeroErrors!)
  • [strbuf] Simplify implementation of ecs_strbuf_t, improve performance
  • [http] Improve performance of ecs_http_server_request
  • [http] Enable caching of HTTP requests made from C API
  • [log] Don't mix writing to stderr/stdout in logging output
  • [log] Make output file used by logging functions configurable
  • [doc] Fix copy-paste issues with type names (thanks @waywardmonkeys!)
  • [doc] Fix relationship example by specifying inout (thanks @garrett-is-a-swann!)
  • [doc] Update Doxygen to v1.10.0 (thanks @ZeroErrors!)
  • [doc] Enable graphviz dot files in Doxygen (thanks @ZeroErrors!)
  • [doc] Change defgroup documents to use autobrief (thanks @ZeroErrors!)
  • [doc] Fix typos (thanks @waywardmonkeys!)
  • [doc] Fix typos and spelling errors (thanks @ZeroErrors!)
  • [doc] Fixed documentation link in quickstart addons section (thanks @DJLink!)
  • [doc] Remove spurious asterisk (thanks @waywardmonkeys!)
  • [doc] Use @code/@encode (thanks @waywardmonkeys!)
  • [doc] Fix grouping errors in C docs (thanks @waywardmonkeys!)
  • [doc] Link function names in doc comments (thanks @waywardmonkeys!)
  • [doc] Fix ecs_doc_get_name code samples (thanks @waywardmonkeys!)
  • [doc] Add tab widget for code snippets (thanks @ZeroErrors!)
  • [doc] Add Extermination Shock to readme
  • [doc] Add Hytale to readme
  • [doc] Improve doc addon docs (thanks @waywardmonkeys!)
  • [doc] Fix doxygen warnings (thanks @waywardmonkeys!)
  • [doc] Add missing doc.brief descriptions to flecs entities
  • [doc] Add C# example snippets to Quickstart, RestApi, System manuals (thanks @BeanCheeseBurrito!)
  • [ci] Update pages workflow actions (thanks @waywardmonkeys!)
  • [ci] Add macOS-14 Apple Silicon jobs (thanks @waywardmonkeys!)

Benchmark results
https://github.com/SanderMertens/ecs_benchmark/tree/4681e8606aa9204b97f6316d3611e9f0d2572852

Known issues:
#844
#765
#714
#620
#478
#314

New Contributors

Full Changelog: v3.2.10...v3.2.11