This release includes the following major improvements:
- #360: There are additional
def
shorthands with the same parameters as theuntil
shorthands with the difference that the terminator is not included in the parsegraph. This allows for writingdef
s until the beginning of a next token, without consuming it. - #375: There is a new expression
Join
and matching shorthandsjoin
. With this expression you can join any arbitrary set of expressions and this evaluates to a single flattened list. - #392: The expression
ref
accepts multiple names and finds values that matches any of these names. The values are returned in parsing order, not in the order the names are specified. - #399: Introducing
ParseValueCache
. This cache keeps track of any value by name, which improves the performance ofref
by name significantly, since it will not need to process the entire ParseGraph for eachref
anymore.
Additionally, some smaller changes have been made. Most significantly:
- #367 Bugfix: The name of an
until
is now included in the scope name of the innerdef
. - #405: There is a huge performance gain when using ConcatenatedValueSource for concatenating large chunks of data.
- #402: Hashes of all immutable objects within metal are cached, which improves performance when using these objects in a HashMap.
- #362: Builds are now automatically run by GitHub actions.
Note: The next Metal version will require at least a JRE of version 17 instead of 11.
Full Changelog: v9.0.0...metal-10.0.0
For a more detailed list of changes, please see the 10.0.0 Milestone.