Releases: NecsusECS/Necsus
Releases · NecsusECS/Necsus
0.14.1
0.14.0
Backwards Incompatible Changes
- Removed automatic tuple join sorting, which may affect code that relied on sorted output.
New Features
- Added support for
typeOfin directives. - Introduced a new
Resourcedirective and support for resources that require initialization. - Improved handling and flexibility for open symbols.
Bug Fixes
- Fixed normalization of open symbols in the event system.
- Improved accuracy of error locations and messages (
nimNode,getTupleSubtypes, and system variables now include clearer type information). - Fixed issues with
extendusage in bundles and tuple extension with generics. - Avoided unnecessary resource references to reduce overhead.
0.13.0
Backwards Incompatible Changes
- Directives have been changed from functors back to procs. For most projects,
this should be a transparent change. However, if you were depending on directives
beingobjectsyou will need to update your code to use theprocsinstead.
Bug Fixes
- Resolved error when detaching a component not present in the archetype
- Fixed issue with optionally detaching accessories
New Features
- Added support for union types in event declarations
- Allow
AttachandSwapto operate on objects that don't support copies (Nim >= 2.3)
0.12.0
Backwards Incompatible Changes
- No known backwards incompatible changes
New Features
- Remove archetype sorting restriction
- Add generations to entity IDs to prevent entity confusion when entity IDs are recycled
- Add
DeleteAlldirective - Add
fromforSystemVar - Support
Localdirectives in bundles - Add
maxCapacitypragma - Add
requireMaxCapacitybuild flag - Add
necsusSystemTraceflag - Improve log message for necsusEntityTrace
- Use system IDs for profiling
Performance improvements
- Remove closure iterators from queries
- Lazy archetype alloc by default
- Pre-initialize event inboxes
- Fast compile mode improvements
- Faster archetype iteration
Bug Fixes
- Allow missing keys while parsing
- Allow open symbols in directive parsing
- Support all directives for
runSystemOnce - Handle missing entities
- Fix instantiation order of time values
- Fix index error for
Notqueries with accessories - Fix infinite loop in
-d:dump - Fix bundle privateAccess error for built systems
- Fix conflicting
eventsysmailbox names - Don't send messages to inactive systems
- Generate
sendProcforIndirectEventCallbacksystems - Add missing necsus imports
-d:dump
0.11.2
0.11.1
0.11.0
0.11.0
Bug Fixes
- Fix inbox sharing when a system is assigned to a variable
- Fix inbox name collisions when argument names were the same
- Fix error messages when a system incorrectly returns a value
- Fix invalid code dumping when a newline is injected after a sink parameter
- Allow joined tuples to operated on joined tuples
Backwards incompatible changes
- Use
()operator for directives instead of passing in procs. This improves compile speed
and performance by removing the need for Nim to create and manage closures. However, it
requires that all Necsus users enable the--experimental:callOperatorflag. - Remove the
necsusFloat32flag and instead useBiggestUIntandBiggestFloat
New Features
- Accessory components
- Adding the
accessorypragma means that a component no longer forces the creation
of new archetypes. This reduces the size of generated code and improves compile speed.
- Adding the
- Adds
SystemVar.clear - Support tuple joining without explicit type definitions
- Add an error message when attach/detach/swap fails
- Build speed improvements
- Adds
SaveSystemInstanceandEventSystemInstancetypes - Fast compile mode for speeding up IDE integration
0.10.0
Bug Fixes
- Fix memory corruption bug caused by Nim mishandling sink parameters
- Support tuples in
SharedandLocal - Fix a bug where an instanced
eventSyscan't be invoked
New Features
- Add compiler flags for tracing various behavior during execution
-d:necsusSaveTrace-- Log save and restore activity-d:necsusQueryTrace-- Log executed queries-d:necsusEventTrace-- Log when an event is sent-d:necsusEntityTrace-- Log when entities are created, modified or deleted
- Overall reduction of memory allocations
Backwards incompatible changes
- Mark the logger parameter as
gcsafeandraises: [] - Remove the
sinkflag from theOutboxproc parameter
0.9.1
v0.9.0
Breaking Changes
No known breaking changes
New Features
extendandjoinmacros for combining tuple typeseventSyssystem type- Include
importstatements when using-d:dump - Support for
Optionalcomponents inDetachdirectives - Add the
Swapdirective - Add the
-d:archetypesbuild flag - Support component aliases with generics
SaveandRestoredirectives, along withsaveSysandrestoreSyssystem types- Returning
SystemInstanceautomatically flags a system as instanced.
Other Changes
- Ensure that archetype rows are never copied
- Silence noisy compiler warnings
- Reduce size of generated code by around 50%
- Logger is disabled by default