Skip to content

Releases: scala/scala3

3.0.0-RC1

16 Feb 11:47
Compare
Choose a tag to compare

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 of Expr.apply #10580
  • Remove Expr.StringContext.unapply #10675
  • Add reflect MatchCase TypeRepr #10735
  • Rename scala.quoted.staging.{Toolbox => Compiler} #11129
  • Fix #10863: Make show AnyKinded #10988
  • Add ParamClause to allow multiple type param clauses #11074
  • Rework reflect Symbol fields API #10705
  • Rename Liftable to ToExpr and Unliftable to FromExpr #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

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

16 Dec 17:31
73d942c
Compare
Choose a tag to compare

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 to ToExpr and Unliftable to FromExpr #10618
  • Remove Unliftable[Unit] #10570
  • Remove reflect.LambdaType #10548
  • Add scala.quoted.Expr.unapply as dual of Expr.apply #10580
  • Move Quotes as last parameter in ExprMap.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

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