All Versions
11
Latest Version
Avg Release Cycle
67 days
Latest Release
1830 days ago

Changelog History
Page 2

  • v0.3.3 Changes

    September 07, 2017

    ๐Ÿš€ This release focuses on performance and library improvements, keeping backwards binary compatibility with previous releases in 0.3.x series.

    ๐ŸŽ Performance improvements ๐Ÿ‘Ÿ

    ๐Ÿš€ This release provides a number of performance tweaks to reduce overhead of stack traces, equality comparisons and boxing of primitives:

    #963 #995 Cache stack trace elements (by @Duhemm)
    #982 Short-circuit virtual dispatch for == and ## (by @densh)
    0๏ธโƒฃ #990 Avoid virtual dispatch in default implementation of == and ## (by @densh)
    #997 == null must not call equals (by @densh)
    #1000 Cache primitive numeric boxes (by @densh)

    The combination of these changes provides up to 5x reduction of running time on some of our benchmarks:

    screen shot 2017-09-06 at 10 22 38

    ๐Ÿš€ (Running time per benchmark, normalized by 0.3.2, nativeGC := "immix", nativeMode := "release".)

    ๐Ÿฑ Library improvements ๐Ÿ“š

    ๐Ÿ‘ As part of the GSoC, @asoltysik has contributed initial support for server and client sockets from java.net:

    #914 Implementation of TCP Sockets and InetSocketAddress (by @asoltysik)
    #917 Server socket implementation (by @asoltysik)

    ๐Ÿ‘ Another major area of improvements is near-complete support for java.util.zip and java.util.jar APIs contributed by @Duhemm from the Scala Center:

    ๐Ÿ‘ #933 Add support for java.util.zip.Checked{Input, Output}Stream (by @Duhemm)
    ๐Ÿ‘ #935 Add support for java.util.zip.{ZipFile, ZipEntry} (by @Duhemm)
    ๐Ÿ‘ #942 Add support for manipulating JAR files with java.util.jar (by @Duhemm)
    ๐Ÿ‘ #964 Add support for java.util.zip.Zip{Input, Output}Stream (by @Duhemm)
    ๐Ÿ‘ #966 Add support for java.util.jar.Jar{Input, Output}Stream (by @Duhemm)

    โž• Additionally there is also improved support for:

    ๐Ÿ‘ #931 Add support for java.io.PushbackInputStream (by @Duhemm)
    #938 Port BufferedOutputStream from Apache Harmony (by @Duhemm)
    ๐Ÿ‘ #976 Add support for scala.Enumeration (by @Duhemm)
    ๐Ÿ‘ #985 Add support for scala.util.Properties (by @Duhemm)

    Thanks to these changes we could run scalac (with minimal modifications) compiled ahead-of-time:

    It's been a while since our last update. Here is a sneak peak on what @mnduhem and @den_sh have been secretly hacking on lately. pic.twitter.com/UduPKctQme

    โ€” Scala Native (@scala_native) August 3, 2017

    ๐Ÿฑ Stub linking ๐Ÿ”—

    ๐Ÿš€ This release changes the way we link unimplemented parts of the java.* space. Previously we would unconditionally link all the stubbed methods, potentially causing failures at runtime (by throwing scala.NotImplementedError.)

    ๐Ÿ— Now, those methods are marked as @stub-s and are not linked by default. To enable stub linking one must explicitly specify it in their builds:

    nativeLinkStubs := true
    

    ๐Ÿ— By default stubs are not linked and are shown as linking errors. This is a build-breaking change for existing projects that used to rely on the old linking behavior.

    ๐Ÿ›  Bugfixes and tooling improvements ๐Ÿ› ๐Ÿ”ง

    #700 #921 Improve unicode handling in regular expressions (by @matil019)
    ๐Ÿ›  #817 Maintain a fixed-size cache of compiled RE2 patterns (by @matil019)
    #871 Silence stderr of which during linking (by @matil019)
    ๐Ÿ— #911 Build fails if there are no sources in src/main/scala (by @ekrich)
    ๐ŸŽ #928 Improve performance of NIR code generation (by @densh)
    #941 Make sure we deterministically produce the same binaries (by @densh)
    โšก๏ธ #952 Update the nativeGC settingKey description (by @xuwei-k)
    #969 Fix curMethodThis in tailrec methods (by @densh)
    #972 Add @stub annotation to mark stubs (by @Duhemm)
    ๐Ÿ— #977 Fixes build if a parent directory is called gc (by @ekrich)
    #1001 Implement j.l.a.RetentionPolicy to fix javalib incremental compilation (by @matil019)

    Contributors ๐Ÿ‘ฅ

    ๐Ÿš€ According to git shortlog -sn --no-merges v0.3.2..v0.3.3, 6 people contributed to this release:
    Denys Shabalin, Martin Duhem, matil019, Andrzej Soล‚tysik, Eric K Richardson, Kenji Yoshida

    ๐Ÿฑ Thank you all! โœจ ๐Ÿฐ โœจ