Skip to content

Add Scala 3.3.4 LTS announcement #1698

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions _data/scala-releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
release_date: September 20, 2024
- category: current_version
title: Current 3.3.x LTS release
version: 3.3.3
release_date: February 29, 2024
version: 3.3.4
release_date: September 27, 2024
- category: current_version
title: Current 2.13.x release
version: 2.13.15
Expand Down
10 changes: 10 additions & 0 deletions _downloads/2024-09-27-3.3.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
title: Scala 3.3.4
start: 27 September 2024
layout: downloadpage
release_version: 3.3.4
release_date: "September 27, 2024"
permalink: /download/3.3.4.html
license: <a href="https://www.scala-lang.org/license/">Apache License, Version 2.0</a>
api_docs: https://www.scala-lang.org/api/3.3.4/
---
33 changes: 33 additions & 0 deletions _posts/2024-09-27-release-notes-3.3.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
category: announcement
permalink: /news/3.3.4
title: "Scala 3.3.4 is now available!"
---
Scala 3.3.4 LTS is now available!

This release of Scala 3 focuses on increasing stability, improving tooling support, and fine-tuning the language to handle modern use cases efficiently.
It contains most of the improvements introduced in the Scala Next series up to the Scala 3.5.1 release.
All of the backported changes were proven to not break either binary or source compatibility, by testing the compilation of over 1500 projects using [Scala 3 Open Community Build](https://github.com/VirtusLab/community-build3).

For a full list of changes and contributor credits, please refer to the [release notes](https://github.com/scala/scala3/releases/tag/3.3.4).

## Notable changes

- Improved errors when using newer, incompatible version of JVM bytecode in project dependencies
- Upgrade Scala 2 library to 2.13.14
- Support for JDK 22
- Support JEP-409 (sealed classes) in mixed Java/Scala codebases.
- Support for `@deprecatedInheritance`
- Support for progress tracking and interface for cooperative interruption of compilation (e.g. cancellation from within an editor). Metals IDE users will notice that compilation progress is no longer frozen at 0% when using sbt or bloop as the BSP server. IntelliJ will also correctly report progress for BSP and sbt based projects
- Support for coverage filter options under `-coverage-exclude-packages` and `-coverage-exclude-files`
- Support parallel JVM backend under `-Ybackend-parallelism:N`
- Warnings for definitions of anonymous classes in inlined methods - each usage of such methods would create a new anonymous class leading to an increased number of generated class files and possibly increased JVM meta-space pressure. Methods defining anonymous classes would yield a warning
- Warnings for extension receivers already having a defined non-private member of the same name and a subsuming signature
- Warnings when a private field or class parameter shadows a superclass field under `-Xlint:private-shadow`
- Warnings type parameter shadows a type already defined in the scope under `-Xlint:type-parameter-shadow`
- Improved generation of source positions for synthetic Unit expressions - these were previously leading to incorrect behaviour of JVM debuggers

## Known Issues

Scala 3.3.4 corrects generic signatures emitted in the JVM bytecode for value classes and aligns it with Scala 2.13 semantics.
The previously generated signatures for value classes were invalid - they contained underlying value class type instead of boxed type. This change would lead to MiMa errors when signature checks are enabled and could lead to issues when referring to value class methods using reflection API. It would not affect the normal usage of value classes in Scala code compiled with the previous version of the compiler.