Changelog - Krystian-L-Lis/Stage GitHub Wiki
#Changelog
Core:
3.1.0
- Optimized runtime behavior to consume less stack memory.
3.0.0
- Refactored the Entity-Component system to remove reliance on external library parameters. The underlying implementation has been changed to a linked list.
- Removed
GetEntity
. - Added
GetNextEntity
andGetPrevEntity
. - Removed
I_Entity.Id
,I_Entity.Get
, and their corresponding implementations. - Added
I_Entity.GetNextComp
andI_Entity.GetPrevComp
, along with their implementations. - Renamed
I_FatComponent
toI_Component
, andI_Component
toI_RawComponent
, asI_RawComponent
is used less frequently thanI_Component
. - Added
Err.End
error value and theIsEnd
function.
2.0.0
- Renamed to
StageCore
. - Renamed
MatchTagPatternPath
toMatchPath
. MatchPath
now returnsErr.NoMatch
upon fail instead ofNone
.- Removed
List
andSets
toStageUtils
. - Removed pairing and unpairing functionality from
I_Receiver
. - Added
AbstractReceiver
to streamline building custom receivers. This FB merges receiver and callable functionality. - Added
Err.InvItf
to cover scenarios when interface valid but incorrect.
1.2.0
- The
I_Execute.Execute(nPhase: INT)
method now supports dynamic phase dispatch. Each execution node includes aPhase
property, allowing the sameI_Execute
implementation to participate in multiple execution stages through a single method. The same feature has been added toI_Init
andInit
.
1.1.0
- New Feature: Entity Scopes – Introduced a seamless and automatic way to assign components to entities using
EntityStart
,EntityEnd
, andEntityExtend(I_Entity)
. Components are now automatically linked when declared within these function blocks. - Removed all
...Proxy
function blocks. Their functionality has been integrated into theProxy
property of corresponding function blocks. Example:signal: Signal := (Proxy := iSignalEmit1, Proxy := iSignalEmit2);
Tag
has been split intoTagBase
andTag
.TagBase
is not a component.Tag
is a component and will be added to the entity automatically.
TagBase
andTag
no longer require anOption
upon initialization. This property can now be set optionally:tag: Tag := (Option := 'SomeOption');
_tag: Tag
inState
function blocks is now accessible in derived function blocks.- Runtime execution will be disabled if the
DebugMsg
table contains any entries. - Change visibility of all State methods to protected.
- Change visibility of all FB_Init methods with attribute 'hide'.
- Exposed
Option
ofReceiver
andSignal
function block tags. - Added
IsFail
function, that returnsTRUE
if theResult
is NOT Ok. - Improved comments
- Change
Result
of many methods that previously returnedNone
to returnErr.NotFound
instead. GetUnixTime
now allows offset.- Fix typos
ArgToI*Arg
toIArgToI*Arg
. - In all
Get*
methods/functions, replacedVAR_OUTPUT
withVAR_INPUT REFERENCE TO ...
to reduce boilerplate.
1.0.1
- Update project to 4026.13
1.0.0
- Release
Utils
2.0.0
- Renamed to
StageUtils
. - Added lazy implementations:
ArgList
,ArgQueue
,CompList
,CompSet
. - Fixed
GetCycleTime
and renamed it toGetTaskCycleTime
. - Added
Random
toMath
.
1.2.0
- Added
ExptDecay
andGetCycleTime
methods toMath
program.
1.1.0
- Added Math feature that aggregates various math related functionality such as
LowPassFilter
,Random
orNormalization
.
1.0.2
- Fix:
GetUnixTime
now returns the correct timestamp. Previous timestamp returned value 78 seconds in the future. - Fix: Removed obsolete dependences.
- Update project to 4026.13
1.0.1
- Breaking change:
GetSysTime
changed toGetUnixTime
. - Fix:
GetSysTime
now correctly returns UNIX based timestamp.
1.0.0
- Release