Skip to content

0.8.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@reid-spencer reid-spencer released this 21 Aug 18:58
· 791 commits to main since this release

Language Changes:

  • Add a "new" operator for creating new things, currently just new UUIDs: new Id(entity <path.id>)
  • Change the syntax for path identifiers to include the ^ symbol as an operator to "go up one container" in the definition hierarchy
  • A story's implementedBy is now a DomainRef, not just a PathIdentifier
  • Messages no longer have a "sender" field automatically added to them
  • Entity Handlers can optionally have a "for state " expression to indicate how to handle messages in a specific state
  • Contexts now support projection definitions as a simple aggregate
  • Consequently, added support for projection references too
  • Context handlers now optionally have a "for projection " expression to indicate how to process a project's messages
  • Added an "append" action to support appending a value on to a collection of values
  • Fix precedence of operators so arbitrary ones come last
  • Recognize known operators "pow" and "now"
  • Support arbitrary operators like today()
  • Type validation is now implemented for expressions and actions
  • Alternations are no longer containers of type
  • Invariants can now be undermined (???)
  • Don't allow empty Plant definitions (must use ???)

AST changes:

  • Moved the isContainer method from RiddlValue to RiddlNode
  • Alternation is now a container of TypeExpression so it can be descended
  • "Implicit" is now a concept of any Definition equating to having an empty name. Currently only used by Examples
  • Added Projection class to AST for use in later work but needed for validation type expression in current work

New Features:

  • Add a subclass to Folidng State, PathResolutionState, to implement path resolution as described above.
  • Implemented field and TypeRef traversal for path resolution
  • Descriptions are not a missing item if the definition it is attached to is completely empty, say with ???
    ( Added a new experimental Kalix translator

Improvements

  • Added a new test case for running staged riddlc on arbitrary conf file
  • Add a lookupParentage method to Symboltable
  • Add a resolvePathFromSymTab method to Validation
  • Use new resolvepathFromSymTab method in checkPathRef
  • Make getPathIdType handle full path identifiers

Refactoring:

  • Generalize ValidationMessage into its own module, Messages, for use by any Folding pass
  • Add a subclass to Folding State, MessagesState for handling message generation

Bug Fixes

  • Fixed path resolution yet again to handle nested paths and includes
  • Fixed a bug with errors being reported for each popped include scope
  • Fixed a bug in inlet/outlet entity references
  • Path resolution works much better
  • Make sure hierarchy is right for OnClauses
  • Avoid checking for assignment compatibility in certain cases where
    it isn't possible

Miscellaneous:

  • Fix a variety of test cases impacted by all of the foregoing
  • Improved error messages in validation
  • Removed duplicate path resolution che
  • Improved build workflows. Uses latest hugo now
  • Added a releasing guide to document the process
  • Update the releasing guide
  • Add an IJ test case run file for testing arbitrary riddl source
  • Update the releasing guide
  • Add an IJ test case run file for testing arbitrary riddl source

Pull Requests Incorporated

Full Changelog: 0.7.1...0.8.0