Scala Center monthly update - May 2021

Dear Contributors, Dear Community,

In this post, we would like to share our May monthly report and tell you what the Scala Center team (and the community) was recently working on.

Scala Native

  • Added support for Windows / MSVC complaint code generation (2281)
  • Added minimal needed implementation for running JUnit tests on Windows (2287 )
  • Fixed Commix GC going into infinite loop on Windows (2294)
  • Fixed Out-Of-Memory errors in GCs when not using maximal heap size limit on Windows (2293)
  • Added support for Scala 2.13.6
  • Started to work on multi-threading support and re-implementing java.util.concurrentAPI

Scala.js

  • Various bug fixes
  • Polish the reimplementation of java.util.regex.*
  • Proper implementation of java.lang.ref.WeakReference and ReferenceQueue, as a separate library
  • Added restriction in Scala 3 compiler that export clauses may not appear in JS native types and JS non-native traits.
  • Removal of js.native and js.annotation.* annotations from exported definitions

Scala 3 migration guide

Scaladex

  • Added indexing of libraries compiled with Scala 3 final versions
  • Removed indexing of libraries compiled wiht Scala 3 milestone versions

Scala3-migrate

  • Added support to migrate Test and custom configurations for projects
  • Added support for the final release of Scala 3

Scalafix

Metals

  • released v0.10.3 with support for Scala 3.0.0
  • multiple fixes to Scala 3 support

Scalameta

  • Fixed multiple issues with parser for Scala 3 - latest release is v4.4.20
  • Added support for -Xsource:3 in semanticdb plugin
  • Encode end marker positions for Scala 3 symbols in semanticDB

Scalafmt

  • Fixes for formatting Scala 3 code
  • Working on RC releases to gather feedback - latest release is v3.0.0-RC1

MOOCS

We have updated most of our online course to Scala 3:

The Scala 2 version of the courses can still be found at the following URLs:

Effective Programming in Scala

  • We have released our new course, Effective Programming in Scala. This course teaches Scala to non-Scala programmers, it is hands-on, and covers the essentials to be ready to work in Scala. It is also a way to learn Scala 3 for Scala 2 programmers.
  • Published promotional video on Youtube

Google Summer of Code

  • Allocated the 4 slots that Google provide us with to 4 proposals
  • Onboarding students

Scala Documentation

We have created, reviewed, or merged several pull requests improving the website https://docs.scala-lang.org:

sbt-version-policy

The plugin sbt-version-policy has reached a stable state, the latest release supports Scala 2 and Scala 3.

Scala 3 Compiler & Library

TASTy Reader For Scala 2

  • Merged support for reading dependencies compiled by Scala 3.0.0 final - this included changes to the erasure of intersection types, arrays, and supporting invisible definitions.

Tasty manipulation library

  • Extended the unpickler to support reading all term trees

Communication

Blog posts

ScalaCon

  • Presented “Hands-on full-stack Scala 3 application”
  • Presented “Fixing the 3 hardest library bugs of Scala.js”
  • Presented “Taste the difference with Scala 3: Migrating the ecosystem and more”

Scala 3 Release Party

VirtusLab and Scala Center coordinated the “Scala 3 Release Party” in April, check out the followup and videos here.

Let’s talk about Scala 3

14 Likes

Thanks! It’s nice to see what’s going on, and that’s a great summary. :+1: