Skip to content

angstyloop/kotlin-native

Repository files navigation

Kotlin N

Kotlin Native backend, codenamed Kotlin N, is a LLVM backend for the Kotlin compiler, runtime implementation and native code generation facility using LLVM toolchain.

Kotlin N is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS, embedded targets), or where developer is willing to produce reasonably-sized self-contained program without need to ship an additional execution runtime.

To compile from sources use following steps.

First download dependencies:

./gradlew dependencies:update

Then build the compiler and standard library:

./gradlew dist

To build standard library for cross-targets (currently, iOS on Mac OSX and Raspberry Pi on Linux hosts) use:

./gradlew cross_dist

After that you should be able to compile your programs like that:

export PATH=./dist/bin:$PATH
kotlinc hello.kt -o hello

For an optimized compilation use -opt:

kotlinc hello.kt -o hello -opt

For some tests, use:

./gradlew backend.native:tests:run

To generate interoperability stubs create library definition file (take a look on samples/tetris/tetris.sdl) and run interop tool like this:

interop -def:lib.def

See provided samples and INTEROP.md for more details.

About

Kotlin/Native infrastructure

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Kotlin 61.1%
  • Swift 25.9%
  • C++ 6.7%
  • C 3.4%
  • Objective-C 1.0%
  • Objective-C++ 0.8%
  • Other 1.1%