From 0e8a1292a731c2e9bc4adcb68bb023ca2b6cf3a7 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Wed, 14 Jun 2017 16:14:47 +0300 Subject: [PATCH] v0.3 preparations (#648) --- CHANGELOG.md | 13 +++++++++++-- DISTRO_README.md | 3 +++ GRADLE_PLUGIN.md | 2 +- README.md | 6 ++++-- RELEASE_NOTES.md | 43 +++++++++++++++++++++++++++++-------------- build.gradle | 2 +- gradle.properties | 5 ++--- 7 files changed, 51 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ab10069c8d..19a74b54157 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,13 @@ -## v0.2 ## +## v0.3 (Jun 2017) ## + * Preliminary support for x86-64 Windows hosts and targets + * Support for producing native activities on 32- and 64-bit Android targets + * Extended standard library (bitsets, regular expression) + * Preliminary support for Kotlin/Native library format (.klib) + * Preliminary source-level debugging support (stepping only, no variable inspection) + * Compiler switch `-entry` to select entry point + * Symbolic backtrace in runtime for unstripped binaries, for all supported targets + +## v0.2 (May 2017) ## * Added support for coroutines * Fixed most stdlib incompatibilities * Improved memory management performance @@ -11,5 +20,5 @@ * Very basic debugging support * Improve compilation and linking performance -## v0.1 ## +## v0.1 (Mar 2017) ## Initial technical preview of Kotlin/Native. \ No newline at end of file diff --git a/DISTRO_README.md b/DISTRO_README.md index f042b199f09..56eebd9e6a0 100644 --- a/DISTRO_README.md +++ b/DISTRO_README.md @@ -13,9 +13,12 @@ without need to ship an additional execution runtime. * `csvparser` - simple CSV file parser and analyzer * `gitchurn` - program interoperating with `libgit2` for GIT repository analysis * `libcurl` - using of FTP/HTTP/HTTPS client library `libcurl` + * `nonBlockingEchoServer` - multi-client TCP/IP echo server using co-routines * `opengl` - OpenGL/GLUT teapot example * `socket` - TCP/IP echo server + * `tensorflow` - simple client for TensorFlow Machine Intelligence library * `tetris` - Tetris game implementation (using SDL2 for rendering) + * `win32` - trivial Win32 application See `README.md` in each sample directory for more information and build instructions. diff --git a/GRADLE_PLUGIN.md b/GRADLE_PLUGIN.md index 89934112cb2..5199b2e86ce 100644 --- a/GRADLE_PLUGIN.md +++ b/GRADLE_PLUGIN.md @@ -22,7 +22,7 @@ a build script (see projects in `samples` directory): The plugin downloads the compiler during its first run. You may specify a version of the compiler using `konan.version` project property: - konan.version=0.2 + konan.version=0.3 If you already downloaded the compiler manually you may specify the path to it using `konan.home` project property (e.g. in `gradle.properties`). Note: the plugin ignores the `konan.version` property in this case. diff --git a/README.md b/README.md index 5ed86a15ebb..478f9684a22 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,7 @@ 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: +To build standard library for cross-targets use: ./gradlew cross_dist @@ -42,3 +41,6 @@ To generate interoperability stubs create library definition file cinterop -def lib.def See provided [samples](https://github.com/JetBrains/kotlin-native/tree/master/samples) and [`INTEROP.md`](https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md) for more details. + +Interop tool generates library in .klib library format, see [`LIBRARY.md`](https://github.com/JetBrains/kotlin-native/blob/master/LIBRARY.md) +for more details on the file format. \ No newline at end of file diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 2b378fd7daf..270d7f7f999 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,8 +2,8 @@ ## Introduction ## - Kotlin/Native is a LLVM backend for the Kotlin compiler. It consists of a machine code generation facility using the LLVM toolchain -and a native runtime implementation. + _Kotlin/Native_ is a LLVM backend for the Kotlin compiler. It consists of a machine code generation facility using +the LLVM toolchain and a native runtime implementation. _Kotlin/Native_ is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS or embedded targets), @@ -20,14 +20,14 @@ 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 the following platforms: - * Mac OS X 10.11 and later (x86-64) - * x86-64 Ubuntu Linux (14.04, 16.04 and later), other Linux flavours may work as well - * Apple iOS (arm64), cross-compiled on MacOS X host (`-target iphone`) - * Raspberry Pi, cross-compiled on Linux host (`-target raspberrypi`) + * Mac OS X 10.11 and later (x86-64), host and target + * Ubuntu Linux x86-64 (14.04, 16.04 and later), other Linux flavours may work as well, host and target + * Microsoft Windows x86-64 (tested on Windows 7 and Windows 10), host and target + * Apple iOS (arm64), cross-compiled on MacOS X host (`-target iphone`), target, hosted on OS X + * Raspberry Pi, cross-compiled on Linux host (`-target raspberrypi`), target, hosted on Linux + * Android arm32 and arm64 (`-target android_arm32` and `-target android_arm64`), target, hosted on Linux or OS X - - 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. ## Compatibility and features ## @@ -68,8 +68,10 @@ for benchmarking and competitive analysis of any kind. ### Standard Library ### - The standard library in _Kotlin/Native_ is known to be incomplete and may not include -few methods available in standard library of Kotlin (notably, regular expression-related). + The standard library in _Kotlin/Native_ is known to be mostly complete, please report us +missing functionality. Note, that standard Java APIs, such as `java.lang.Math` or `java.io` +is not available in current _Kotlin_ standard library, but using C interoperability, one could +call similar APIs from the POSIX library, see this [`sample`](https://github.com/JetBrains/kotlin-native/blob/master/samples/csvparser). ### Reflection ### @@ -78,6 +80,19 @@ Notice that property delegation (including lazy properties) *does* work. ### Microsoft Windows support ### -Due to significant differences in exception handling models on MS Windows and -other LLVM targets, current _Kotlin/Native_ may not produce executables working on -MS Windows. This situation could be improved in upcoming releases. + Only 64-bit Windows is currently supported as both compilation host and target. + +### Debugging ### + + _Kotlin/Native_ supports preliminary source-level debugging on produced executables with `lldb` debugger. + Produce your binary with debugging information by specifying `-g` _Kotlin/Native_ compiler switch or + using `-Pbuild_flags=-g` option for Gradle build. Start your application with + + lldb my_program.kexe + + and then + + b kfun:main(kotlin.Array) + +to set breakpoint in main function of your application. Single stepping and step into shall work, +variable inspection does not work yet. See [`DEBUGGING.md`](https://github.com/JetBrains/kotlin-native/blob/master/DEBUGGING.md) \ No newline at end of file diff --git a/build.gradle b/build.gradle index 9a71561f48f..745a141aa04 100644 --- a/build.gradle +++ b/build.gradle @@ -123,7 +123,7 @@ void setupCompilationFlags() { ext.host = "macbook" ext.targetArgs << [(ext.host): - ["--sysroot=$macbookSysrootDir", "-mmacosx-version-min=$minMacOsVersion"], + ["--sysroot=$macbookSysrootDir", "-mmacosx-version-min=10.11"], "iphone": ["-stdlib=libc++", "-arch", "arm64", "-isysroot", "$iphoneSysrootDir", "-miphoneos-version-min=8.0.0"] diff --git a/gradle.properties b/gradle.properties index 5beb6f8d5b9..ee2bbb6448f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,6 @@ kotlin_version=1.1.0 llvmVersion = 3.9.0 -minMacOsVersion = 10.11 remoteRoot=konan_tests #kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-SNAPSHOT # Download artifacts of https://teamcity.jetbrains.com/viewType.html?buildTypeId=bt345 @@ -25,5 +24,5 @@ kotlinCompilerRepo=http://dl.bintray.com/jetbrains/kotlin-native-dependencies #kotlinCompilerRepo=http://oss.sonatype.org/content/repositories/snapshots #kotlinCompilerRepo=http://dl.bintray.com/kotlin/kotlin-dev kotlinCompilerModule=org.jetbrains.kotlin:kotlin-compiler:1.1-20170611.100554-585 -konanVersion=0.2 -org.gradle.jvmargs='-Dfile.encoding=UTF-8' \ No newline at end of file +konanVersion=0.3 +org.gradle.jvmargs='-Dfile.encoding=UTF-8'