Scala Center monthly update - February 2021

Moocs

Scala Specialization

  • Migrate all assignments to Scala 2.13.5
  • Migrate Spark assignments to Spark 3.2 to support Scala 2.13
  • Implement Windows compatibility tests for assignments in the CI
  • Worked on the Scala 3 version of the courses

Effective Programming in Scala (new course)

  • The video lectures of our upcoming course Effective Programming in Scala are being edited.
  • Improved the content of the assignments based on the feedback received from the beta testers.
  • Posted a scala contributor post to learn more about this new course aiming at turning “non-Scala” developers into “job-ready” Scala developers.

Scala Debug Adapter

  • Released the version 1.0.0 of the scala-debug-adapter library and the sbt-debug-adapter plugin.
  • Integrated the sbt-debug-adapter plugin in Metals to enable debug capabilities when using sbt server. Released in Metals 0.10.0.

Scala 3 compiler

  • improve java interop in Dotty

    • Fix cyclic references in loading classfile (#11006)
    • Handle semantic name in Java source code (#11472)
    • Avoid forcing symbols in classfile parser (#11471)
  • improve F-bounds handling in Dotty (#11465, #11418, #11192)

  • Enable initialization check on community projects (#11385)

  • Other bug fixes in Dotty (#11327, #11478, #11550)

  • Design of new header format for a TASTy file.

    • stores the compiler version
    • version mismatch errors give advice on how to upgrade tooling.
    • released in Scala 3.0.0-RC1 on 17th February.

Scala.js

  • Scala.js for Scala 3: fixed major issue in the JUnit support
  • Released Scala.js 1.5.0, with major bug fixes, notably related to module splitting
  • Scala.js: Fixed several issues related to floating point numbers (accuracy, parsing, formatting); to be ported to Scala Native

Scala Native

New features

  • Allowed to compile Scala Native to a native shared library (PR #2145)
  • Added support for Scala 2.13.5 (#2170)
  • Added support for testing Scala Native against a selection of scala-partest tests(#2154)
  • Allowed for cross-compiling Scala Native build tools, eg.: optimizer and linker, with Scala 2.11 and 2.13 (#2156)

Bugfixes

  • Fixed invalid check for boxed pointers (#2133), this should allow the decreasing number of not-needed allocations
  • Added partial implementation for java.nio.Channels and missing stub methods that cannot be currently implemented (#2141)
  • Fixed invalid boxing of return types in lambdas causing undefined behaviour (#2144)
  • Methods with missing NIR definitions should now be correctly reported, even if they’re not declared as stubs (#2162)
  • Fixed performance regession in java.util.Formatter (#2169)
  • Fixed performance regression observed in Scala 2.11 and 2.12 collections (#2168)

TASTy Reader for Scala 2

  • Added support for Scala 3.0.0-RC1, released in Scala 2.13.5 on February 22nd

TASTy Manipulation Library

  • Added an unpickler for the AST section which can read simple classes

Scala-migrat3

  • Added a command to help migrating scalacOptions: migrate-scalacOptions
  • Added a command to help migrating libs: migrate-libs
  • Fix a high allocation rate when computing infered types and implicits
  • Handle special cases of cyclic types/symbols

Scalafix

Bloop

Scalameta

  • Scalameta parser now fully supports Scala 3 syntax

Metals

  • Metals release 0.10.0 with multiple improvements and features:
    • Insert inferred type refactoring
    • Type decorations for definitions.
    • Scala 2.13.5 and 3.0.0-RC1 support
    • Multiple Scala 3 support improvements

sbt

  • Fixed a bug related to Tasty files management.
  • Fixed scaladoc resolution when Scala version is 3.0.0-RC1.
  • Improved the size of the messages saying that the sbt server is running.
  • Testing sbt 1.5.0-M2 in the Dotty repository and community build. Planning for the release.

Scala 3 Migration Guide

  • Upgraded to 3.0.0-RC1 and 2.13.5.
  • Added incompatibilities about case class companions and unsoundess fixes in pattern matching.

Scaladex

  • Upgraded to elasticsearch 7.10.2.
  • Moved to a new virtual machine with better settings.

sbt-version-policy

sbt-missinglink

  • Released sbt-missinglink v0.3.2, which enables parallel execution of the missinglink analyses

Google Summer of Code

  • Gather a small team of 18 mentors consisting of members of the Scala Center but also of community contributors.
  • Gather a list of 26 project ideas from mentors
  • Fill Application Form
  • Publish project ideas (here)

Let’s Talk about Scala 3 - Video production

Communication

  • Blogpost about tuples
  • Co-authored with Eugene Yokota a blog explaining that if all libraries were using the recommended versioning scheme, we could more reliably detect incompatibilities caused by conflicting transitive dependencies
  • Conducted and analysed the “Scala 3 Developer’s Preview Survey” results, and published a blog
20 Likes