Releases: scala/scala3
3.0.1-RC2
Notable Changes
- sbt bridge reporting improvements #12845
- TreeUnpickler: fix cycle involving param accessor #12873
- Fix TyperState assertion failures #12837
- ci fixes #12895
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.0.1-RC1..3.0.1-RC2
these are:
3 Guillaume Martres
2 Krzysztof Romanowski
1 Anatolii Kmetiuk
1 Markus Sutter
1 Martin Odersky
1 Vadim Chelyshov
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
3.0.1-RC1
Notable Changes
Language
- Add @experimental annotation #12102
- A simpler implementation of init checker #12495
- Allow _ as a type lambda placeholder in -Ykind-projector:underscores compatiblity mode #12378
- Support variance annotations in -Ykind-projector mode #12341
- Better error message for errors arising from implicit completions #12002
- Explain match type reduction failures in error messages #12053
Metaprogramming
- Cache quote unpickling #12242
- Add Expr.valueOrAbort and reflect.report.errorAndAbort #12056
- Avoid pickled tasty for some captured quote reference #12248
- Improve quote matcher performance #12418
- Port scala.quoted.runtime.impl.QuoteMatcher #12402
- Check transparent inline type argument bounds #12334
- Improve constant folding logic #12080
- Support inline val references in top level splices #12235
Scaladoc
Bug fixes
- IArray.toArray: Deprecate broken method #12598
- Fix comparison of dependent function types #12214
- Make translucentSuperType handle match types #12153
- Harden Type Inference #12560
- Reject references to self in super constructor calls #12567
- Provide mirror support after inlining #12062
- Allow export paths to see imports #12134
- Streamline given syntax #12107
- Export constructor proxies #12311
- Identify package and nested package object in isSubPrefix #12297
- Treat Refinements more like AndTypes #12317
- Fix #9871: use toNestedPairs in provablyDisjoint #10560
- Fix TypeTest exhaustivity check #12059
Other
- record end markers in trees and semanticdb, exclude top level def wrappers #12541
- Use stringOf from REPL to avoid trimming #11562
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.0.0-RC2..3.0.1-RC1
these are†:
121 Martin Odersky
111 Liu Fengyun
98 Nicolas Stucki
29 Guillaume Martres
24 Phil
20 Olivier Blanvillain
14 Tom Grigg
14 Adrien Piquerez
13 Natsu Kagami
12 Andrzej Ratajczak
10 odersky
10 Aleksander Boruch-Gruszecki
9 Anatolii Kmetiuk
8 Jamie Thompson
6 Maxime Kjaer
5 Som Snytt
3 Filip Zybała
3 Krzysztof Romanowski
3 Kai
3 Fengyun Liu
3 noti0na1
3 Phil Walker
2 Johannes Rudolph
2 soronpo
2 tanishiking
2 Adam Warski
2 Kacper Korban
2 Raphael Jolly
2 Sébastien Doeraene
1 xuwei-k
1 Alexander Ioffe
1 David Barri
1 Devon Stewart
1 Dmitrii Naumenko
1 Ivan Kurchenko
1 Jakub Kozłowski
1 Jonas Ackermann
1 Kevin Lee
1 Martin
1 Michał Pałka
1 Miles Sabin
1 Oron Port
1 Paweł Marks
1 Ruslan Shevchenko
1 Seth Tisue
1 Vadim Chelyshov
1 nogurenn
1 nurekata
†: Note that we measure against 3.0.0-RC2
and not 3.0.0
because we stabilized on 3.0.0-RC2
. Only critical bug fixes found their way into 3.0.0-RC3
and further, while the majority of changes ended up in 3.0.1-RC1
.
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
3.0.0
Release blog post at https://www.scala-lang.org/blog/2021/05/14/scala3-is-here.html
Changelog from 3.0.0-RC3
Contributors
Thank you to all the contributors who made this release possible 🎉
All-time contributors who made Scala 3 a reality, according to git shortlog -sn --no-merges 2308509d2651ee78e1122b5d61b798c984c96c4d..3.0.0
, are:
8661 Martin Odersky
3186 Nicolas Stucki
1435 Guillaume Martres
976 Dmitry Petrashko
797 Liu Fengyun
774 Felix Mulder
407 Allan Renucci
324 liu fengyun
324 Olivier Blanvillain
323 Martin Duhem
224 Aleksander Boruch-Gruszecki
204 Jamie Thompson
201 Krzysztof Romanowski
200 Sébastien Doeraene
172 Paolo G. Giarrusso
171 Bryan Abate
163 Aggelos Biboudis
162 Anatolii Kmetiuk
160 Anatolii
129 Robert Stoll
103 bishabosha
103 Filip Zybała
101 Miles Sabin
82 Antoine Brunner
64 poechsel
64 Guillaume Raffin
62 Tom Grigg
61 Lan, Jian
55 noti0na1
54 Andrzej Ratajczak
51 odersky
50 Nikita Eshkeev
44 Guillaume R
37 Stéphane Micheloud
34 Enno Runne
33 Sara Alemanno
31 Paweł Marks
30 Ondrej Lhotak
29 Som Snytt
29 Abel Nieto
26 Ruslan Shevchenko
25 VladimirNik
23 Adrien Piquerez
22 Raphael Jolly
22 Jonathan Brachthäuser
22 Michał Pałka
20 vsalvis
20 Tobias Bordenca
20 Fengyun Liu
19 Martijn Hoekstra
19 Samuel Gruetter
19 Phil
19 Maxime Kjaer
18 Jendrik Wenke
17 Jason Zaugg
16 Krzysztof Romanwoski
16 Arnaud ESTEVE
15 Dale Wijnand
14 Jaemin Hong
13 gzoller
13 Vlad Ureche
12 Miron Aseev
12 Wojtek Swiderski
11 Yichen Xu
11 Grzegorz Bielski
10 Sebastian Nadorp
10 Jentsch
10 bjornregnell
10 Arnaud Esteve
10 Dmytro Melnychenko
10 Lionel Parreaux
9 Jonathan Brachthäuser
9 yu-croco
9 Jasper Moeys
8 Clemens Winter
8 Lukas Rytz
8 Varunram Ganesh
8 Oron Port
8 Reto Hablützel
7 Ólafur Páll Geirsson
7 Varunram
7 benkobalog
7 Eugene Melekhov
6 jvican
6 Seth Tisue
6 Natsu Kagami
6 Thierry Treyer
6 Akhtiam Sakaev
6 Olivier ROLAND
6 Olafur Pall Geirsson
5 Nada Amin
5 Michael Pilquist
5 Ausmarton Zarino Fernandes
5 k0ala
5 Vlastimil Dort
5 Valthor Halldorsson
5 Travis Brown
5 Tomasz Godzik
5 Alex Merritt
5 Guillaume Massé
5 Alexander Myltsev
5 Saloni Vithalani
5 Raphael Bosshard
5 Julien Richard-Foy
4 Michał Gutowski
4 Sebastian Harko
4 fhackett
4 ysthakur
4 Ben Elliott
4 Raymond Tay
4 Ayush
4 Neeraj Jaiswal
4 Sarunas Valaskevicius
4 Lucas Burson
4 Dotty CI
4 Eric K Richardson
4 Vitor Vieira
4 Yevgen Nerush
4 Shane Delmore
4 Andrew Valencik
4 senia-psm
4 Minghao Liu
4 Matt D'Souza
4 Eugene Yokota
4 Hanns Holger Rutz
4 Alex Zolotko
4 Georg Schmid
4 Chris Birchall
4 december32
4 Ingar Abrahamsen
3 Michal Gutowski
3 Gabriele Petronella
3 Gabi Volpe
3 Master-Killer
3 Uko
3 Timothée Floure
3 xuwei-k
3 Eric Loots
3 Enno
3 Edmund Noble
3 Saurabh Rawat
3 Albert Chen
3 Jakob Odersky
3 Daniel Li
3 Dani Rey
3 ansvonwa
3 duanebester
3 Alexandre Archambault
3 jerylee
3 kenji yoshida
3 Artur Opala
3 Adriaan Moors
3 Ankit Soni
3 Adam Fraser
3 Pavel Shirshov
3 João Pedro Evangelista
3 Andrea Mocci
3 Krzysztof Bochenek
3 Tudor Voicu
2 Tobias Schlatter
2 Alden Torres
2 AnEmortalKid
2 Andrew Zurn
2 Ara Adkins
2 Artsiom Miklushou
2 Ashwin Bhaskar
2 Aurélien Richez
2 Camila Andrea Gonzalez Williamson
2 Dvir Faivel
2 Fabian Page
2 FabioPinheiro
2 Francois GORET
2 Glavo
2 Greg Pevnev
2 Henrik Huttunen
2 Hermes Espínola González
2 James Thompson
2 Jan Christopher Vogt
2 Jens Kat
2 Jim Van Horn
2 Jon Pretty
2 Lorand Szakacs
2 Luc Henninger
2 Lucas
2 Matthew Pickering
2 Matthias Sperl
2 Mikael Blomstrand
2 Nadezhda Balashova
2 Nikolay
2 Nikolay.Tropin
2 Patrik Mada
2 Philippus
2 Philippus Baalman
2 Radosław Waśko
2 Rafal Piotrowski
2 Robert Soeldner
2 Roberto Bonvallet
2 Rodrigo Fernandes
2 Steven Heidel
2 Thiago Pereira
2 Tudor
2 William Narmontas
2 changvvb
2 dos65
2 esarbe
2 johnregan
2 lloydmeta
2 typeness
2 veera venky
2 xhudik
2 ybasket
1 Jyotman Singh
1 Justin du Coeur, AKA Mark Waks
1 Julien Jean Paul Sirocchi
1 João Pedro de Carvalho
1 rsoeldner
1 Jonathan Skowera
1 Jonathan Rodriguez
1 Jon-Anders Teigen
1 ruben
1 Alexander Slesarenko
1 Pierre Ricadat
1 Piotr Gabara
1 squid314
1 tOverney
1 Raj Parekh
1 Rajesh Veeranki
1 John Sullivan
1 Johannes Rudolph
1 Joan
1 Jimin Hsieh
1 Richard Beddington
1 Rick M
1 Rike-Benjamin Schuppner
1 tanaka takaya
1 Jean Detoeuf
1 tanishiking
1 tim-zh
1 Jarrod Janssen
1 Jan Rock
1 Sam Desborough
1 Jakub Kozłowski
1 Sandro Stucki
1 Jacob J
1 Jaap van der Plas
1 Ivano Pagano
1 Ivan Youroff
1 Iltotore
1 Serhii Pererva
1 Igor Mielientiev
1 Ignasi Marimon-Clos
1 Simon Hafner
1 Simon Popugaev
1 Ian Tabolt
1 SrTobi
1 Stefan Zeiger
1 Stephane MICHELOUD
1 tokkiyaa
1 Stéphane MICHELOUD
1 Herdy Handoko
1 Szymon Pajzert
1 Harrison Houghton
1 Taisuke Oe
1 yytyd
1 Harpreet Singh
1 Haemin Yoo
1 Timur Abishev
1 Grzegorz Kossakowski
1 Tobias Kahlert
1 0xflotus
1 Greg Zoller
1 Tomas
1 George Leontiev
1 Florian Schmaus
1 zgrybus
1 Florian Cassayre
1 Ferhat Aydın
1 Umayah Abdennabi
1 Fedor Shiriaev
1 Dmitry Melnichenko
1 Dmitrii Naumenko
1 Vasil Vasilev
1 Victor
1 Deon Taljaard
1 Denis Buzdalov
1 Dean Wampler
1 David Hoepelman
1 Vykintas Narmontas (William)
1 Alexander Shamukov
1 DarkDimius
1 Daniel Reigada
1 Daniel Murray
1 Yilin Wei
1 Zoltán Elek
1 adpi2
1 aesteve
1 amanjpro
1 andreaTP
1 Damian Albrun
1 ayush
1 benkbalog
1 Csongor Kiss
1 Ciara O'Brien
1 Carlos Quiroz
1 brunnerant
1 =
1 costa100
1 Bunyod
1 dieutth
1 AlexSikia
1 Brian Wignall
1 张志豪
1 felher
1 Brandon Elam Barker
1 fschueler
1 gan74
1 gnp
1 gosubpl
1 Bojan Dunaj
1 iroha168
1 Ben Hutchison
1 Albert Serrallé Ríos
1 Batanick
1 Bartosz Krasiński
1 August Nagro
1 AngAng
1 Adam Trousdale
1 lpwisniewski
1 manojo
1 mentegy
1 mikhail
1 Mathias
1 msosnicki
1 Ang9876
1 Max Ovsiankin
1 Markus Kahl
1 Markus Hauck
1 Marc Karassev
1 Mads Hartmann
1 Lukas Ciszewski
1 Ang Hao Yang
1 Mike Samuel
1 Lucas Jenß
1 Li Haoyi
1 Lanny Ripple
1 Mohuety Kirisame
1 Krzysiek Bochenek
1 phderome
1 Kevin Dreßler
1 Keith Pinson
1 Kazuyoshi Kato
1 Kazuhiro Sera
1 Niklas Vest
1 Amadou CISSE
1 riiswa
1 Katrix
1 Karol Chmist
1 Ondra Pelech
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
3.0.0-RC3
Notable Changes
- Fix type test for trait parameter arguments #12066
- Set file filter correctly #12119
- Provide mirror support after inlining #12079
- Revert "Recursively check nonvariant arguments of base types for realizability" #12067
- When simplifying match types, ensure fully defined before reducing #12068
- sbt-dotty: the binary version is 3 for Scala >= 3.0.0 #12084
- Fix isInstanceOf[Array[?]] returning true on non-Array #12108
- Scala2Unpickler: don't unpickle the same type parameter twice #12129
- Overloading resolution: Handle SAM types more like Java and Scala 2 #12131
- Add TermParamClause.isGiven #12042
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.0.0-RC2..3.0.0-RC3
these are:
8 Martin Odersky
7 Adrien Piquerez
6 Guillaume Martres
4 Liu Fengyun
1 Anatolii Kmetiuk
1 Nicolas Stucki
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
3.0.0-RC2
Notable Changes
Features and API
- Treat Scala.js pseudo-unions as real unions #11671
- A New UnsafeNulls Language Feature for Explicit Nulls #9884
- Only enable experimental features for snapshot and nightly (V2) #11920
- Rename -Ycheck-init to -Ysafe-init #11670
- Replace package object compiletime by top-level definitions; move compiletime.S to compiletime.ops.int.S #11745
Metaprogramming
- Add quotes.Type.valueOfConstant #11715
- Remove compiletime.Widen #11569
- Add -Xcheck-macros scalac option #11655
- Add reflect Symbol.info and ClassInfo #11664
Other
- Fix #11774: only enable experimental features for snapshot and nightly #11852
- Fixes and improvements to erasure #11695
- Rename -Ycheck-init to -Ysafe-init #11670
Documentation
- Handle help, version and @file parameters in scalac and scaladoc #11476
- Documentation for using IntelliJ and Metals #11535
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.0.0-RC1..3.0.0-RC2
these are:
150 Martin Odersky
83 Liu Fengyun
44 Nicolas Stucki
40 Guillaume Martres
17 Tom Grigg
14 Paweł Marks
12 Andrzej Ratajczak
11 Aleksander Boruch-Gruszecki
11 Yichen Xu
10 Phil
10 Filip Zybała
10 bjornregnell
10 Michał Pałka
9 Jamie Thompson
9 Raphael Jolly
8 Krzysztof Romanowski
7 Lan, Jian
6 Sébastien Doeraene
6 Adrien Piquerez
5 Olivier Blanvillain
5 Alex Merritt
4 Lukas Rytz
4 Anatolii Kmetiuk
3 Stéphane Micheloud
3 Ruslan Shevchenko
3 Jakob Odersky
3 Eric K Richardson
2 Som Snytt
2 xhudik
2 Ayush
2 noti0na1
1 Jonathan Brachthäuser
1 Ivano Pagano
1 Hanns Holger Rutz
1 Mathias
1 Guillaume Raffin
1 Miles Sabin
1 Fengyun Liu
1 Ben Hutchison
1 Roberto Bonvallet
1 Alexandre Archambault
1 Jakub Kozłowski
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
3.0.0-RC1
Notable Changes
Syntax
- Allow indentation to work inside parens #10969
- Allow new import syntax #11244
- Use
uninitialized
for wildcard initializers #11231 - Add Matchable trait #10670
- Allow leading context parameters in extension methods #10940
Language
- Warn when matching against an opaque type #10664
- Fix #6190: eta-expand companion object if functions are expected #7207
- Fix #8634: Support -release option #10746
- Alternative definition layout of IArray #11329
- Change scheme to implement creator applications #10784
Metaprogramming
- Add
scala.quoted.Expr.unapply
as dual ofExpr.apply
#10580 - Remove
Expr.StringContext.unapply
#10675 - Add reflect
MatchCase
TypeRepr
#10735 - Rename scala.quoted.staging.{Toolbox => Compiler} #11129
- Fix #10863: Make show
AnyKind
ed #10988 - Add ParamClause to allow multiple type param clauses #11074
- Rework reflect Symbol fields API #10705
- Rename
Liftable
toToExpr
andUnliftable
toFromExpr
#10618 - Expand non-transparent macros after Typer #9984
- Rework TastyInspector API to allow inspection of all files #10792
- Rename Not to NotGiven to make its purpose clearer #10720
- Fix #10709: Add missing level check before inlining #10781
Other
- Clean up settings #10655
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.0.0-M3..3.0.0-RC1
these are:
183 Martin Odersky
138 Nicolas Stucki
36 Krzysztof Romanowski
25 Filip Zybała
25 Liu Fengyun
24 Lan, Jian
22 Jamie Thompson
19 Tom Grigg
17 Andrzej Ratajczak
16 Stéphane Micheloud
15 Guillaume Martres
11 Paweł Marks
9 Phil
6 Aleksander Boruch-Gruszecki
6 Jonathan Brachthäuser
6 Natsu Kagami
6 odersky
4 Jasper Moeys
4 Adrien Piquerez
3 Sébastien Doeraene
3 Michał Pałka
3 Albert Chen
2 Alexandre Archambault
2 Som Snytt
2 kenji yoshida
2 Luc Henninger
2 Ayush
2 Raphael Jolly
2 Anatolii Kmetiuk
2 Olivier Blanvillain
2 changvvb
1 ysthakur
1 Ang Hao Yang
1 Ang9876
1 AngAng
1 August Nagro
1 Ciara O'Brien
1 Dale Wijnand
1 Florian Cassayre
1 Florian Schmaus
1 Iltotore
1 Jason Zaugg
1 Julien Richard-Foy
1 Katrix
1 Master-Killer
1 Michael Pilquist
1 Mikael Blomstrand
1 Mike Samuel
1 Philippus
1 Philippus Baalman
1 Rick M
1 Stephane MICHELOUD
1 Timur Abishev
1 Tomas
1 ansvonwa
1 ayush
1 costa100
1 iroha168
1 noti0na1
1 riiswa
1 tanishiking
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
3.0.0-M3
Notable Changes
Language
- Givens without
as
#10538 - Drop
as
in patterns #10565 - Fix #10484: Switch back to old context function closure syntax #10487
- Add Matchable trait #10670
Metaprogramming
- Add
Expr.asTerm
#10694 - Add reflect
MatchCase
TypeRepr
#10735 - Rework reflect Symbol fields API #10705
- Remove
Expr.StringContext.unapply
#10675 - Rename
Liftable
toToExpr
andUnliftable
toFromExpr
#10618 - Remove Unliftable[Unit] #10570
- Remove reflect.LambdaType #10548
- Add
scala.quoted.Expr.unapply
as dual ofExpr.apply
#10580 - Move
Quotes
as last parameter inExprMap.transform
#10519 - Rework reflect Constant API #10753
- Unify quoted.report and reflect.Reporting #10474
- Fix #10359: Add GivenSelector to reflection API #10469
- Rework reflect show API #10661
- Fix #10709: Add missing level check before inlining #10781
Tooling
- [sbt-bridge] Bump Zinc to 1.4.3 and upgrade to CompilerInterface2 #10607
- Scala3doc/community build #10522
- Scripting solution #10491
Other changes
- Rename Not to NotGiven to make its purpose clearer #10720
- Clean up settings #10655
- Introduce
Transparent
flag #10458 - Keep export clause until first transform, use for incremental compilation #10182
Contributors
Thank you to all the contributors who made this release possible 🎉
According to git shortlog -sn --no-merges 3.0.0-M1..3.0.0-M3
these are:
80 Nicolas Stucki
73 Martin Odersky
64 Krzysztof Romanowski
32 Liu Fengyun
28 Aleksander Boruch-Gruszecki
22 Anatolii Kmetiuk
17 Guillaume Martres
17 Sébastien Doeraene
14 Andrzej Ratajczak
13 Tom Grigg
8 Filip Zybała
7 Lan, Jian
5 Olivier Blanvillain
5 Som Snytt
5 Jamie Thompson
4 Stéphane Micheloud
4 Lionel Parreaux
3 Adrien Piquerez
3 Artur Opala
3 Hanns Holger Rutz
3 Michael Pilquist
3 Michał Pałka
3 bishabosha
2 Jonathan Brachthäuser
2 Camila Andrea Gonzalez Williamson
1 Mikael Blomstrand
1 Francois GORET
1 Felix Mulder
1 Raphael Jolly
1 Robert Stoll
1 Ruslan Shevchenko
1 Seth Tisue
1 Eugene Yokota
1 Amadou CISSE
1 Akhtiam Sakaev
1 Martin Duhem
1 Tomasz Godzik
1 Matthew Pickering
1 odersky
Reporting Bugs
If you encounter a bug, please open an issue! 🙏
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! 🙏