Releases: scala-native/scala-native
0.5.8
0.5.8 (2025-06-06)
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.4 3.4.0 ... 3.4.3 3.5.0 ... 3.5.2 3.6.2 ... 3.6.4 3.7.0 ... 3.7.1 |
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 | 73 |
Merged PRs | 63 |
Contributors | 11 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.7..v0.5.8
26 Wojciech Mazur
24 LeeTibbert
6 Eric K Richardson
5 Joรฃo Costa
4 Leonid Dubinsky
2 Corey O'Connor
2 dependabot[bot]
1 Daniel Urban
1 He-Pin(kerr)
1 Rikito Taniguchi
1 ekrich
Merged PRs
v0.5.8 (2025-06-06)
Merged pull requests:
Scala Native Runtime
- Reduce number of wrappers when fetching aliveThreads #4250 (JD557)
- Preserve information about exception in module init #4279 (WojciechMazur)
- Reduce allocations in fromCString #4299 (JD557)
- Make error messages more consistent #4310 (JD557)
- Update libunwind to 20.1.4 #4330 (WojciechMazur)
- Fix Windows mingw build issues #4327 (WojciechMazur)
- Configure default GC settings at compile time #4338 (ekrich)
- Add fromCStringSlice #4304 (JD557)
Scala Native toolchain
- Fix
isPositionIndependentBinary
#4301 (durban) - Add
Build.buildCachedAwait
in toolchain` #4326 (WojciechMazur) - Enforce stronger memory model guarantees for Array/Ptr ops #4328 (WojciechMazur)
- Fix logging not embeded resource files #4362 (WojciechMazur)
- Ensure debug positions are in LLVM limits #4331 (WojciechMazur)
Java Standard Library
- Implement JDK 15 jl.String#formatted #4248 (LeeTibbert)
- Implement two JDK21 String#indexOf variants #4252 (LeeTibbert)
- Implement two JDK9 java.lang compareUnsigned methods #4256 (LeeTibbert)
- Fix #4131: Implement some JDK 17 JEP356 RandomGenerator methods #4267 (LeeTibbert)
- Simplify & update j.u.Collections#shuffle methods #4281 (LeeTibbert)
- Handle IO exceptions when walking searching for source code files #4283 (WojciechMazur)
- Implement java.util.Arrays JDK9 methods; align with JDK 24 #4277 (LeeTibbert)
- Implement basic
java.lang.System.Logger
#4290 (WojciechMazur) - Align j.l.StringBuilder & StringBuffer with JDK24 #4271 (LeeTibbert)
- Fix #4297: javalib charset CoderResult#toString now matches JVM #4298 (LeeTibbert)
- Faster UTF-8 decoding from mixed buffers #4291 (JD557)
- Fix #4284: JDK 8 Arrays#equals(Double/Float) now use Java semantics #4293 (LeeTibbert)
- Fix
java.lang.reflect.Array.newInstance
for multi dimensional arrays #4309 (WojciechMazur) - Implement JDK11 Collection#toArray(generator: IntFunction) method #4305 (LeeTibbert)
- javalib: add alternative paths to get resources #4312 (ekrich)
- javalib: Ensure ArrayList#clone creates independent state #4319 (tanishiking)
- Port java.lang.Math#unsignedMultiplyHigh from Scala.js #4340 (LeeTibbert)
- unix javalib jl.Process waitFor changes for os-lib #4349 (LeeTibbert)
- Unix-only partial fix to javalib jnf.Path#normalize() handling of dot-dot #4344 (LeeTibbert)
- Windows-only partial fix to javalib jnf.Path#normalize() handling of dot-dot #4347 (LeeTibbert)
- Implement javalib JEP 431 SequencedCollection and SequencedSet interfaces #4333 (LeeTibbert)
- Fix #4352: javalib UnixProcessGen2 is now atomic #4353 (LeeTibbert)
Other
- Add Scala 3.6.4 to the build #4262 (WojciechMazur)
- Scala 3.7.0-RC1 support #4264 (WojciechMazur)
- Add Scala 3.7.0 and 3.3.6 LTS to the build #4325 (WojciechMazur)
- Add Scala 3.7.1 to the build #4355 (WojciechMazur)
- Add a devenv.sh environment setup #4318 (coreyoconnor)
- docs: further build setup information #4346 (coreyoconnor)
- Fix #4359: Posixlib waitid status param needs to be ptr siginfo_t infop #4356 (ekrich)
Scala Native sbt plugin
- Fix waiting for Future that failed due to a fatal error. #4307 (WojciechMazur)
Testing interface adapter
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.linkCppRuntime
annotation 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-exceptions
or-fcxx-exceptions
settings toNativeConfig.compileOptions
allows 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_SIZE
environment 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.Object
toj.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 (WojciechMazur)
- Fix scalalib compilation for 3.3.5-RC #4177 (WojciechMazur)
- Fix LazyVals overrides for Scala 3.3.{0,3} #4178 (WojciechMazur)
- Add Scala 3.3.5 to the build cross versions #4184 (WojciechMazur)
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 (WojciechMazur)
- Try optimize collection of stacktraces #4115 (WojciechMazur)
- Detect and handle StackOverflowErrors #4153 (WojciechMazur)
- Improve Class.toString for primitives. #4187 (WojciechMazur)
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 (lolgab)
- Generate GC yield instructions when looping on the same block #4119 (WojciechMazur)
- Use config.targetsPlatform instead of Platform.isPlatform #4124 (lolgab)
- Polyinline improvements #4135 (lolgab)
- Convert boxing runtime calls into NIR box/unbox instructions #4139 (lolgab)
- Reuse
hasUnwind
lazy val in Opt.scala #4110 (lolgab) - Emit missing file attribute in debug metadata of BasicMonitor union and scala.Array types #4163 (WojciechMazur)
- Fix detection of using system threads when using ThreadBuilders.start API #4162 (WojciechMazur)
- Fix missing unwind symbols when linking with lld #4160 (lolgab)
- Compilation Support for native Windows toolchain #3866 (ekrich)
- Always inline when code is annotated with
@alwaysinline
#4106 (lolgab) - Refine when to apply alwaysinline attribute #4170 (WojciechMazur)
- Eliminate redundant box -> bitcast -> unbox chains #4158 (lolgab)
- Add missing dbg metadata to generated
scalanative_catch
calls #4179 (WojciechMazur) - Optimize throwing exception to local handler as jump #4194 (WojciechMazur)
- Fix handling of intrinsic methods in lowering in non-optimized builds #4186 (WojciechMazur)
- Don't warn on unresolved intrisnic method call that is defined inside handled intrinsic method #4202 (WojciechMazur)
- Improve detection when system threads are used. #4204 (WojciechMazur)
- Refine when to check for StackOverflowError #4203 (WojciechMazur)
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.Properties
be evaluated lazily #4103 ([lolgab](https://githu...
0.5.6
0.5.6 (2024-11-13)
We're happy to announce the release of Scala Native 0.5.6!
Supported Scala versions
Scala Binary Version | Supported Scala Versions |
---|---|
2.12 | 2.12.14 ... 2.12.20 |
2.13 | 2.13.8 ... 2.13.15 |
3 | 3.1.2 ... 3.1.3 3.2.0 ... 3.2.2 3.3.0 ... 3.3.4 3.4.0 ... 3.4.3 3.5.2 ... 3.5.2 |
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 | 32 |
Merged PRs | 30 |
Contributors | 10 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.5..v0.5.6
15 Wojciech Mazur
5 Maksym Ochenashko
4 LeeTibbert
3 Joรฃo Costa
2 Eric K Richardson
1 Corey O'Connor
1 Rikito Taniguchi
1 dependabot[bot]
1 unarist
1 ๆพช
Merged PRs
0.5.6 (2024-11-13)
Merged pull requests:
Java Standard Library
- feature [nativelib]: implement
ThreadMXBean
#4031 (iRevive) - feature [nativelib]: partially implement
OperatingSystemMXBean
#4033 (iRevive) - feature [nativelib]: partially implement
RuntimeMXBean
#4034 (iRevive) - feature [nativelib]: partially implement
GarbageCollectorMXBean
#4066 (iRevive) - feaure [javalib]: Port JSR-166 ConcurrentLinkedDeque to Scala Native #4046 (LeeTibbert)
- Optimize Integer.toString #4048 (JD557)
- Fix [javalib]: POSIX readAttributes() now links #4069 (LeeTibbert)
- Improve ZLib error messages in the inflater #4074 (JD557)
- Nullify WeakReference.postGCHandler once it is used #4080 (WojciechMazur)
Scala Native Library
Scala Native Runtime
- fix [immix/commix/none gc]: Revert using free memory size instead of total memory size to control size of the heap #4047 (WojciechMazur)
- [improve/build] Remove two FreeBSD 14.1 build defects #4059 (LeeTibbert)
Scala Native Toolchain
- Fix #4026 Fix negative byte to hex conversion in LLVM IR codegen #4052 (tanishiking)
- [improve/nativelib] Better detection of
LinktimeInfo.isMac
#4051 (WojciechMazur) - Improve interflow inliner log messages #4055 (JD557)
- [fix] Teach NIR subtyping to treat
scala.runtime.Nothing$
in the same way anir.Type.Nothing
#4065 (WojciechMazur)
Scala Standard Library
- [chore] Add Scala 2.12.20 to the build #4043 (WojciechMazur)
- [chore] Add Scala 3.5.1 to the build. #4054 (WojciechMazur)
- [chore] Add Scala 2.13.15 to the build #4058 (WojciechMazur)
- [chore] Add Scala 3.3.4 to the build #4062 (WojciechMazur)
- [chore] Add Scala 3.6.1 to the build. #4081 (WojciechMazur)
POSIX bindings
Windows API Bindings
Documentations
- Update source debug docs #4041 (ekrich)
- Update test source debug docs #4063 (ekrich)
- Add references to third party tools and libraries to docs #4042 (coreyoconnor)
Scala Native Compiler Plugin
- fix[compiler-plugin] Intrinisic ClassFieldRawPtr should always mangle symbol names when comparing symbols #4045 (WojciechMazur)
- Don't allow to define CFuncPtr lambda closing over
this
#4079 (WojciechMazur)
Scala Native sbt plugin
- [fix/sbt-plugin] Always override default build target in Test scope to
application
#4050 (WojciechMazur)
v0.5.5
0.5.5 (2024-08-18)
Supported Scala versions
Scala Binary Version | Supported Scala Versions |
---|---|
2.12 | 2.12.14 ... 2.12.19 |
2.13 | 2.13.8 ... 2.13.14 |
3 | 3.1.2 ... 3.1.3 3.2.0 ... 3.2.2 3.3.0 ... 3.3.3 3.4.0 ... 3.4.3 3.5.0 |
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 | 28 |
Merged PRs | 27 |
Contributors | 7 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.4..v0.5.5
16 LeeTibbert
6 Wojciech Mazur
2 Maksym Ochenashko
1 Eric K Richardson
1 Guest user
1 Natsu Kagami
1 dependabot[bot]
Merged PRs
v0.5.5 (2024-08-18)
Merged pull requests:
Scala Native Runtime
- Optimizations for Delimited Continuations implementation #3978 (natsukagami)
- feature [nativelib]: add
runtimeVersion
to theLinktimeInfo
#4028 (iRevive) - feature [nativelib]: implement
MemoryMXBean
andManagementFactory
#4021 (iRevive)
Java Standard Library
- fix[javalib]: Use FunctionalInterface annotation consistently #3981 (LeeTibbert)
- fix[javalib]: Math#max & Math.min now order IEEE754 negative zeros correctly. #3985 (LeeTibbert)
- feature[javalib]: Math.TAU & four Math.clamp() methods #3989 (LeeTibbert)
- improvement [javalib]: Implement List static methods #3992 (LeeTibbert)
- improvement [javalib]: Implement Set & HashSet static methods #3993 (LeeTibbert)
- improvement [javalib]: Implement Map & HashMap static methods #3994 (LeeTibbert)
- improvement [javalib]: AbstractSet#equals now matches other Sets only #3996 (LeeTibbert)
- improvement [javalib]: add required override for Set#spliterator #3997 (LeeTibbert)
- improvement [javalib]: simplify 'Stream#toList' implementation #4000 (LeeTibbert)
- improvement [javalib]: Correct file name to j.u.SplittableRandom.scala #4004 (LeeTibbert)
- improvement [javalib]: Implement Java 21 Collections.shuffle(List, RandomGenerator) #4005 (LeeTibbert)
- improvement [javalib]: implement ju.LinkedHashMap#newLinkedHashMap static method #4006 (LeeTibbert)
- improvement [javalib]: Four *Stream#skip methods now pass an accurate estimatedSize downstream #4008 (LeeTibbert)
- improvement [javalib]: implement ju.LinkedHashSet#newLinkedHashSet static method #4009 (LeeTibbert)
Scala compiler plugins
- build: Add support for Scala 3.3.4-RC1 #3990 (WojciechMazur)
- fix [compiler-plugin]: Fix generation of match default case in if-else chain #4015 (WojciechMazur)
- [chore] Add Scala 3.5.0 to the build #4027 (WojciechMazur)
Scala Native toolchain
- [fix] Traversing unreachable code blocks in lowering phase in nonoptimized builds #4013 (WojciechMazur)
Documentation
- improvement [docs]: remove
$
, separate output from cli snippets #4002 (spaceunifyfifty) - Update and enhance documentation for Scala Native version 0.5 #4020 (ekrich)
POSIX bindings
- feature [posixlib]: Add partial Open Group Issue 8 support to unistd.scala #4019 (LeeTibbert)
0.5.4
0.5.4 (2024-06-24)
We're happy to announce the path release of Scala Native 0.5.4.
Supported Scala versions
Scala Binary Version | Supported Scala Versions |
---|---|
2.12 | 2.12.14 ... 2.12.19 |
2.13 | 2.13.8 ... 2.13.14 |
3 | 3.1.2 ... 3.1.3 3.2.0 ... 3.2.2 3.3.0 ... 3.3.3 3.4.0 ... 3.4.2 3.5.0-RC2 |
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 | 12 |
Merged PRs | 11 |
Contributors | 4 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.3..v0.5.4
7 LeeTibbert
3 Wojciech Mazur
1 Corey O'Connor
1 Joรฃo Costa
Merged PRs
v0.5.4 (2024-06-24)
Notable pull requests:
Java standard library
- Correct UnixProcessGen2#isAlive #3950(LeeTibbert)
- Process#waitFor(timeout) now handles large number of nanoseconds #3954 (LeeTibbert)
- BaseStream & its split/iterators are now type invariant #3949(LeeTibbert)
- Fix calculation of initial maximal load of ThreadLocal.Values table #3966(WojciechMazur)
- Corrections & improvements to Files#find, Files#walk, & Files#walkFileTree methods #3967(LeeTibbert)
- Runtime#availableProcessors now respects cpuset on small Linux systems #3969(LeeTibbert)
- make ProcessTest hello assertions distinguishable #3971(LeeTibbert)
- Correct declaration of Stream#toList then refactor implementation #3972(LeeTibbert)
Toolchain
- Store build checksum in file to allow skip of builds after restarting JVM #3974(WojciechMazur)
Scala Native Runtime
v0.5.3
We're happy to announce the release of Scala Native 0.5.3.
This release introduces bugfixes the runtime and toolchains.
Notably it fixes spurious segmentation faults coused by lack of null guards before calling methods, but also brings multiple fixes to IO operations on files.
Supported Scala versions
Scala Binary Version | Supported Scala Versions |
---|---|
2.12 | 2.12.14 ... 2.12.19 |
2.13 | 2.13.8 ... 2.13.14 |
3 | 3.1.2 ... 3.1.3 3.2.0 ... 3.2.2 3.3.0 ... 3.3.3 3.4.0 ... 3.4.2 3.5.0-RC1 |
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 | 8 |
Merged PRs | 7 |
Contributors | 2 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.2..v0.5.3
7 Wojciech Mazur
1 98765abc
Merged PRs
v0.5.3 (2024-06-04)
Merged pull requests:
Toolchain
- Fix generation of null guards for cases when null guard was emitted only in 1 branch of control flow #3940 (WojciechMazur)
Java standard library
- fix [javalib] Allow to move broken symlinks #3942 (WojciechMazur)
- fix [javalib] Fix access to redirected output of the file directly after finishing the subprocess execution #3941 (WojciechMazur)
- fix[javalib] Acknownledge
kevent
andppol
as blocking extern functions #3945 (WojciechMazur) - improve [javalib]: handling of EINTR errno when waiting process termination #3946 (WojciechMazur)
Artifacts
- improve [build]: Publish Scala 2.13 artifacts using oldest cross compiled version of Scala 2.13 #3947 (WojciechMazur)
v0.5.2
See changelog at Scala Native website: changelog v0.5.2
v0.5.1
See the release notes on Scala Native website
v0.5.0
See the release notes on Scala Native website
tl;dr
- Not backward compatible with previous releases,
- Added support for multithreading based on platform threads
- Added support for targeting 32-bit architectures
- Initial source level debugging support
- Various changes to the build system. See โBuild Integrator featuresโ below.
- Removed stub implementation for partially implemented Java Standard Library types
- SIP-51 support: artifacts for every Scala standard library version
v0.5.0-RC3
See the release notes on Scala Native website
tl;dr
- Not backward compatible with previous releases,
- Added support for multithreading based on platform threads
- Added support for targeting 32-bit architectures
- Initial source level debugging support
- Various changes to the build system. See โBuild Integrator featuresโ below.
- Removed stub implementation for partially implemented Java Standard Library types
- SIP-51 support: artifacts for every Scala standard library version