v0.5 preparations. (#1135)
This commit is contained in:
+12
-2
@@ -1,6 +1,16 @@
|
|||||||
|
## v0.5 (Dec 2017)
|
||||||
|
* Reverse interop allowing to call Kotlin/Native code compiled as framework from Objective-C/Swift programs
|
||||||
|
* Reverse interop allowing to call Kotlin/Native code compiled as shared object from C/C++ programs
|
||||||
|
* Support generation of shared objects and DLLs by the compiler
|
||||||
|
* Migration to LLVM 5.0
|
||||||
|
* Support WebAssembly target on Linux and Windows hosts
|
||||||
|
* Make string conversions more robust
|
||||||
|
* Support kotlin.math package
|
||||||
|
* Refine workers and string conversion APIs
|
||||||
|
|
||||||
## v0.4 (Nov 2017) ##
|
## v0.4 (Nov 2017) ##
|
||||||
* Objective-C frameworks interop for iOS and OSX targets
|
* Objective-C frameworks interop for iOS and macOS targets
|
||||||
* Platform API libraries for Linux, iOS, OSX and Windows
|
* Platform API libraries for Linux, iOS, macOS and Windows
|
||||||
* Kotlin 1.2 supported
|
* Kotlin 1.2 supported
|
||||||
* `val` and function parameters can be inspected in debugger
|
* `val` and function parameters can be inspected in debugger
|
||||||
* Experimental support for WebAssembly (wasm32 target)
|
* Experimental support for WebAssembly (wasm32 target)
|
||||||
|
|||||||
+9
-3
@@ -11,17 +11,23 @@ without need to ship an additional execution runtime.
|
|||||||
To get started with _Kotlin/Native_ take a look at the attached samples.
|
To get started with _Kotlin/Native_ take a look at the attached samples.
|
||||||
|
|
||||||
* `androidNativeActivity` - Android Native Activity rendering 3D graphics using OpenGLES
|
* `androidNativeActivity` - Android Native Activity rendering 3D graphics using OpenGLES
|
||||||
|
* `calculator` - iOS Swift application, using Kotlin/Native code compiled into the framework
|
||||||
* `csvparser` - simple CSV file parser and analyzer
|
* `csvparser` - simple CSV file parser and analyzer
|
||||||
|
* `gitchurn` - program interoperating with `libgit2` for GIT repository analysis
|
||||||
|
* `gtk` - GTK2 interoperability example
|
||||||
|
* `html5Canvas` - WebAssembly example
|
||||||
* `libcurl` - using of FTP/HTTP/HTTPS client library `libcurl`
|
* `libcurl` - using of FTP/HTTP/HTTPS client library `libcurl`
|
||||||
* `nonBlockingEchoServer` - multi-client TCP/IP echo server using co-routines
|
* `nonBlockingEchoServer` - multi-client TCP/IP echo server using co-routines
|
||||||
* `gitchurn` - program interoperating with `libgit2` for GIT repository analysis
|
* `objc` - AppKit Objective-C interoperability example for macOS
|
||||||
* `objc` - AppKit Objective-C interoperability example for OSX
|
|
||||||
* `opengl` - OpenGL/GLUT teapot example
|
* `opengl` - OpenGL/GLUT teapot example
|
||||||
|
* `python_extension` - Python extension written in Kotlin/Native
|
||||||
* `socket` - TCP/IP echo server
|
* `socket` - TCP/IP echo server
|
||||||
* `tensorflow` - simple client for TensorFlow Machine Intelligence library
|
* `tensorflow` - simple client for TensorFlow Machine Intelligence library
|
||||||
* `tetris` - Tetris game implementation (using SDL2 for rendering)
|
* `tetris` - Tetris game implementation (using SDL2 for rendering)
|
||||||
* `uikit` - UIKit Objective-C interoperability example for iOS
|
* `uikit` - UIKit Objective-C interoperability example for iOS
|
||||||
* `win32` - trivial Win32 application
|
* `videoplayer` - SDL and FFMPEG-based video and audio player
|
||||||
|
* `win32` - trivial Win32 GUI application
|
||||||
|
* `workers` - example of using workers API
|
||||||
|
|
||||||
|
|
||||||
See `README.md` in each sample directory for more information and build instructions.
|
See `README.md` in each sample directory for more information and build instructions.
|
||||||
|
|||||||
@@ -4,9 +4,18 @@ A: Define top level function `fun main(args: Array<String>)`, please ensure it's
|
|||||||
in a package. Also compiler switch `-entry` could be use to make any function taking
|
in a package. Also compiler switch `-entry` could be use to make any function taking
|
||||||
`Array<String>` and returning `Unit` be an entry point.
|
`Array<String>` and returning `Unit` be an entry point.
|
||||||
|
|
||||||
|
|
||||||
|
Q: What is Kotlin/Native memory management model?
|
||||||
|
|
||||||
|
A: Kotlin/Native provides automated memory management scheme, similar to what Java or Swift provides.
|
||||||
|
Current implementation includes automated reference counter with cycle collector to collect cyclical
|
||||||
|
garbage.
|
||||||
|
|
||||||
|
|
||||||
Q: How do I create shared library?
|
Q: How do I create shared library?
|
||||||
|
|
||||||
A: It is not possible at the moment. Currently Kotlin/Native could be used to produce either
|
A: Use `-produce dynamic` compiler switch, or `konanArtifacts { dynamic {} }` in Gradle.
|
||||||
_Kotlin/Native_ own library format, which can be statically linked with application
|
It will produce platform-specific shared object (.so on Linux, .dylib on macOS and .dll on Windows targets) and
|
||||||
or an executable for target. For example, for Android targets compiler produces shared libraries
|
C language header, allowing to use all public APIs available in your Kotlin/Native program from C code.
|
||||||
by default (as required for _Native Activity_).
|
See `samples/python_extension` as an example of using such shared object to provide a bridge between Python and
|
||||||
|
Kotlin/Native.
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@ You may use the Gradle plugin to build _Kotlin/Native_ projects. To use it you n
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:0.3.4"
|
classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ project property:
|
|||||||
If you already downloaded the compiler manually you may specify the path to its root directory using `konan.home`
|
If you already downloaded the compiler manually you may specify the path to its root directory using `konan.home`
|
||||||
project property (e.g. in `gradle.properties`). Note: the plugin ignores the `konan.version` property in this case.
|
project property (e.g. in `gradle.properties`). Note: the plugin ignores the `konan.version` property in this case.
|
||||||
|
|
||||||
konan.home=/home/user/kotlin-native-0.3
|
konan.home=/home/user/kotlin-native-0.5
|
||||||
|
|
||||||
In this case the compiler will not be downloaded by the plugin.
|
In this case the compiler will not be downloaded by the plugin.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -102,7 +102,7 @@ path elements, e.g. `time.h` or `curl/curl.h`. So if the library is usually
|
|||||||
included with `#include <SomeLbrary/Header.h>`, then it would probably be
|
included with `#include <SomeLbrary/Header.h>`, then it would probably be
|
||||||
correct to filter headers with
|
correct to filter headers with
|
||||||
```
|
```
|
||||||
headerFilter = SomeLbrary/**
|
headerFilter = SomeLibrary/**
|
||||||
```
|
```
|
||||||
|
|
||||||
If `headerFilter` is not specified, then all headers are included.
|
If `headerFilter` is not specified, then all headers are included.
|
||||||
|
|||||||
+4
-3
@@ -20,16 +20,17 @@ basic runtime shipped along with the translator, we only support a subset of all
|
|||||||
target platforms. Currently _Kotlin/Native_ is being shipped and tested with support for
|
target platforms. Currently _Kotlin/Native_ is being shipped and tested with support for
|
||||||
the following platforms:
|
the following platforms:
|
||||||
|
|
||||||
* Mac OS X 10.11 and later (x86-64), host and target (`-target macbook`, default on OSX hosts)
|
* Mac OS X 10.11 and later (x86-64), host and target (`-target macbook`, default on macOS hosts)
|
||||||
* Ubuntu Linux x86-64 (14.04, 16.04 and later), other Linux flavours may work as well, host and target
|
* Ubuntu Linux x86-64 (14.04, 16.04 and later), other Linux flavours may work as well, host and target
|
||||||
(`-target linux`, default on Linux hosts)
|
(`-target linux`, default on Linux hosts)
|
||||||
* Microsoft Windows x86-64 (tested on Windows 7 and Windows 10), host and target (`-target mingw`,
|
* Microsoft Windows x86-64 (tested on Windows 7 and Windows 10), host and target (`-target mingw`,
|
||||||
default on Windows hosts)
|
default on Windows hosts)
|
||||||
* Apple iOS (arm64), cross-compiled target (`-target iphone`), hosted on OS X
|
* Apple iOS (arm64), cross-compiled target (`-target iphone`), hosted on macOS
|
||||||
* Linux arm32 hardfp, Raspberry Pi, cross-compiled target (`-target raspberrypi`), hosted on Linux
|
* Linux arm32 hardfp, Raspberry Pi, cross-compiled target (`-target raspberrypi`), hosted on Linux
|
||||||
* Linux mips big endian, cross-compiled target (`-target mips`), hosted on Linux
|
* Linux mips big endian, cross-compiled target (`-target mips`), hosted on Linux
|
||||||
* Linux mips little endian, cross-compiled target (`-target mipsel`), hosted on Linux
|
* Linux mips little endian, cross-compiled target (`-target mipsel`), hosted on Linux
|
||||||
* Android arm32 and arm64 (`-target android_arm32` and `-target android_arm64`), target, hosted on Linux or OS X
|
* Android arm32 and arm64 (`-target android_arm32` and `-target android_arm64`) target, hosted on Linux or macOS
|
||||||
|
* WebAssembly (`-target wasm32`) target, hosted on Linux, Windows or macOS
|
||||||
|
|
||||||
Adding support for other target platforms shouldn't be too hard, if LLVM support is available.
|
Adding support for other target platforms shouldn't be too hard, if LLVM support is available.
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
### Build for all supported platforms ###
|
### Build for all supported platforms ###
|
||||||
|
|
||||||
Repeat those steps for Mac OS X, Linux x86-64 and Windows x64 machines/VMs:
|
Repeat those steps for macOS, Linux x86-64 and Windows x64 machines/VMs:
|
||||||
|
|
||||||
git pull
|
git pull
|
||||||
git checkout -b v0.X-fixes origin/v0.X-fixes
|
git checkout -b v0.X-fixes origin/v0.X-fixes
|
||||||
@@ -42,9 +42,9 @@ in few minutes after upload.
|
|||||||
|
|
||||||
### Blog post ###
|
### Blog post ###
|
||||||
|
|
||||||
Notify #kotlin-native channel on public slack.
|
Notify #kotlin-native channel on public Slack.
|
||||||
|
|
||||||
Write a meaningfully sized blog post describing new release at https://blog.jetbrains.com.
|
Write a meaningfully sized blog post describing new release at https://blog.jetbrains.com.
|
||||||
Login at https://blog.jetbrains.com/kotlin/wp-login.php. Synchronize with @abreslav and @yole.
|
Login at https://blog.jetbrains.com/kotlin/wp-login.php. Synchronize with @abreslav and @yole.
|
||||||
Publish and enjoy!
|
Publish and enjoy!
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -27,7 +27,7 @@ kotlinCompilerVersion=1.2.20-dev-773
|
|||||||
kotlinScriptRuntimeVersion=1.2.20-dev-773
|
kotlinScriptRuntimeVersion=1.2.20-dev-773
|
||||||
kotlinStdLibVersion=1.2.20-dev-773
|
kotlinStdLibVersion=1.2.20-dev-773
|
||||||
kotlinReflectVersion=1.2.20-dev-773
|
kotlinReflectVersion=1.2.20-dev-773
|
||||||
konanVersion=0.4
|
konanVersion=0.5
|
||||||
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
|
org.gradle.jvmargs='-Dfile.encoding=UTF-8'
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|||||||
Reference in New Issue
Block a user