Commit Graph

1409 Commits

Author SHA1 Message Date
Alexander Gorshenev afaa50ce34 Introduced -target and -list_targets flags.
Use it like

    $ konanc hello.kt -target iphone
2017-01-23 00:17:39 +04:00
Nikolay Igotti d31b44135a Temporary disable inlining. 2017-01-20 19:03:54 +03:00
Svyatoslav Scherbina 1f7738e052 backend: fix minor bug in evaluateWhen
Also add the corresponding test 'when9'.
2017-01-20 20:02:50 +07:00
Svyatoslav Scherbina 0958d32605 backend: improve typealias support:
* handle TypeAliasConstructorDescriptor in codegen
* ignore ignore typealias declaration in codegen

Also add test 'typealias1'.
2017-01-20 20:02:50 +07:00
Svyatoslav Scherbina 65444ec690 backend: improve type operators support:
* add initial support for casts with generics;
* optimize out the casts to subtypes

Also add tests unchecked_cast{1,2}, the latter is disabled.
2017-01-20 20:02:50 +07:00
ilmat192 9bf0380048 Merge pull request #185 from JetBrains/blackbox-testing
Blackbox testing
2017-01-20 14:28:09 +03:00
Ilya Matveev 48122c8a03 backend/tests: Add test result reporting to run_external task.
+ regenerate external tests.
2017-01-20 14:24:35 +03:00
Ilya Matveev d18219c383 backend/tests: Fixes in regenerate_external_tests task 2017-01-20 14:24:35 +03:00
Ilya Matveev 6efe2b6d31 backend/tests: Add compilation logging 2017-01-20 14:24:35 +03:00
Ilya Matveev 8ec33334a4 backend/tests: Enable some tests in the binaryOp group 2017-01-20 14:24:26 +03:00
Ilya Matveev 2ef49da2fe backend/tests: Ignore all tests with IGNORE_BACKEND: JS directive 2017-01-20 14:04:04 +03:00
Ilya Matveev 89a74c0591 backend/tests: Use IGNORE_BACKEND directive to exclude java-dependent tests 2017-01-20 14:04:04 +03:00
Ilya Matveev d24f966600 backend/tests: Regenerated external test tasks 2017-01-20 14:04:04 +03:00
Ilya Matveev bfdda21da1 backend/tests: Added task generation for test groups instead of tests 2017-01-20 14:04:04 +03:00
Ilya Matveev b6587252c0 backend/tests: Added test group running 2017-01-20 14:04:04 +03:00
Ilya Matveev ee58c7ee5f backend/tests: Added autogenerated tasks for external tests 2017-01-20 14:04:04 +03:00
Ilya Matveev fd44baf2c0 backend/tests: Infrastructure for external test running 2017-01-20 14:04:04 +03:00
Ilya Matveev 1b553ebfaf backend/tests: Add blackbox tests from Kotlin JVM
Added tests from testData/codegen/box directory. There are blackbox tests
in other directories and they are to be added.
2017-01-20 14:04:04 +03:00
Svyatoslav Scherbina d5988297b1 backend/tests: add objectExpression{1,2,3} 2017-01-20 17:53:38 +07:00
Svyatoslav Scherbina 26e1075893 backend: lower local classes 2017-01-20 17:53:38 +07:00
Svyatoslav Scherbina ead5f93a90 backend: rename Local{Functions => Declarations}Lowering 2017-01-20 17:53:38 +07:00
Svyatoslav Scherbina 28f1f5a180 backend: import LocalFunctionsLowering again 2017-01-20 17:53:38 +07:00
Svyatoslav Scherbina 40eea333ce backend: build ModuleIndex for codegen after lowering 2017-01-20 17:53:38 +07:00
Svyatoslav Scherbina 97b5c60455 backend: support IrField located directly at IrClass 2017-01-20 17:53:38 +07:00
Nikolay Igotti eb6ba1cfa5 Fix primitive type globals initialization. (#189) 2017-01-20 13:31:47 +03:00
Nikolay Igotti 1c878e4843 Improve object init order. (#187) 2017-01-20 13:31:01 +03:00
Vasily Levchenko 0e05d3b30a compiler: 1.1-20170119.231846-374 2017-01-20 12:06:53 +03:00
KonstantinAnisimov e604efb254 Merge pull request #176 from JetBrains/inline
Inline
2017-01-20 10:26:52 +07:00
KonstantinAnisimov 1a83014eba Merge branch 'master' into inline 2017-01-20 10:26:34 +07:00
Konstantin Anisimov 67013f8a60 Two passes inline scheme implemented 2017-01-18 17:22:14 +07:00
Konstantin Anisimov 551218c133 TESTS: new tests added 2017-01-18 17:21:04 +07:00
Svyatoslav Scherbina 8474168960 backend/tests: add objectInitialization1 2017-01-18 12:33:43 +07:00
Svyatoslav Scherbina 648e728d90 backend, runtime: place vtable at the end of TypeInfo 2017-01-17 13:26:32 +07:00
Nikolay Igotti 913916e6dd Implement virtual invoke via vtables. (#181)
Small refactoring to share vtable computation code.
2017-01-16 15:25:36 +03:00
Vasily Levchenko 56093ecbe0 compiler: 1.1-20170116.100209-359 2017-01-16 14:19:07 +03:00
Nikolay Igotti 90577d440a Improve object arrays support. (#182)
Also fix the way how symbol names are being generated. Before arrays2.kt was not linking.
2017-01-16 12:22:27 +03:00
Svyatoslav Scherbina 3b4c25988e backend/tests: add defaults{4,5,6} 2017-01-16 10:57:40 +07:00
Vasily Levchenko 81d77c39f4 IR: default parameter extension support
for code
```
fun Int.foo(a:Int, b:Int = a + 1, c:Int = a + b) = a + b +c

fun main(arg:Array<String>) {
  42.foo(0)
}
```
we generate IR representation corresponding to the following code
```
fun Int.foo(a:Int, b:Int, c:Int) = a + b +c

fun foo_default(a:Int, b:Int, c:Int, __mask__:Int, __receiver__:Int):Int {
    var tmpb:Int = 0
    if ((__mask__ and (1 shl 1)) != 0)
        tmpb = a + 1
    else
        tmpb = b
    var tmpc:Int = 0
    if ((__mask__ and (1 shl 2)) != 0)
        tmpc = a + tmpb
    else
        tmpc = c
    return __receiver__.foo(a, tmpb, tmpc)
}

fun main(arg:Array<String>) {
  foo_default(0, 0, 0, 6 /* (1 shl 1) | (1 shl 2)*/, 42)
}
```

NOTE: if call provides all arguents we don't emit call of _default function.
2017-01-13 13:42:02 +03:00
Vasily Levchenko a8caf7c7d8 TEST: test for default parameters
(cherry picked from commit 7999d68d812aedd5863f04b7fd2171e284b8f332)
2017-01-13 13:42:02 +03:00
Svyatoslav Scherbina b994fabadd backend: update kotlin-compiler and remove code contributed to Kotlin
Update kotlin-compiler to 1.1-20170112.203631-353

Also remove workarounds for fixed bugs.
2017-01-13 16:13:49 +07:00
Nikolay Igotti 239a573142 GC interface. (#178) 2017-01-13 12:03:38 +03:00
Konstantin Anisimov faf64ec330 Refactoring 2017-01-13 11:37:37 +07:00
Nikolay Igotti b1101ba43e Cycle collector. (#175) 2017-01-11 17:38:03 +03:00
Svyatoslav Scherbina 8b83cb2adf backend: enable some tests 2017-01-11 19:32:25 +07:00
Svyatoslav Scherbina 26dd735240 runtime: enable some stdlib code 2017-01-11 19:32:25 +07:00
Svyatoslav Scherbina 7464b2cb09 backend: improve support for references to vararg functions
(doesn't happen for now)
2017-01-11 19:32:25 +07:00
Svyatoslav Scherbina f08bd7aa6f backend: erase types in callable reference targets
(required because function types are not specialized yet)
2017-01-11 19:32:25 +07:00
Svyatoslav Scherbina 0e6d8c3a7c backend: support boxing when generics involved 2017-01-11 19:32:25 +07:00
Svyatoslav Scherbina 83bdae5d02 backend: use "erased" types for LLVM function signatures 2017-01-11 19:32:25 +07:00
Svyatoslav Scherbina 92b462255c runtime: implement remaining boxing 2017-01-11 19:32:25 +07:00