Releases: scala/scala3
3.0.0-M2
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 aninfix
modifier, the@mixin
annotation was replaced bytransparent
(#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 renamedCanEqual
(#10449)
Reflection
Breaking changes
QuoteContext
has been renamedQuotes
(#10432)- Instead of importing
qctx.tasty._
, importquotes.reflect._
(#10442)- In general,
scala.quoted.qctx
was replaced withscala.quoted.quotes
- In general,
rootPosition
is nowPosition.ofMacroExpansion
(#10467)expr.unseal
is nowTerm.of(expr)
term.seal.cast[T]
is nowterm.asExprOf[T]
term.seal
is nowterm.asExpr
(tpe: Type[T]).unseal.tpe
was replaced withTypeRepr.of[T]
(tpe: Type[T]).unseal
was replaced withTypeTree.of[T]
(tpe: Type[T]).show
was replaced withType.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 withcompiletime.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 explicitSymbol
owners- In methods of
TreeMap
,TreeAccumulator
andTreeTraverser
- In
ValDef.let
formerlylet
- In
Lambda.apply
- In
etaExpand
- Added
Tree.changeOwner
andSymbol.spliceOwner
- In methods of
- Removed
scala.tasty.Reflection
(now it is insideQuotes
) - Reflection API uses
TypeTest
s instead ofClassTag
s
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
- Numerous improvements over many PRs, Scala3doc is still not the default documentation tool (this requires setting
useScala3doc := true
), but it is now used to generate the https://dotty.epfl.ch/ website. - For more information on Scala3doc see https://contributors.scala-lang.org/t/scala3doc-doctool-for-scala-3/4477
3.0.0-M1
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
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
Release Dotty 0.26.0
0.26.0-RC1
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
Release Dotty 0.25.0
0.25.0-RC2
Merge branch 'master' into 0.25.x
0.25.0-RC1
Release Dotty 0.25.0-RC1
0.24.0
Release Dotty 0.24.0
0.24.0-RC1
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! 🙏