0.5.7
0.5.7 (2025-02-26)
We're happy to announce the release of Scala Native 0.5.7.
Breaking changes
- Scala Native 0.5.7 is backward compatible with all previous Scala Native 0.5 versions, but it is not forward binary compatible with 0.5.6. Users of libraries published using Scala Native 0.5.7 are required to update to Scala Native 0.5.7 or higher
Highlights of the release
- Scala Native runtime no longer requires C++ standard library (on Unix systems) by default.
@scala.scalanative.unsafe.linkCppRuntimeannotation can be used on extern methods bindings to require linking with C++ standard library if these are used. Scala Native would still use C++ runtime on Windows or if the LTO is enabled, due to not yet resolved issues. Adding-fno-cxx-exceptionsor-fcxx-exceptionssettings toNativeConfig.compileOptionsallows to explicitlly control if Scala Native should use it's own exception handling implementation or to continue using C++ exception wrappers. - StackOverflowError can now be detected and handled instead of terminating program
SCALANATIVE_THREAD_STACK_SIZEenvironment variable can now be used to control default platform Thread size at runtime (-Xss on the JVM)- Optimized layout of Class virtual tables to reduce size of binaries
- Implemented many Java standard library methods introduced in JDK 9 and later
Supported Scala versions
Scala Binary Version | Supported Scala Versions |
-------------------- | ------------------------ |
2.12 | 2.12.14 ... 2.12.20 |
2.13 | 2.13.8 ... 2.13.16 |
3 | 3.1.2 ... 3.1.3
3.2.0 ... 3.2.2
3.3.0 ... 3.3.5
3.4.0 ... 3.4.3
3.5.0 ... 3.5.2
3.6.2 ... 3.6.3 |
Upon release of new Scala version (stable, or Scala 3 RC) version dependent artifacts would be published without a new release.
| Commits since last release | 90 |
| Merged PRs | 85 |
| Contributors | 10 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.6..0.5.7
41 Wojciech Mazur
29 LeeTibbert
11 Lorenzo Gabriele
3 Eric K Richardson
1 Anton Sviridov
1 Arman Bilge
1 Dimi Racordon
1 Jiahui (Jerry) Tan
1 dependabot[bot]
1 faveoled
Merged PRs
0.5.7 (2025-02-26)
Merged pull requests:
Scala Native compiler plugin
- Fix generation of closure with type lambda parameters. #4083 (WojciechMazur)
- fix: Narrow type used in unwinding from
j.l.Objecttoj.l.Throwable#4089 (WojciechMazur) - Fix value class boxing inside lambdas based on failing Scala 2.13.16 partests #4183 (WojciechMazur)
- Add Scala 2.13.16 to the build #4165 (WojciechMazur)
- Add Scala 3.6.2 to the build #4102 ()
Scala Native runtime
- Replace single TraitDispatchTable with class specific itables to reduce size of binaries #4085 (WojciechMazur)
- Fix not inititalizied Posix thread state of Main thread #4112 (WojciechMazur)
- Try to fix exceptions during main thread initialization #4188 (WojciechMazur)
- Implement minimal C++-like runtime to support exceptions without linking libc++ #4122 (lolgab)
- Fallback to C++ exceptions when using LTO or explicitly enabled #4201 ()
Scala Native toolchain
- Show both original defns and transformed instructions after lowering phase failure #4086 (WojciechMazur)
- Cache and reuse unwind handlers for the same nir.Next input #4088 (WojciechMazur)
- Enhance build error handling for a build module named native #4092 (ekrich)
- Get function name from DWARF when available #4094 (lolgab)
- Support PIE (Position Independent Executables) #4111 ()
Scala Native sbt plugin
- Prevent closing shared scope that can be used concurrently #4151 (WojciechMazur)
Java Standard Library
- Missing set methods #4096 (kyouko-taiga)
- Make some
java.lang.Propertiesbe evaluated lazily #4103 (lolgab) - Fix percent decoding in URIs #4109 (keynmol)
- Implement
java.lang.Class.forName#4113 (WojciechMazur) - Fix signaturs of java.lang.{Math,Runtime} methods #4114 (WojciechMazur)