Skip to content

Releases: scala-native/scala-native

0.5.8

06 Jun 13:31
ac1e2d5
Compare
Choose a tag to compare

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)

Full Changelog

Merged pull requests:

Scala Native Runtime

Scala Native toolchain

Java Standard Library

Other

Scala Native sbt plugin

Testing interface adapter

  • Avoid ConcurrentModificationException by using a CCHM. #4315 (He-Pin)
  • JUnit: populate sbt.testing.Event.throwable and duration. #4320 (dubinsky)
  • Remove spurious dependency of test-interface on junit-runtime. #4342 (dubinsky)

0.5.7

26 Feb 12:05
Compare
Choose a tag to compare

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 to NativeConfig.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)

Full Changelog

Merged pull requests:

Scala Native compiler plugin

Scala Native runtime

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

Java Standard Library

Read more

0.5.6

14 Nov 07:25
Compare
Choose a tag to compare

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)

Full Changelog

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

  • Fix unsafe.toCWideString was returning a double pointer to a string #4029 (unarist)

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 a nir.Type.Nothing #4065 (WojciechMazur)

Scala Standard Library

POSIX bindings

  • Fix compilation error of _CS_PATH for Termux on Android #4037 (mio-19)

Windows API Bindings

  • feature [windowslib]: add GetProcessTimes to the ProcessThreadsApi #4035 (iRevive)

Documentations

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

18 Aug 13:21
Compare
Choose a tag to compare

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)

Full Changelog

Merged pull requests:

Scala Native Runtime

  • Optimizations for Delimited Continuations implementation #3978 (natsukagami)
  • feature [nativelib]: add runtimeVersion to the LinktimeInfo #4028 (iRevive)
  • feature [nativelib]: implement MemoryMXBean and ManagementFactory #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

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

24 Jun 15:21
Compare
Choose a tag to compare

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)

Full Changelog

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

  • Only include delimcc on platforms that support continuations #3975(JD557)

v0.5.3

04 Jun 21:28
Compare
Choose a tag to compare

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)

Full Changelog

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 and ppol 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

29 May 12:41
6ef2416
Compare
Choose a tag to compare

See changelog at Scala Native website: changelog v0.5.2

v0.5.1

16 Apr 15:13
Compare
Choose a tag to compare

See the release notes on Scala Native website

v0.5.0

16 Apr 15:13
Compare
Choose a tag to compare

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

04 Apr 10:09
Compare
Choose a tag to compare
v0.5.0-RC3 Pre-release
Pre-release

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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy