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 and GetPrevEntity.
  • Removed I_Entity.Id, I_Entity.Get, and their corresponding implementations.
  • Added I_Entity.GetNextComp and I_Entity.GetPrevComp, along with their implementations.
  • Renamed I_FatComponent to I_Component, and I_Component to I_RawComponent, as I_RawComponent is used less frequently than I_Component.
  • Added Err.End error value and the IsEnd function.

2.0.0

  • Renamed to StageCore.
  • Renamed MatchTagPatternPath to MatchPath.
  • MatchPath now returns Err.NoMatch upon fail instead of None.
  • Removed List and Sets to StageUtils.
  • 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 a Phase property, allowing the same I_Execute implementation to participate in multiple execution stages through a single method. The same feature has been added to I_Init and Init.

1.1.0

  • New Feature: Entity Scopes – Introduced a seamless and automatic way to assign components to entities using EntityStart, EntityEnd, and EntityExtend(I_Entity). Components are now automatically linked when declared within these function blocks.
  • Removed all ...Proxy function blocks. Their functionality has been integrated into the Proxy property of corresponding function blocks. Example:
    signal: Signal := (Proxy := iSignalEmit1, Proxy := iSignalEmit2);
    
  • Tag has been split into TagBase and Tag.
    • TagBase is not a component.
    • Tag is a component and will be added to the entity automatically.
  • TagBase and Tag no longer require an Option upon initialization. This property can now be set optionally:
    tag: Tag := (Option := 'SomeOption');
    
  • _tag: Tag in State 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 of Receiver and Signal function block tags.
  • Added IsFail function, that returns TRUE if the Result is NOT Ok.
  • Improved comments
  • Change Result of many methods that previously returned None to return Err.NotFound instead.
  • GetUnixTime now allows offset.
  • Fix typos ArgToI*Arg to IArgToI*Arg.
  • In all Get* methods/functions, replaced VAR_OUTPUT with VAR_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 to GetTaskCycleTime.
  • Added Random to Math.

1.2.0

  • Added ExptDecay and GetCycleTime methods to Math program.

1.1.0

  • Added Math feature that aggregates various math related functionality such as LowPassFilter, Random or Normalization.

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 to GetUnixTime.
  • Fix: GetSysTime now correctly returns UNIX based timestamp.

1.0.0

  • Release