Skip to content

sift-0.15.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 21 Aug 10:56
· 1 commit to main since this release

sift-0.15.0 2023-08-21

Further Performance Improvements to Traced(/Tracked) elements

  • Optimized element trace tracking for elements with registered entities.
  • A bloom-like filter for expediently discarding element traces during lookups.
  • Discarding traces which are subsets of other traces is now more efficient.
  • Considerably fewer traces are now generated during template execution.

New/Tweaks

  • Dsl.Synthesis: inject(ByteArray|KClass|Class) embeds the provided class into the template and adds it
    to the set of input classes. This method is primarily used to introduce new classes to the system model
    that are not originally part of the input classes. These could be shared code utility classes or any
    other classes that augment the functionality or structural understanding of the system.
  • --statistics has been updated with template deserialization time amd additional data on element traces.
  • Added repeatable --column option to tree output. Valid columns identifiers: all, element-id, element-type,
    entity-type.
  • -x/--debug-element-trace shows all traces associated with the requested element id. The element id can be
    obtained from --column element-id or --column all. Elements traverse parent and child nodes when associating
    entities with one another and when associating property() data with entities.
    inspecting traces of ProductCountIncrementEvent
  • -X/--debug-inverse-trace reverses the element trace, used together with --debug-element-trace.

Breaking changes

  • --dump-system-model short option name has been renamed to -D.

Fixes

  • DSL: fix invocationsOf() discarding traces when multiple multiple elements invoke the same method element.
  • DSL: methods {} now iterates methods for interfaces, even when there's no implementation.
  • Fix parsing the signature involving formal type parameters.
  • Resolving inherited methods from interfaces failed to traverse the hierarchy beyond the first interface.