Download Latest Version 3.8.3 source code.tar.gz (16.0 MB)
Email in envelope

Get an email when there's a new version of Dotty

Home / 3.8.3
Name Modified Size InfoDownloads / Week
Parent folder
scala3-3.8.3.msi 2026-03-25 97.6 MB
scala3-3.8.3-x86_64-pc-win32.tar.gz.sha256 2026-03-25 102 Bytes
scala3-3.8.3-x86_64-pc-win32.zip.sha256 2026-03-25 99 Bytes
scala3-3.8.3.msi.sha256 2026-03-25 83 Bytes
scala3-3.8.3.tar.gz.sha256 2026-03-25 86 Bytes
scala3-3.8.3.zip.sha256 2026-03-25 83 Bytes
scala3-3.8.3-x86_64-apple-darwin.tar.gz.sha256 2026-03-25 106 Bytes
scala3-3.8.3-x86_64-apple-darwin.zip.sha256 2026-03-25 103 Bytes
scala3-3.8.3-x86_64-pc-linux.tar.gz.sha256 2026-03-25 102 Bytes
scala3-3.8.3-x86_64-pc-linux.zip.sha256 2026-03-25 99 Bytes
scala3-3.8.3-aarch64-apple-darwin.tar.gz.sha256 2026-03-25 107 Bytes
scala3-3.8.3-aarch64-apple-darwin.zip.sha256 2026-03-25 104 Bytes
scala3-3.8.3-aarch64-pc-linux.tar.gz.sha256 2026-03-25 103 Bytes
scala3-3.8.3-aarch64-pc-linux.zip.sha256 2026-03-25 100 Bytes
scala3-3.8.3-x86_64-pc-win32.tar.gz 2026-03-25 97.0 MB
scala3-3.8.3.tar.gz 2026-03-25 172.2 MB
scala3-3.8.3-aarch64-pc-linux.tar.gz 2026-03-25 97.4 MB
scala3-3.8.3-x86_64-apple-darwin.tar.gz 2026-03-25 96.5 MB
scala3-3.8.3-x86_64-pc-linux.tar.gz 2026-03-25 98.3 MB
scala3-3.8.3-aarch64-apple-darwin.tar.gz 2026-03-25 96.7 MB
scala3-3.8.3.zip 2026-03-25 172.5 MB
scala3-3.8.3-aarch64-apple-darwin.zip 2026-03-25 96.7 MB
scala3-3.8.3-aarch64-pc-linux.zip 2026-03-25 97.4 MB
scala3-3.8.3-x86_64-apple-darwin.zip 2026-03-25 96.6 MB
scala3-3.8.3-x86_64-pc-linux.zip 2026-03-25 98.3 MB
scala3-3.8.3-x86_64-pc-win32.zip 2026-03-25 97.0 MB
3.8.3 source code.tar.gz 2026-03-25 16.0 MB
3.8.3 source code.zip 2026-03-25 24.2 MB
README.md 2026-03-25 12.7 kB
Totals: 29 Items   1.5 GB 0

Release highlights

  • Add support for local coverage on and off with // $COVERAGE-OFF$ and // $COVERAGE-ON$ #24486
  • Deprecate for removal -print-lines compiler setting #25330
  • Add safe mode capture checking extension #25307
  • Port the Scala2 JVM backend optimizer #25165

Other changes and fixes

Desugaring

  • Fix [#24997]: Avoid unnecessary CHECKCAST in untupled function parameters #25085

Documentation

  • Fix little errors in the API documentation #25241
  • CC Language Reference: Rename cap to any/fresh #25057

Enums

  • Deprecate override class, improve checks #24828
  • Fix Java enum forwarders to pull from companion on initialization #24361

Experimental: Capture Checking

  • Rename caps.cap to caps.any #24923
  • Track global capabilities #24883
  • Treat local mutable vars as capabilities #24815
  • Fix Crashes when Capture-set Parameters Conflict with Terms #25029
  • Replace "cannot be included in" by "cannot flow into" in error messages #25155
  • CC: Add field captures to self-type constraints #24984
  • Add uses clauses for templates #24857
  • Drop special code paths for objects #24881
  • Do not consider generated getters to be update def #24906
  • Under cc, mark inferred type arguments to inline methods with an @inferred annotation #25175
  • Handle call-by-name types in bad locations under cc #25154
  • Fixes for global capabilities #25123
  • Warn if reach capability in result will likely cause leakage #24860
  • Make <fluid> decorations replace existing capture sets #25012
  • Make TypeMaps in Setup work correctly for fresh #24985
  • For a limited time, also recognize caps.cap #25076
  • Fix closure typing #25014
  • Map class capture sets via as-seen-from with prefix of created types #24830
  • Drop SafeMode attribute in Tasty #25357
  • Fix @assumeSafe addition in safe mode #25364
  • Disallow @assumeSafe under safe mode #25462

Experimental: Modularity

  • Fix nested desugaring of applied constructor types #25288

Exports

  • Add ctor proxies before exports #24884

Inline

  • Make containsOuterRefsAnywhere follow aliases #25214
  • Find annotation args in inline expansion #24895
  • Also substitute symbols in case bindings symbols #24849

JDK

  • Skip over JEP 445 compact compilation units #23247
  • Handle MissingType during Erasure phase #24817

JVM Backend

  • Simplify JVM interface list emission, remove a mini-phase #25203
  • Don't generate bridge methods for inaccessible Java package-private methods #25166
  • Revise isLocalToCompilationUnit #24856
  • Enforce JVM UTF-8 string limits in the backend #25300
  • Fix class super-call invokespecial owner #25437

Linting

  • Extension check handles hiBound of opaque type #25172
  • Distrust tree pos for patvar lint #25043
  • Move second CheckUnused after pattern matcher #25114
  • Unused lint ignores args to ctor of enclosing class #24768
  • Check inline expansion for exclusion #23019

Metaprogramming

  • Fix: Fix incremental compilation of (some unquoted) macros #24969

Named Tuples

  • Don't try checking for ambiguous single-element tuples when in types #24910
  • Fix "NamedTuple type in match is parsed as named pattern" #24929
  • Fix "Named pattern matching doesn't work in val statements or for generators" #24928
  • Fix false exhaustivity warning for pattern returning NamedTuple #23362

Overloading

  • Prefer non-extension to extension #24943

Parser

  • Check seen for TypeParamRef in TypeSizeAccumulator #25264
  • End of new expr never shrinks #25253
  • Use toVector for XML literal sequences #23221

Pattern Matching

  • Emit unchecked warnings for trait patterns #24962

Presentation Compiler

  • Bugfix: inline value false-positive shadowing with lambda params #25140
  • Test hover on backticked identifiers with whitespace #25142
  • Inlining interpolated variables #25144
  • Bugfix: treat self types as parent types #25167
  • Feat(pc): add closing labels inlay hints #25178
  • Coursier dependency imports should have lexicographic ordering #21592
  • Bugfix: Fix various minor presentation compiler issues #25256
  • Fix negative activeParameter in signature help #24945
  • Closes [#7532]: Parameter hints not working for functions #23854
  • Fix opaque types displayed as Nothing & Any in hover and signature help #24921

REPL

  • Skip module-info.class files during REPL tab-completion #24838
  • Fix REPL usage of macros loaded via :dep and :jar #25312
  • Make REPL type echo-ing use partially qualified names where made possible by imports #24850
  • Force REPL to not evaluate LazyList #25444

Reporting

  • Check -Werror on summarize #25096
  • Fixes [#24233]: Remove misleading JDK compatibility hint for TASTy errors #25171
  • Ignore resetting if preferPrevious #24991
  • Enhance WInferUnion to not warn propagated explicit union types #25280
  • Improve diagnostic message for unnecessary trailing underscore in eta-expansion #25285
  • More descriptive "not found" message when type/term exists with the expected term/type name #24959
  • Warn on Scala 2 auto-apply if loosely nullary #24811
  • Fix printing references to nested objects #25086
  • Add error note for type mismatch involving blocks without last expression #25181
  • Drop -print-lines option #24905
  • Don't suggest invisible members of root imports #24999

Runner

  • Bump Scala CLI to v1.12.3 (was v1.12.2) #25365
  • Bump Scala CLI to 1.12.4 (was 1.12.3) #25434

Rewrites

  • Accommodate ArrowAssoc in infix named arg migration #25255

Scaladoc

  • Init MacroClassLoader in scaladoc #25141
  • Scaladoc Overload Method Link Fix #25156
  • Fix duplicate member entries in Scaladoc generation #24712
  • Scaladoc Tests for CC #25277
  • Skip generation of API pages when building reference docs #25153
  • Docs: Enforce links checks in the generated docs #25425

Scala.js

  • Fix issues in presentation compiler when using Scala JS #25450
  • Fix issues with Scala JS and the presentation compiler #25550

Settings

  • Don't enable compact annotations under 2.13. #25419

Standard Library

  • Remove incorrect equals implementations from ArrayBuilder #25205
  • Use StringBuilder intead of StringBuffer in Regex #24576
  • Update StringOps.* implementation #24786

TASTy format

  • Don't absolutize sources outside of the sourceroot in TASTy #25429

Tooling

  • Fix behavior of -Ydump-sbt-inc #25125

Typer

  • Never widen constant type on selector type in matches #25197
  • Preserve insertion order when balancing And/OrType #25361
  • Improve ref check of constructors #24342

Quotes

  • Fix [#25208]: handle AndType(TermRef, TypeRef) in TreeUnpickler path trees #25209

Contributors

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

According to git shortlog -sn --no-merges 3.8.2..3.8.3 these are:

    92  Martin Odersky
    68  Solal Pirelli
    65  Wojciech Mazur
    27  Som Snytt
    13  Tomasz Godzik
    11  Li Haoyi
     9  Kenji Yoshida
     9  Oliver Bračevac
     8  Rikito Taniguchi
     7  dependabot[bot]
     5  Jakub Warchoł
     4  Emil Ejbyfeldt
     4  Hamza Remmal
     4  Zieliński Patryk
     4  noti0na1
     3  Binayak Das
     3  Lukas Rytz
     3  Matt Bovel
     3  Piotr Chabelski
     2  Chua Chee Seng
     2  Eugene Yokota
     2  Jamie Thompson
     2  Jędrzej Rochala
     2  Natsu Kagami
     2  Oscar Boykin
     2  P. Oscar Boykin
     2  Sébastien Doeraene
     1  Anatolii Kmetiuk
     1  Aviral Garg
     1  Bbn08
     1  Bill Venners
     1  Eric Ventor
     1  Jentsch
     1  Jeon Yoonjae
     1  Krrish Biswas
     1  Matt Dziuban
     1  Merlin Hughes
     1  Philippus Baalman
     1  Vadim Chelyshov
Source: README.md, updated 2026-03-25