Skip to content

Releases: scala/scala3

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

0.24.0

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