Skip to content

Releases: scala/scala3

3.5.0-RC7

09 Aug 09:47
Compare
Choose a tag to compare
3.5.0-RC7 Pre-release
Pre-release

Backported fixes

  • Backport "Fix healAmbiguous to compareAlternatives with disambiguate = true" to 3.5.0 #21344

Contributors

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

According to git shortlog -sn --no-merges 3.5.0-RC6..3.5.0-RC7 these are:

     5  Martin Odersky
     4  Wojciech Mazur
     2  Eugene Flesselle

3.5.0-RC6

31 Jul 15:19
Compare
Choose a tag to compare
3.5.0-RC6 Pre-release
Pre-release

Backported fixes

  • Revert "Approximate MatchTypes with lub of case bodies, if non-recursive" in 3.5.0 #21266

Contributors

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

According to git shortlog -sn --no-merges 3.5.0-RC5..3.5.0-RC6 these are:

     4  Wojciech Mazur

3.4.3-RC1

31 Jul 15:26
Compare
Choose a tag to compare
3.4.3-RC1 Pre-release
Pre-release

Highlights of the release

  • Revert "Approximate MatchTypes with lub of case bodies, if non-recursive" in 3.4.3 #21268

Contributors

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

According to git shortlog -sn --no-merges 3.4.2..3.4.3 these are:

    6  Wojciech Mazur

3.5.0-RC5

22 Jul 14:12
Compare
Choose a tag to compare
3.5.0-RC5 Pre-release
Pre-release

Backported fixes

  • emit generatedNonLocalClass in backend when callback is not enabled #21186

Contributors

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

According to git shortlog -sn --no-merges 3.5.0-RC4..3.5.0-RC5 these are:

     2  Jamie Thompson
     2  Wojciech Mazur

3.3.4-RC1

22 Jul 14:25
Compare
Choose a tag to compare
3.3.4-RC1 Pre-release
Pre-release

Highlights of the release

  • Error when reading class file with unknown newer jdk version #18618
  • Add support for xsbti.compile.CompileProgress #18739
  • Add support for @deprecatedInheritance #19082
  • Bump JLine 3.19.0 -> 3.24.1 & sbt 1.9.7 -> 1.9.9 #19744
  • Repl - method signatures in autocomplete #19917
  • Upgrade Scala 2 to 2.13.14 (was 2.13.12) #20902

Notable changes

  • Backport of #20463 fixes and aligns generic signatures of value classes to match their behaviour with Scala 2. Before this change generic signatures containing parameters or result types defined as value classes have been using the signatures of value class field underlying type. This change can lead to MiMa failures if generic signature checks are enabled.

Other changes and fixes

Annotations

  • Attempt implicit search for old style implicit parameters in Application matchArgs #19737

Artifacts

  • Add versionLine marker to pom.xml #19986
  • Avoid duplications of properties in pom.xml #20020

Backend

  • Parallelise JVM backend - Scala 2 port #15392
  • Fix Closure span assignment in makeClosure #15841
  • Count size of parameters for platform limit check #18464
  • Opt: Get rid of the LiftTry phase; instead handle things in the back-end. #18619
  • Update asm to 9.6 #18712
  • Don't emit line number for synthetic unit value #18717
  • Avoid too eager transform of $outer for lhs & accessor rhs #18949
  • Make more anonymous functions static #19251
  • Fix deadlock in initialization of CoreBTypes using Lazy container #19298
  • Fix(#17255): cannot find Scala companion module from Java #19773
  • Change isStatic to isStaticOwner in hasLocalInstantiation #19803
  • Emit switch bytecode when matching unions of a switchable type #20411
  • Fix EnclosingMethod for lifted anonfun #20558
  • Fix deterministically adding additional interfaces #20593

Coverage

  • Correctly prettify names in coverage info #18542
  • Port coverage filter options for packages and files #19727

Default parameters

  • Lift all non trivial prefixes for default parameters #19739
  • Fix default args lookup for given classes #20256
  • Fix implicit search failure reporting #20261

Derivation

  • Fix infinite loop in Mirror synthesis of unreducible match type #20133

Desugaring

  • Make apply proxies work with overloaded ctors #19464
  • Fix possible crash in Desugar #19567
  • Add explanation to checkCaseClassInheritanceInvariant error msg #20141

Documentation

  • [spec] remove implementation details from enum spec #18579
  • [spec] some fixes to tuples #18582
  • [spec] Cosmetic changes in the lexical syntax chapter #18608
  • Spec: Update the list of tokens that can start/end statements. #18611
  • Update syntax.md #18648
  • Sync main with language-reference-stable #18718
  • Completion assert diffs will now show completion source #18890
  • Fix Export Doc #18952
  • reference doc: fix incorrect syntax production #19017
  • State all known limitations of right-associative extension methods #19210
  • Update explicit-nulls.md #19327
  • update old issues.scala-lang.org url #19606
  • Update syntax.md #19670
  • Clear the not-backported documentation changes queue #19699
  • remove implementation from asInstanceOf #19753
  • Port tailrec spec and adjustments to annotations section #19978
  • Optimize the documentation JS files #20075
  • Optimize main.js #20093
  • Improve documentation of implicit conversions #20103
  • Update Quotes.scala #20174
  • Supplement structural givens doc #20327
  • Fix three dead links in spec Types doc chapter #20337
  • Avoid jpath in example #20775

Erasure

  • Make eraseInfo work for classes with EmptyScopes #19550
  • Don't re-balance AndTypes arising from supertypes #20400

Exports

  • Do not propagate @tailrec to exported methods #19509
  • Fix retained flags in exports #19636
  • Add annotations in parameters for exports #20140
  • Fix isAliasType #20195

GADTs

  • Only cache base types when gadt state is empty #19562

Implicits

  • Tweak convertible implicits fix #18727
  • Run CheckStatic after UncacheGivenAliases #19318
  • Add tests to verify that crash is fixed elsewhere. Fixes #19328 #19329
  • Don't search for implicit conversions to NoType #19563
  • Prefer extensions over conversions for member selection #19717
  • Adjust owner in Interactive.contextOfPath causing crash in ImplicitSearch #19875
  • Improve ConstraintHandling of SkolemTypes #20175
  • Better error diagnostics under -explain-cyclic #20251
  • Bring back ambiguity filter when we report an implicit not found error #20368
  • Avoid stacked thisCall contexts #20488

Incremental Compilation

  • Fix undercompilation upon ctor change #19911
  • Retain default parameters with export #20167

Inferencing

  • Adapt toInstantiate in interpolateTypeVars to consider #20399 #20426

Infrastructure

  • Fix listing release versions for bisect script. #19356
  • Make tests resilient to exceptions thrown while reporting exceptions #19566
  • Move CI management from lampepfl/dotty-ci #19697
  • Switch to Java 17 in the CI #19703
  • [regression] Publish nightly releases and releases using Java 8 #19722
  • Bump scalacenter/sbt-dependency-submission from 2 to 3 #20440

Inline

  • Fix regression: inline match crash when rhs uses private inlined methods #18595
  • Add structural classes of dynamicApply before inlining #18766
  • Inline transparent implicit parameters when typing Unapply trees #19646
  • Specialized retained inline FunctionN apply methods #19801
  • Restore pre-3.3.2 behavior of inline implicit def #19877
  • Avoid crash after StopMacroExpansion #19883
  • Check deprecation of inline methods #19914
  • Fix by-name parameter in beta-reduction #20096
  • Type desugared transparent inline def unapply call in the correct mode [#20108](https://gith...
Read more

3.5.0-RC4

11 Jul 12:13
Compare
Choose a tag to compare
3.5.0-RC4 Pre-release
Pre-release

Backported fixes

  • Refine implicit priority change warnings #21045
  • Use pathing jars in cli commands #21121
  • expand classpath of pathing jars in scala_legacy command #21160
  • Fix symbol reference retrivial of scala.caps.Caps #20493

Contributors

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

According to git shortlog -sn --no-merges 3.5.0-RC3..3.5.0-RC4 these are:

     5  Martin Odersky
     3  Wojciech Mazur
     2  Hamza REMMAL
     1  Jamie Thompson

3.5.0-RC3

11 Jul 12:13
Compare
Choose a tag to compare
3.5.0-RC3 Pre-release
Pre-release

Backported fixes

  • Release .zip instead of .tar.gz for windows in sdkman #20630
  • SIP 46 - read classpath from file, remove lib directory in distribution #20631
  • Bump scala-cli to 1.4.0 #20859
  • Priority warning fix alternative #20487
  • Add --skip-cli-updates by default to the scala command #20900
  • Upgrade Scala 2 to 2.13.14 (was 2.13.12) #20902
  • fix issue 20901: etaCollapse context bound type #20910
  • Use final result type to check selector bound #20989

Contributors

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

According to git shortlog -sn --no-merges 3.5.0-RC2..3.5.0-RC3 these are:

     6  Wojciech Mazur
     5  Jamie Thompson
     5  Martin Odersky
     4  Hamza Remmal
     1  Hamza REMMAL
     1  Seth Tisue
     1  Som Snytt

3.5.0-RC2

28 Jun 12:06
Compare
Choose a tag to compare
3.5.0-RC2 Pre-release
Pre-release

Backported fixes

  • Bundle scala-cli in scala command #20351
  • Avoid stacked thisCall contexts #20488
  • Adapt the workflow to release on SDKMAN! #20535
  • Adapt the release workflow to SIP-46 #20565
  • Disable ClasspathTests.unglobClasspathVerifyTest #20551
  • Set default source version to 3.5 #20441
  • Bring back ambiguity filter when we report an implicit not found error #20368
  • Treat 3.5-migration the same as 3.5 for a warning about implicit priority change #20436
  • Avoid forcing whole package when using -experimental #20409

Contributors

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

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

     4  Hamza Remmal
     4  Wojciech Mazur
     3  Martin Odersky
     1  Jamie Thompson
     1  Guillaume Martres

3.5.0-RC1

21 May 13:43
Compare
Choose a tag to compare
3.5.0-RC1 Pre-release
Pre-release

Highlights of the release

  • Bundle scala-cli in scala command (For RC1 requires JVM 17, further RCs will use native launchers)
  • Introduce Best Effort compilation options #17582
  • Add support for Pipelined builds #18880
  • Add support for var in refinements #19982
  • Implement SIP-42 - Support for binary integer literals #19405

Other changes and fixes

Backend

  • Fix Closure span assignment in makeClosure #15841

Default parameters

  • Fix default args lookup for given classes #20256
  • Fix implicit search failure reporting #20261

Derivation

  • Fix infinite loop in Mirror synthesis of unreducible match type #20133

Desugaring

  • Add explanation to checkCaseClassInheritanceInvariant error msg #20141

Exports

  • Add annotations in parameters for exports #20140
  • Fix isAliasType #20195

Implicits

  • Fix implicitNotFound message for type aliases #19343
  • Normalize types before collecting parts determining implicit scope #20077
  • Better error diagnostics under -explain-cyclic #20251
  • Update unreducible match types error reporting #19954
  • Improve ConstraintHandling of SkolemTypes #20175

Incremental Compilation

  • Retain default parameters with export #20167

Inline

  • Fix by-name parameter in beta-reduction #20096
  • Add warning for anonymous inline classes (#16723) #20291
  • Avoid conversion of Unit type into () term #20295
  • Type desugared transparent inline def unapply call in the correct mode #20108
  • Regression: fix compilation performance on Windows #20193
  • Fix inline match on blocks with multiple statements #20125
  • Inline unapplys in the inlining phase #19382
  • Fix outerSelect in Inliner #20313

Linting

  • Fix #20146: attach the original name if there is an import selection for an indent #20163
  • Add regression test for issue 18632 #20308

Match Types

  • Make aliases of MatchAliases normal TypeAliases #19871
  • Fix #19746: Do not follow param term refs in isConcrete. #20015
  • Do match type reduction atPhaseNoLater than ElimOpaque #20017
  • Do not flag match types as Deferred and amend #20077 #20147
  • Always use baseType when constraining patternTp with scrutineeTp #20032
  • Use MirrorSource.reduce result for companionPath #20207
  • Regression: Fix match type extraction of a MatchAlias #20111

Polyfunctions

  • Discard poly-functions when trying to resolve overloading #20181

Presentation Compiler

  • Stabilise returned completions by improving deduplication + extra completions for constructors #19976
  • Fix active param index for empty param lists #20142
  • Delias type members in hover #20173
  • Interactive: handle context bounds in extension construct workaround #20201
  • Fix: prefer non-export definition locations #20252
  • Don't show enum completions in new keyword context #20304
  • Chore: Backport changes for presentation compiler #20345
  • Add custom matchers for completions (fuzzy search for presentation compiler) #19850

Quotes

  • Fix TermRef prefixes not having their type healed #20102
  • Improve reporting in staging about the possible use of an incorrect class loader #20137
  • Introduce MethodTypeKind to quotes reflection API #20249
  • Add quote ASTs to TASTy #20165

Reflection

  • Allow to beta reduce curried function applications in quotes reflect #18121
  • Set the inlining phase in the Context used for checking macro trees #20087
  • Add Symbol.isSuperAccessor to reflection API #13388
  • Stabilize reflect SymbolMethods.isSuperAccessor #20198

Repl

  • Fix validity period of derived SingleDenotations #19983
  • Fix #18383: Never consider top-level imports as unused in the repl. #20310

Reporting

  • Warn if extension receiver already has member #17543
  • Deprecation of case class elements #17911
  • Support src filter in -WConf (Closes #17635) #18783
  • Add note about type mismatch in automatically inserted apply argument #20023
  • Make error reporting resilient to exception thrown while reporting #20158
  • Remove duplicate comma from Matchable selector warning #20159
  • Generalize warnings for top-level calls to Any or AnyRef methods #20312
  • Make CheckUnused not slow. #20321

Rewrites

  • Patch indentation when removing braces (and other bug fixes in -indent -rewrite) #17522
  • Extra check to avoid converting block expressions on the rhs of an in… #20043

Scaladoc

  • Fix scaladoc crash on Windows - illegal path character #20311
  • Scaladoc: improve refined function types rendering #20333
  • Relax font-weight reset #20348

Scala JS

Settings

  • Lift Scala Settings from experimental to stabilized #20199

Tooling

  • Detect macro dependencies that are missing from the classloader #20139
  • Write pipelined tasty in parallel. #20153
  • ConsoleReporter sends INFO to stdout #20328

Transform

  • Fix overloaded default methods test in RefChecks #20218
  • Fix handling of AppliedType aliases in outerPrefix #20190
  • Elide unit binding when beta-reducing #20085

Typer

  • Reduce projections of type aliases with class type prefixes #19931
  • Re-lub also hard union types in simplify #20027
  • Fix #19789: Merge same TypeParamRef in orDominator #20090
  • Allow SAM types to contain match alias refinements #20092
  • Don't dealias when deciding which arguments to defer #20116
  • Avoid the TypeVar.inst trap #20160
  • Avoid crash when superType does not exist after erasure #20188
  • Refine overloading and implicit disambiguation #20084
  • Refactor constant folding of applications #20099
  • Rollback constraints if isSameType failed second direction #20109
  • Suppress "extension method will never be selected" for overrides #20164
  • Allow SAM types to contain multiple refinements #20172
  • Normalize when verifying if TypeTestCasts ...
Read more

3.4.2

16 May 15:41
Compare
Choose a tag to compare

Highlights of the release

  • Bump JLine 3.19.0 -> 3.24.1 & sbt 1.9.7 -> 1.9.9 #19744
  • Refactor settings & improve dx #19766
  • Publish scala2-library-tasty-experimental #19588
  • Repl - method signatures in autocomplete #19917

Other changes and fixes

Annotations

  • Attempt implicit search for old style implicit parameters in Application matchArgs #19737

Backend

  • Fix(#17255): cannot find Scala companion module from Java #19773
  • Change isStatic to isStaticOwner in hasLocalInstantiation #19803

Coverage

  • Port coverage filter options for packages and files #19727

Default parameters

  • Lift all non trivial prefixes for default parameters #19739

Doctool

  • Prevent HTML/XSS Injection in Scala Search #19980
  • Parse search query param in Scaladoc #19669

Experimental: Capture Checking

  • Disallow covariant caps in the lower bound of type members #19624
  • Ignore orphan parameters inside a retains annotation during Ycheck #19684
  • Fix the pickling of This inside capture sets #19797
  • Add updated to SeqViewOps #19798
  • Fix Function tree copier #19822
  • Drop FreeSeqFactory from stdlib-cc #19849
  • Fix i19859 #19860
  • Various fixes to stdlib-cc #19873
  • Add more methods in SeqViewOps #19993
  • Check This references in refersToParamOf #20005

Exports

  • Fix the tparam bounds of exported inherited classes #18647

Implicits

  • Prefer extensions over conversions for member selection #19717
  • Don't allow implicit conversions on prefixes of type selections #19934
  • Make sure typeParams returns a stable result even in the presence of completions #19974

Incremental Compilation

  • Fix undercompilation upon ctor change #19911
  • Load but not enter case accessors fields in Scala2Unpickler #19926

Initialization

  • Add supports for type cast and filtering type for field and method owner in global initialization checker #19612
  • Added a second trace for global init checker showing creation of mutable fields #19996
  • Suppressing repetitive warnings in the global initialization checker #19898

Inline

  • Specialized retained inline FunctionN apply methods #19801
  • Avoid crash after StopMacroExpansion #19883
  • Check deprecation of inline methods #19914
  • Inline transparent implicit parameters when typing Unapply trees #19646
  • Restore pre-3.3.2 behavior of inline implicit def #19877

Match Types

  • Cover patterns using reflect.TypeTest in isMatchTypeShaped #19923
  • Rework MatchType recursion in collectParts #19867

Nullability

  • Fix #19808: Don't force to compute the owner of a symbol when there is no denotation #19813

Parser

  • Add support for JEP-409 (sealed classes) + Add javacOpt directive #19080
  • Fix(#16458): regression in xml syntax parsing #19522
  • Fix parsing of conditional expressions in parentheses #19985

Presentation Compiler

  • Allow range selection on function parameter to select a parameter list #19777

Quotes

  • Disallow ill-staged references to local classes #19869
  • Add regression test for #19909 #19915
  • Detect non Expr[..] splice patterns #19944
  • Avoid spurious val binding in quote pattern #19948
  • Add regression test and imporve -Xprint-suspension message #19688

REPL

  • Repl truncation copes with null #17336
  • Catch stackoverflow errors in the highlighter #19836
  • Fix a REPL bad symbolic reference #19786

Reflection

  • Fix TypeTreeTypeTest to not match TypeBoundsTrees #19485
  • Improve message when tree cannot be shown as source #19906
  • Fix #19732: quotes.reflect.Ref incorrectly casting This to RefTree #19930
  • Add check for parents in Quotes (#19842) #19870

Reporting

  • Improve error reporting for missing members #19800
  • Avoid repetitions in name hints #19975
  • Improve error message when using experimental definitions #19782
  • Make -Xprompt work as desired under -Werror #19765
  • Fix #19402: emit proper error in absence of using in given definitions #19714
  • Bugfix: Choose correct signature is signatureHelp for overloaded methods #19707
  • Unify completion pos usage, fix presentation compiler crash in interpolation #19614

Scaladoc

  • Fix(#16610): warn ignored Scaladoc on multiple enum cases #19555

TASTy format

  • Add patch for undefined behavior with object $ #19705
  • Fix(#19806): wrong tasty of scala module class reference #19827
  • Used derived types to type arguments of dependent function type #19838

Tooling

  • Java TASTy: use new threadsafe writer implementation #19690
  • Remove -Yforce-inline-while-typing #19889
  • Cleanup unnecessary language flag #19865
  • Bugfix: Auto imports in worksheets in Scala 3 #19793
  • Refine behavior of -Yno-experimental #19741

Transform

  • Short-circuit isCheckable with classSymbol #19634
  • Avoid eta-reduction of (..., f: T => R, ...) => f.apply(..) into f #19966
  • Tweak parameter accessor scheme #19719

Typer

  • Update phrasing for NotClassType explain error message #19635
  • Fix java typer problems with inner class references and raw types #19747
  • Approximate MatchTypes with lub of case bodies, if non-recursive #19761
  • Revert broken changes with transparent inline #19922
  • Delay hard argument comparisons #20007
  • Fix #19607: Allow to instantiate wildcard type captures to TypeBounds. #19627
  • Fix #19907: Skip soft unions in widenSingle of widenInferred #19995
  • Fix untupling of functions in for comprehensions #19620

Contributors

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

According to git shortlog -sn --no-merges 3.4.1..3.4.2 these are:

    46	Nicolas Stucki
    33	Martin Odersky
    25	Dale Wijnand
    22	Hamza REMMAL
    18	Yichen Xu
    17	Jamie Thompson
    15	Szymon Rodziewicz
    11	EnzeXing
    11	i10416
     9	Paweł Marks
     6	Kacper Korban
     4	Dan13llljws
     4	Katarzyna Marek
     4	Matt Bovel
     4	Som Snytt
     4	noti0na1
     3	110416
     3	Eugene Flesselle
     3	Sébastien Doeraene
     3	dependabot[bot...
Read more