Skip to content

Release 1.1.7

Compare
Choose a tag to compare
@florianschanda florianschanda released this 18 Aug 11:48
· 158 commits to main since this release

1.1.7

  • [TRLC, LRM] Fixed a missing restriction on tuple types that
    permitted interesting nesting of tuples with separators and optional
    components. The restriction forbids any tuple with declared
    separators from having components that are themselves tuples with
    separators. We may relax this restriction in the future to permit
    some combinations where this doesn't lead to parsing problems for
    values.

    The problem can be seen in this example:

    tuple T {
       a String
       separator @
       b optional Integer
    }
    
    tuple Q {
       a T
       separator @
       b optional Integer
    }
    

    If we now write "foo" @ 12 then there is no possible way to
    specify if you meant:

    • Instance of Q where a is "foo" @ 12 and b is unspecified
    • Instance of Q where a is just "foo" and b is 12
  • [TRLC, LRM] Fixed LRM and tools allowing empty enumerations. This is
    now explicitly forbidden. It was always unreasonable to do this as
    it would have been impossible to use the enumeration type, and there
    is no legitimate use-case anyway since you cannot add more literals
    later through e.g. a type extension.

  • [TRLC] Add alternative entry-point for users who cannot modify their
    PATH. You can now do python3 -m trlc [args...] and it works just
    like trlc [args...].

  • [TRLC] Fix tool crash when encountering a file not in UTF-8
    encoding. We now print an error message indicating the issue.

  • [TRLC] Fix bug when parsing arrays: arrays without comma separators
    were accapted when they should have been rejected.

  • [TRLC] Fix tool crash when parsing a file with an unterminated /*
    comment.

  • [LRM] Fix typo in in several places: .rls should be .rsl.