Tuesday 14 March 2017 Denys Shabalin

We’re excited to announce the first release of Scala Native, an optimising ahead-of-time compiler for Scala built on top of the LLVM compiler infrastructure.

Unlike the reference implementation of Scala which generates bytecode that runs on top of the Java Virtual Machine, Scala Native toolchain produces stand-alone native executables. This opens the door for Scala to be used in environments where full-blown virtual machine is usually an overkill: command-line tools, resource-constrained hardware applications, video games etc.

To achieve this goal we’ve developed a whole-program optimising compiler that generates LLVM intermediate representation. This representation is then used to generate efficient platform-dependent machine code.

The project has reached a point of feature completeness in terms of the coverage of the Scala language. We support the whole language including the more advanced features such as method dispatch via structural types and even macros.

What’s included

Here are some of the exciting features that got into 0.1:

Support for the whole Scala language with negligible semantic differences

Effortless zero-cost interoperability with native code

Out-of-the-box support for existing Scala IDEs

Seamless integration with sbt build tool

Cross-publishing infrastructure against JVM, JS and Native platforms

Support for the core subset of the JDK base libraries

More information is available on our website.

Road ahead

A list of known issues and upcoming features is available via GitHub issues.

Brought to you by

This project is brought to you by collaboration of LAMP and Scala Center.