Skip to content

Scalameta v4.1.0

Compare
Choose a tag to compare
@olafurpg olafurpg released this 28 Nov 16:28
18229e3

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

screenshot 2018-11-28 at 16 26 13

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é