Skip to content

Releases: scala/scala3

3.0.0-M2

24 Nov 21:45
3cdf0fd
Compare
Choose a tag to compare

Notable Changes

Platform

  • The standard library was upgraded to Scala 2.13.4, JDK 14 and 15 are now supported. (#10392)

Syntax

  • The @infix annotation was replaced by an infix modifier, the @mixin annotation was replaced by transparent (#10458)
  • The @alpha annotation was renamed to @targetName and can now be used to define overloads that would normally result in a double definition error (#10149)
  • Drop extension_ prefix for extension methods (#10128)
  • The Eql typeclass has been renamed CanEqual (#10449)

Reflection

Breaking changes

  • QuoteContext has been renamed Quotes (#10432)
  • Instead of importing qctx.tasty._, import quotes.reflect._ (#10442)
    • In general, scala.quoted.qctx was replaced with scala.quoted.quotes
  • rootPosition is now Position.ofMacroExpansion (#10467)
  • expr.unseal is now Term.of(expr)
  • term.seal.cast[T] is now term.asExprOf[T]
  • term.seal is now term.asExpr
  • (tpe: Type[T]).unseal.tpe was replaced with TypeRepr.of[T]
  • (tpe: Type[T]).unseal was replaced with TypeTree.of[T]
  • (tpe: Type[T]).show was replaced with Type.show[T]
  • scala.quoted.Type does not need to be named (implicitly only)
  • (typeRepr: TypeRepr).seal is now (typeRepr: TypeRepr).asType
  • Owners are now explicit in the reflection API (#10406)
  • compiletime.code has been replaced with compiletime.codeOf (#10313)
  • The syntax for type variables in quoted patterns has changed (#10125)
  • Added quotes.reflect.Flags.{Opaque, Open}
  • Added constructors for quotes.reflect.{TypeBoundsTree, WildcardTypeTree}
  • Renamed quotes.reflect.{GivenMatch => SummonFrom}
  • Renamed quotes.reflect.{Projection => TypeProjection}
  • Changed constructor and extractor of quotes.reflect.Lambda
  • Removed quotes.reflect.Context and replaced with explicit Symbol owners
    • In methods of TreeMap, TreeAccumulator and TreeTraverser
    • In ValDef.let formerly let
    • In Lambda.apply
    • In etaExpand
    • Added Tree.changeOwner and Symbol.spliceOwner
  • Removed scala.tasty.Reflection (now it is inside Quotes)
  • Reflection API uses TypeTests instead of ClassTags

Additions

  • new API: TypeTest for safe type tests at runtime (#7555)

Scala.js

  • Upgrade to Scala.js 1.3.1 (#10423)
  • Implement the -scalajs-mapSourceURI option (#10439)
  • Implement JS exports (#10164)
  • Scala.js is now 100% supported

Scala3doc

3.0.0-M1

03 Nov 13:53
Compare
Choose a tag to compare

Notable Changes

Syntax

Fix #9829: Allow as in place of @ for pattern bindings #9837
Change wildcard given selectors #9949
Keep @Alpha optional #10093

Scala.js

Scala.js: Implement non-native JS classes. #9774
Scala.js: Implement the PrepJSInterop phase, minus exports handling. #9725

Optimization

Port classfile parsing improvements #10037
Semanticdb usability enhancements #9768
Optimize core and frontend #9867

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 0.27.0-RC1..3.0.0-M1 these are:

   171  Martin Odersky
    94  Nicolas Stucki
    75  Liu Fengyun
    62  Aleksander Boruch-Gruszecki
    50  Filip Zybała
    35  Krzysztof Romanowski
    34  Anatolii Kmetiuk
    32  Sébastien Doeraene
    31  Guillaume Martres
    28  Jamie Thompson
    20  bishabosha
    19  Guillaume Raffin
    16  Krzysztof Romanwoski
    12  Ruslan Shevchenko
     9  Tom Grigg
     6  Som Snytt
     5  odersky
     5  Andrzej Ratajczak
     4  Michał Pałka
     3  Adrien Piquerez
     3  Tudor Voicu
     3  noti0na1
     2  Krzysztof Bochenek
     2  Tudor
     2  Raphael Jolly
     2  Miles Sabin
     1  Vasil Vasilev
     1  ansvonwa
     1  Greg Zoller
     1  felher
     1  gzoller
     1  zgrybus
     1  Fengyun Liu
     1  Philippus Baalman
     1  Krzysiek Bochenek
     1  Tomasz Godzik
     1  ysthakur

Reporting Bugs

If you encounter a bug, please open an issue! 🙏

0.27.0-RC1

28 Aug 12:45
Compare
Choose a tag to compare
0.27.0-RC1 Pre-release
Pre-release

Notable Changes

Features

  • Make Scala.js usable for people #9637

Stability

  • Fix #1441: init MODULE$ in #9181
  • Improve handling of references to Object coming from Java code #9601
  • Re-resolve ==, != after expanding opaque types #9583
  • fix #9179: ensure enum values are singleton with serialisation #9532
  • fix #7227: allow custom toString on enum #9549

Metaprogramming

  • Avoid leak of internal implementation in tasty.Reflection #9613
  • Redefine quoted.Expr.betaReduce #9469

Performance

  • Optimize megaphase #9597
  • Cache all memberNamed results #9633
  • Parallelize position pickling #9619
  • Simplify TypeComparer #9405
  • Optimize and simplify SourcePosition handling #9561

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 0.26.0-RC1..0.27.0-RC1 these are:

   118  Martin Odersky
    75  Liu Fengyun
    65  Nicolas Stucki
    27  Sébastien Doeraene
    23  Guillaume Martres
    16  Jamie Thompson
    15  bishabosha
    10  Guillaume Raffin
     7  Anatolii Kmetiuk
     4  Robert Stoll
     3  Pavel Shirshov
     3  december32
     3  odersky
     2  ysthakur
     1  Niklas Vest
     1  Dean Wampler
     1  Fengyun Liu
     1  John Sullivan
     1  Lan, Jian
     1  Aleksander Boruch-Gruszecki
     1  Ruslan Shevchenko
     1  Stefan Zeiger
     1  William Narmontas
     1  xuwei-k

Reporting Bugs

If you encounter a bug, please open an issue! 🙏

0.26.0

27 Aug 12:41
Compare
Choose a tag to compare
Release Dotty 0.26.0

0.26.0-RC1

24 Jul 09:31
Compare
Choose a tag to compare
0.26.0-RC1 Pre-release
Pre-release

Notable Changes

Language & API

Unified extension methods #9255
Allow structural anonymous classes #9201
Add summonAll and constValueTuple #9209

Compiler improvements

Infer missing implicit args in using clause #9347
Change implicit to using #9333
Use new extension syntax in scala.tasty.Reflection #9311
Have a per-run time budget for import suggestions #9167

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 0.25.0-RC2..0.26.0-RC1 these are:

   128  Martin Odersky
    53  Nicolas Stucki
    30  Sébastien Doeraene
    18  Anatolii Kmetiuk
    18  Guillaume Raffin
    17  Lan, Jian
    12  Guillaume Martres
     5  Aleksander Boruch-Gruszecki
     3  Ruslan Shevchenko
     3  odersky
     2  Alden Torres
     2  Robert Stoll
     2  yu-croco
     1  Alex Zolotko
     1  Kevin Dreßler
     1  FabioPinheiro
     1  adpi2
     1  Matthew Pickering
     1  Liu Fengyun

Reporting Bugs

If you encounter a bug, please open an issue! 🙏

0.25.0

22 Jul 14:52
Compare
Choose a tag to compare
Release Dotty 0.25.0

0.25.0-RC2

15 Jun 14:17
Compare
Choose a tag to compare
0.25.0-RC2 Pre-release
Pre-release
Merge branch 'master' into 0.25.x

0.25.0-RC1

11 Jun 14:17
Compare
Choose a tag to compare
0.25.0-RC1 Pre-release
Pre-release
Release Dotty 0.25.0-RC1

0.24.0

11 Jun 14:16
Compare
Choose a tag to compare
Release Dotty 0.24.0

0.24.0-RC1

27 Apr 11:26
Compare
Choose a tag to compare
0.24.0-RC1 Pre-release
Pre-release

Notable Changes

  • update scala library to 2.13.2 #8777
  • Fix #8762: Make REPL work with indented code #8765
  • Better error message for ifs that miss an else branch #8672
  • Implement inline override #8543
  • Fix #8530: Support inline unapply #8542

Contributors

Thank you to all the contributors who made this release possible 🎉

According to git shortlog -sn --no-merges 0.23.0-RC1..0.24.0-RC1 these are:

   136  Martin Odersky
    74  Nicolas Stucki
    37  Guillaume Martres
    33  Robert Stoll
    22  Liu Fengyun
    19  Anatolii Kmetiuk
    16  Arnaud ESTEVE
    15  Olivier Blanvillain
    10  Arnaud Esteve
     9  Martijn Hoekstra
     6  Anatolii
     4  Som Snytt
     4  bishabosha
     4  Aleksander Boruch-Gruszecki
     3  Miles Sabin
     2  odersky
     2  Fengyun Liu
     2  Julien Richard-Foy
     1  Ara Adkins
     1  Maxime Kjaer
     1  Philippus
     1  Rike-Benjamin Schuppner
     1  Julien Jean Paul Sirocchi
     1  Dani Rey
     1  Sébastien Doeraene
     1  aesteve
     1  Dale Wijnand
     1  fhackett
     1  gzoller
     1  Michael Pilquist

Reporting Bugs

If you encounter a bug, please open an issue! 🙏