Scalameta v4.1.0
We are happy to announce the release of Scalameta v4.1.0. Scalameta is a library to read, analyze, transform and generate Scala programs.
This release has been under development since September and includes contributions from 6 closing 11 tickets.
Faster tree traversal
Traversing trees is now up to 20x faster. Here is a benchmark traversing a large source file with ~6k lines of code:
[info] TraverserBenchmark.now XL avgt 10 1958.657 ± 22.550 us/op
[info] TraverserBenchmark.before XL avgt 10 36190.514 ± 585.949 us/op
See PR #1793 for more details. Big thanks to @marcelocenerine for this fantastic contribution!
Smaller semanticdb-scalac
The SemanticDB compiler plugin jar is now up to 8mb smaller. Due to a build mis-configuration with sbt-assembly, the jar previously included redundant classfiles that are now no longer included.
Java 11 support
The SemanticDB compiler plugin and symtab
module now work on Java 11. Previously, SemanticDB crashed when running under Java 11 due to removed APIs from the JDK and symtab
was unable to query information about symbol on the JDK boot classpath.
Documentation
There is now a new "Tree Examples" page on the website https://scalameta.org/docs/trees/examples.html
Big thanks to @MasseGuillaume for this contribution!
Fastparse
The fastparse dependency has now been shaded in order to not conflict with other libraries using the new Fastparse v2.
Contributors
$ git shortlog -sn --no-merges v4.0.0..v4.1.0
Ólafur Páll Geirsson
Jason Zaugg
Marcelo Cenerino
Claudio Bley
Gabriele Petronella
Guillaume Massé