Commit Graph

148 Commits

Author SHA1 Message Date
Alexander Gorshenev 413f47fda5 Removed 'clang' invocations in favour of llvm tools and 'ld'.
Introduced LinkStage in the compiler.

Removed the link stage from 'konanc'.

Removed duplicate :stdlib and :start targets.

Simplified test run task a lot.
2016-12-28 02:13:07 +04:00
Nikolay Igotti e65b86ab21 Memory management design and implementation. (#148) 2016-12-27 15:01:18 +02:00
Vasily Levchenko 3fe59cc46c TEST: convertion unit tests into run tests 2016-12-27 13:56:03 +03:00
Nikolay Igotti f49c6133f3 Return objects to slot. (#161) 2016-12-26 18:31:50 +02:00
Svyatoslav Scherbina 62737efd54 backend: add tests:
* test for uninitialized vals
* test initializers3: global `var` of reference type
* expression_as_statement (disabled): using type operator as statement

Also enable test break1.
2016-12-23 11:40:31 +07:00
SvyatoslavScherbina b6561b13a4 Implement lowering of some builtin operators. (#154)
* EQEQ
* THROW_NPE

Add test for (un)boxing `==` operands.
2016-12-22 13:02:20 +07:00
Alexander Gorshenev 823ef031eb After the code review. 2016-12-20 19:32:27 +04:00
Konstantin Anisimov 5f097350ac TEST: test for global variable initialization added 2016-12-20 12:46:22 +03:00
Konstantin Anisimov 86bb5477c5 CODEGEN: implementation of global fields initialization. 2016-12-20 12:46:22 +03:00
Svyatoslav Scherbina f2b5b98dba backend: enable and add tests for autoboxing 2016-12-20 15:33:38 +07:00
Nikolay Igotti 3b7321ef94 Boxing. 2016-12-20 15:33:38 +07:00
Alexander Gorshenev e8c2fb4f53 Fix broken build. 2016-12-14 21:49:11 +04:00
Alexander Gorshenev f5a627f6ff Allow -Pkonanc_flags="-print_bitcode" for gradle commands. 2016-12-14 20:40:45 +04:00
Svyatoslav Scherbina 319a473565 backend: add test for lambda with receiver 2016-12-13 16:09:55 +07:00
Svyatoslav Scherbina ac4aca1c3a backend: add more tests for lambda 2016-12-13 16:09:55 +07:00
Svyatoslav Scherbina 4dec392880 backend: add tests for lambda functions 2016-12-13 16:09:55 +07:00
Nikolay Igotti 34077e26ac Fix multiple object storage. (#131) 2016-12-08 16:45:47 +03:00
Nikolay Igotti c9f2e1ca22 More standard library operations. (#124) 2016-12-08 15:44:22 +03:00
Konstantin Anisimov 282f4fee07 TEST: yet another string concatenation test 2016-12-08 13:37:22 +03:00
Konstantin Anisimov d8fe22cfb8 TEST: spread element test 2016-12-08 11:59:46 +03:00
Nikolay Igotti 6fb4b47cb1 Add init test. 2016-12-07 17:44:46 +03:00
Alexander Gorshenev b04c52664e Moved link args computation to the root build.gradle.
Pass the link args to konanc.
2016-12-07 17:29:30 +04:00
Alexander Gorshenev f79b0bdf6a Changed link stage from using "clang++" to "clang -lc++abi". 2016-12-07 17:29:30 +04:00
Alexander Gorshenev 4dba5fdec4 Disable NAN toString test for now. 2016-12-07 00:22:50 +04:00
alexander-gorshenev 74df14d458 Fixed golden value for tostring3 test. (#123) 2016-12-06 19:25:31 +03:00
Konstantin Anisimov b71ee37669 TEST: array_list1 test enabled 2016-12-06 16:44:44 +03:00
Konstantin Anisimov 3eec3da511 TEST: tests for instanceof are modified to take in account null and nullable 2016-12-06 16:41:27 +03:00
Alexander Gorshenev c84fe7fd85 Collected or scattered means of running the compiler in a shell script.
So one can now

$ ./gradlew dist

$ ./dist/bin/konanc backend.native/tests/runtime/basic/hello0.kt -o hello

$ ./hello

or one can

$ ./gradlew demo

and have a complete dist build,
with a test program compiled and executed automatically after that
2016-12-06 17:22:34 +04:00
Nikolay Igotti 527efa661b Boundary values and their toString() test. (#90) 2016-12-06 16:03:23 +03:00
Vasily Levchenko 8892986be3 TEST:objects and companion objects. 2016-12-06 13:53:07 +03:00
Nikolay Igotti 618bf4cb80 Hash map by @elizarov, more stdlib code (#112) 2016-12-06 13:31:43 +03:00
Svyatoslav Scherbina 737a132b5d Review feedback 2016-12-05 15:17:40 +07:00
Svyatoslav Scherbina 2531c34b64 backend: add two more tests for finally 2016-12-05 14:27:14 +07:00
Svyatoslav Scherbina 4a1b3f2824 backend: support break and continue from try with finally 2016-12-05 14:27:14 +07:00
Svyatoslav Scherbina 96b30f574f backend: add failing test for break 2016-12-05 12:55:23 +07:00
Konstantin Anisimov 9afdfc316b TEST: test includes labeled continue-break 2016-12-02 16:28:19 +03:00
Konstantin Anisimov 03e94c6877 TEST: tests for "break" and "continue" added 2016-12-02 16:28:19 +03:00
Nikolay Igotti 83dcb0fc3a Fix array init and add listOf(). (#109) 2016-12-02 13:18:57 +03:00
Svyatoslav Scherbina aecbe0e5f6 backend/tests: do not check output in main_exception 2016-12-02 16:48:20 +07:00
Svyatoslav Scherbina f4014b0f29 runtime: add trivial stack traces to exceptions 2016-12-02 16:48:20 +07:00
Svyatoslav Scherbina b7b99d5684 backend/tests: allow tests to be marked as disabled
disabled tests can be run manually
2016-12-02 16:47:40 +07:00
Svyatoslav Scherbina e65b22569c backend/tests: add disabled test 'array_to_any' 2016-12-02 16:47:40 +07:00
Alexander Gorshenev 80c50c24e6 Renamed Kotlin_start to Konan_start. 2016-12-01 19:20:12 +04:00
Alexander Gorshenev 2c89fee837 Simplified launcher to utilize some ready made functionality. 2016-12-01 19:20:12 +04:00
Alexander Gorshenev 62be62e5d6 Added a test for exception handling in 'start'. 2016-12-01 19:20:12 +04:00
Alexander Gorshenev 22d748001d Added "start" function between the C launcher and Kotlin "main" 2016-12-01 19:20:12 +04:00
Alexander Gorshenev 3f480eb846 Transfer C argv to Kotlin's args. 2016-12-01 19:20:12 +04:00
SvyatoslavScherbina e38ac775ad Calling Kotlin from C++ runtime (#107)
* backend: support exporting Kotlin functions for C++ runtime

* runtime: implement several functions in Kotlin

* Throw{NullPointer,ArrayIndexOutOfBounds,ClassCast}Exception

* runtime: add literal declared in Kotlin as empty string

Also
* add corresponding test
* use empty string literal in strdedup2
  (however keep it disabled)

* fixup! runtime: add literal declared in Kotlin as empty string

* Review feedback: add more TheEmptyString() usages

Also improve string index checks in runtime
2016-12-01 16:10:03 +03:00
Nikolay Igotti f9167ea91e Attempt of listOf() support. (#92) 2016-12-01 16:09:26 +03:00
Nikolay Igotti 85aca55ee5 Add hashCode() for primitives. (#104) 2016-12-01 16:07:06 +03:00