| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-01-24 | 17.9 kB | |
| Scala Native 0.5.10 source code.tar.gz | 2026-01-24 | 4.6 MB | |
| Scala Native 0.5.10 source code.zip | 2026-01-24 | 6.8 MB | |
| Totals: 3 Items | 11.4 MB | 3 | |
0.5.10 (2026-01-24)
We're happy to announce the release of Scala Native 0.5.10.
Supported Scala versions
| Scala Binary Version | Supported Scala Versions |
|---|---|
| 2.12 | 2.12.17 ... 2.12.21 |
| 2.13 | 2.13.9 ... 2.13.18 |
| 3 | 3.1.2 ... 3.1.3 3.2.0 ... 3.2.2 3.3.0 ... 3.3.7 LTS 3.4.0 ... 3.4.3 3.5.0 ... 3.5.2 3.6.2 ... 3.6.4 3.7.0 ... 3.7.4 3.8.0 ... 3.8.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 | 179 |
| Merged PRs | 169 |
| Contributors | 9 |
Contributors
Big thanks to everybody who contributed to this release or reported an issue!
$ git shortlog -sn --no-merges v0.5.9..v0.5.10
95 Albert Meltzer
28 LeeTibbert
27 Wojciech Mazur
16 Scala Steward
4 Corey O'Connor
4 dependabot[bot]
1 Ali Rashid
1 Eric K Richardson
1 Lorenzo Gabriele
Merged PRs
v0.5.10 (2026-01-24)
Merged pull requests:
Scala Native Compiler Plugin
- Support Scala 3.8 new lazy vals and stdlib -Yexplicit-nulls #4531 (WojciechMazur)
- When testing isExtern check original owner instead of current one #4730 (WojciechMazur)
- Fix [#4747]:
genIfincorrectly forcesUnittype when only one branch isUnit#4748 (arashi01)
Scala Native runtime
- Matcher: do not copy strings, append as sequence #4653 (kitbellew)
- Matcher: fix bugs in appendReplacement #4654 (kitbellew)
- Matcher: pass region as subsequence to RE2 #4199 (kitbellew)
- unsafe: remove extra memory copy in toCXxxString #4661 (kitbellew)
- Ptr: DRY, reuse shared methods, avoid boxing #4688 (kitbellew)
- StackTrace: avoid NPE in early initialization #4698 (kitbellew)
- [GC] Refactor GC logging #4736 (WojciechMazur)
- [GC:immix/commix] Detect and crash on GC deadlock #4739 (WojciechMazur)
- Fix materialization of lazilly collected stack traces #4733 (WojciechMazur)
- Inline loadModule but not all of it #4735 (coreyoconnor)
Scala Native Toolchain
- Emphasize toolchain multithread 'detect' #4718 (LeeTibbert)
- Avoid repeat O(n) descent into insts list #4753 (coreyoconnor)
- Use vector for initial instruction toSeq #4754 (coreyoconnor)
Java Standard Library
- Fix porting glitches, including self deadlock, in javalib ConcurrentHashMap #4522 (LeeTibbert)
- Make javalib linux_sched.c robust to _GNU_SOURCE already being defined #4523 (LeeTibbert)
- Fix Scala 2.* NPE in javalib ConcurrentHashMap #4527 (LeeTibbert)
- ProcessBuilder: centralize, simplify getting envp #4546 (kitbellew)
- ProcessBuilder: user.dir is a property, not env #4557 (kitbellew)
- ProcessBuilder: implement JDK9
Redirect.DISCARD#4570 (kitbellew) - UnixProcessGen1: DRY use UnixProcessGen2.forkChild #4541 (kitbellew)
- UnixProcessGen1: remove unused methods #4563 (kitbellew)
- UnixProcessGen1: monitor in GenericProcessWatcher #4576 (kitbellew)
- UnixProcessGen1: catch TimeoutException in waitFor #4617 (kitbellew)
- UnixProcessGen2: re-use binaryPaths in spawnChild #4545 (kitbellew)
- UnixProcessGen2: add createPipe, dup2, dup2Spawn #4542 (kitbellew)
- UnixProcessGen2: don't copy stderr on redirect #4543 (kitbellew)
- UnixProcessGen2: don't create unused pipes, close all unused descriptors #4550 (kitbellew)
- UnixProcessGen2: save pidfd in the Handle #4566 (kitbellew)
- UnixProcessGen2: make sure to close pipes on error #4575 (kitbellew)
- UnixProcessGen2: retry fork()/spawn() on EAGAIN #4623 (kitbellew)
- UnixProcessGen2: use atomic to close pidfd #4644 (kitbellew)
- UnixProcessGen2: simplify createPipe with alloc #4549 (kitbellew)
- UnixProcessGen2: posix_spawn_file_actions_addopen #4554 (kitbellew)
- UnixProcessGenX: remove unused ctor, inline other #4547 (kitbellew)
- UnixProcess: don't keep pipe fd pairs as fields #4548 (kitbellew)
- UnixProcessXxx: refactoring (waitpid, imports) #4584 (kitbellew)
- UnixProcess: add throwOnErrorRetryEINTR #4616 (kitbellew)
- WindowsProcess: provide _pid directly in ctor #4582 (kitbellew)
- WindowsProcessHandle: use ProcessExitChecker #4681 (kitbellew)
- ProcessExitChecker: split Factory, change Single #4656 (kitbellew)
- GenericProcess: drain/close each stream separately #4540 (kitbellew)
- GenericProcess: no synchronized, ignore reaped #4588 (kitbellew)
- GenericProcessWatcher: add
reapSomeProcesses#4583 (kitbellew) - GenericProcessWatcher: avoid missing a new process #4646 (kitbellew)
- GenericProcessWatcher: catch exceptions reaping #4647 (kitbellew)
- GenericProcessWatcher: move most to nested object #4643 (kitbellew)
- PipeIO: do not "check if process exited" #4539 (kitbellew)
- PipeIO: NullInput must return -1 in read() #4564 (kitbellew)
- PipeIO: auto-close input stream on EOF #4565 (kitbellew)
- PipeIO: to read, check if src matches file stream #4572 (kitbellew)
- PipeIO: use InputStream, complexity to FileChannel #4574 (kitbellew)
- BsdOsSpecific: fix bug in kevent struct ident/data #4601 (kitbellew)
- FileDescriptor: simplify sync() method #4659 (kitbellew)
- FileDescriptor: use atomic file handle #4658 (kitbellew)
- FileDescriptor: use AnyVal, close only if valid #4645 (kitbellew)
- FileChannelImpl: make
available()non-negative #4589 (kitbellew) - Channel close improvements #4648 (LeeTibbert)
- ExitChecker: add lnx/bsd single-pid exit watchers #4600 (kitbellew)
- ExitChecker: add lnx/bsd multi-pid exit watchers #4631 (kitbellew)
- WeakReference: fix JDK compliance w/ clear/enqueue #4672 (kitbellew)
- WeakReferenceRegistry: fix bugs, add consistency #4674 (kitbellew)
- WeakReferenceRegistry: move thread inside object #4690 (kitbellew)
- Cleaner: implement using WeakReferenceRegistry #4664 (kitbellew)
- Cleaner: define own subclass of WeakReference #4684 (kitbellew)
- Cleaner: use own thread, not shared ForkJoinPool #4685 (kitbellew)
- InputStream: refactor read() #4686 (kitbellew)
- InputStream: refactor readNBytes, readSmallN #4687 (kitbellew)
- InputStream: consolidate bounds check in
read#4702 (kitbellew) - InputStream: ArrayList, not ConcurrentLinkedQueue #4697 (kitbellew)
- InputStream: refactor readLargeN #4689 (kitbellew)
- ReferenceQueue:
timeout == 0should be infinite #4691 (kitbellew) - ReferenceQueue: add dequeue, use in poll, remove #4693 (kitbellew)
- ReferenceQueue: keep as Reference[_ <: T] #4692 (kitbellew)
- ReferenceQueue: use java ArrayDeque vs scala Queue #4701 (kitbellew)
- Check posixlib UnixProcessFactory unistd.chdir(); update comments #4703 (LeeTibbert)
- [javalib] Ensure Process.waitFor links when multithreading is disabled #4732 (WojciechMazur)
- [javalib] Fix semantics of
java.util.concurrent.atomictypes #4734 (WojciechMazur) - [javalib] Fix [#4722]: Eliminate PosixThread maxSeconds & re-factor time handling #4738 (LeeTibbert)
- javalib UnixProcessFactory now favors posix_spawn when available #4712 (LeeTibbert)
- Fix [#4742]: javalib *Stream#filter spliterator characteristics now match JVM #4744 (LeeTibbert)
- Fix [#4743]: javalib *Stream#distinct spliterator characteristics now match JVM. #4746 (LeeTibbert)
- Fix [#4740]: Port Scala.js 'Fix modPow2Inverse used by BigInteger.modPow' #4749 (LeeTibbert)
POSIX bindings
- Update posixlib spawn.scala to Open Group Issue 8, 2024 #4567 (LeeTibbert)
- posix/{epoll,eventfd}: define epoll_xxx, eventfd #4624 (kitbellew)
- posix/kevent: move kqueue/kevent definitions #4625 (kitbellew)
- posix/{ppoll,pidfd}: move ppoll and pidfd to posix #4627 (kitbellew)
- posix/poll: change hardcoded constants to imported #4626 (kitbellew)
- posix/epoll: remove epoll_event, it's invalid #4637 (kitbellew)
- posix/kevent: remove scala kevent type, use C-lang #4638 (kitbellew)
- mmap: expose the MAP_FAILED constant and use it #4665 (kitbellew)
- posixlib: implement MAP_ANON and MAP_ANONYMOUS constants #4671 (LeeTibbert)
- Fix [#4143] termios Posix library does not work on Linux #4155 (ekrich)
- Add
@blockingannotation to unistd chdir & fchdir #4696 (LeeTibbert) - Three corrections to posixlib spawn; blocking and chdir argument #4711 (LeeTibbert)