Konstantin Anisimov
d966cae14a
Lambda without parameters is inlined
2017-02-03 18:07:50 +07:00
Konstantin Anisimov
279684f6aa
Intermediate results
2017-02-03 18:07:50 +07:00
Konstantin Anisimov
5ce0e2c74f
Inlining moved in the beginning of lowering passes
2017-02-03 18:07:05 +07:00
Konstantin Anisimov
70b35f9aa7
TESTS: new tests added
2017-02-03 18:05:56 +07:00
Konstantin Anisimov
8dece0f817
Evaluation of parameter expression implemented
2017-02-03 18:05:40 +07:00
Konstantin Anisimov
97411bca6e
TESTS: new test added
2017-02-03 18:05:40 +07:00
Konstantin Anisimov
02e604cc71
TESTS: new tests added
2017-02-03 18:05:40 +07:00
Konstantin Anisimov
9e3fe3a41c
TESTS: new inline tests added
2017-02-03 18:05:38 +07:00
Nikolay Igotti
ae49bd8432
Improve object arrays support. ( #182 )
...
Also fix the way how symbol names are being generated. Before arrays2.kt was not linking.
2017-02-03 18:04:36 +07:00
Vasily Levchenko
26ee99185c
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-02-03 18:03:14 +07:00
Nikolay Igotti
e3662bfa1e
Cycle collector. ( #175 )
2017-02-03 18:00:58 +07:00
Svyatoslav Scherbina
f6cab824ab
backend/tests: enable boxing15
2017-02-02 19:22:22 +07:00
Svyatoslav Scherbina
15107f4cdc
backend: improve value types support:
...
Introduce value type definition.
Use the same type checking strategy in codegen and autoboxing.
Optimize the latter by that.
2017-02-02 19:22:22 +07:00
Ilya Matveev
31a0423225
build: Do not build runtime and stdlib for dist_compiler task
2017-02-02 13:21:11 +03:00
Ilya Matveev
b4ee0e86d2
backend: Fix uninitialized property access in LocalDeclarationsLowering
2017-02-02 10:22:31 +03:00
Ilya Matveev
f960c70c68
backend: Copy AbstractClosureRecorder from Kotlin JVM
...
Copied from org.jetbrains.kotlin.backend.common.
AbstractClosureAnnotator
2017-02-02 10:22:31 +03:00
Vasily Levchenko
e7159d364f
TEST: with no parameters to vararg
2017-02-02 07:49:35 +03:00
Vasily Levchenko
2479593f44
IR: using function descriptor valueParameters field instead of visiting children of IrCall
...
code
```
fun foo(vararg x: Any?) {}
fun bar() = foo()
```
produce following IR:
```
FUN public fun bar(): kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='bar(): Unit'
CALL 'foo(vararg Any?): Unit' type=kotlin.Unit origin=null
x: BLOCK type=kotlin.Array<T> origin=null
CALL 'constructor Array(Int)' type=kotlin.Array<T> origin=null
<T>: Any?
size: CONST Int type=kotlin.Int value='0'
```
2017-02-02 07:49:35 +03:00
Nikolay Igotti
bb43b6ab09
Fix Any.toString().
2017-02-01 18:17:50 +03:00
Nikolay Igotti
6192dc254a
Fix way how function table is built. Allows to extend Exception class. ( #210 )
2017-02-01 15:43:28 +03:00
Vasily Levchenko
06c703f840
IR: lowering for vararg expressions including spread element.
2017-01-31 21:10:50 +03:00
Vasily Levchenko
4905d2a056
STDLIB: internal Array::<init>(Int) obtains konan.internal.ExportForCompiler annotation
2017-01-31 21:10:50 +03:00
Vasily Levchenko
458aa058c0
RUNTIME: grant access to symvols marked with konan.internal.ExportForCompiler
2017-01-31 21:10:50 +03:00
Vasily Levchenko
47a5e13ff3
STDLIB: konan.internal.ExportForCompiler added annotation to mark symbol exported for generation with compiler
2017-01-31 21:10:50 +03:00
Igor Chevdar
4911f78200
Inner classes ( #207 )
...
* Inner classes lowering
* cmd line fix
* tests
* * reverted adding parameter to inner classes constructors
* variables are identified by their descriptors
* review fixes
2017-01-31 15:36:21 +05:00
Vasily Levchenko
eeea4fc101
compiler: 1.1-20170131.025158-393
2017-01-31 11:58:37 +03:00
Nikolay Igotti
f0950a92c3
Various small fixes. ( #208 )
2017-01-30 18:36:12 +03:00
Ilya Matveev
162676c878
buildSrc: fix goldValue initialisation in test suite
2017-01-30 14:17:04 +03:00
Nikolay Igotti
b06f5d0d5b
More preparations for escape analysis. ( #201 )
2017-01-30 11:10:32 +03:00
Igor Chevdar
01cb9d4cac
Implementation of super methods calling ( #203 )
...
* implemented super call
* tests
* removed redundant code
2017-01-27 16:38:48 +05:00
Svyatoslav Scherbina
36c90ac47d
backend: improve default arguments lowering:
...
use the same `$default`-descriptor in declaration and call.
2017-01-27 17:27:04 +07:00
Svyatoslav Scherbina
6104648d5b
backend: simplify EnumClassLowering:
...
do not set correct member scope for synthesized classes.
2017-01-27 17:27:04 +07:00
Svyatoslav Scherbina
a72732b543
backend: simplify LocalDeclarationsLowering:
...
do not transform descriptors for moved declarations.
2017-01-27 17:27:04 +07:00
Svyatoslav Scherbina
a97b3935e2
backend: rework descriptor usage
...
* handle differently internal and exported declarations
* bind LLVM declarations to descriptor instances used as keys
* fix some related issues
2017-01-27 17:27:04 +07:00
Svyatoslav Scherbina
cf946a7676
backend/tests: update and disable 'defaults4'
2017-01-26 13:53:40 +07:00
Ilya Matveev
b7a78deafa
backend: Place *.bc.o files in a temporary directory for llvmLto()
2017-01-25 17:52:35 +03:00
Ilya Matveev
59e093c8e4
backend: Place *.bc.o files in a temporary directory for llvmLlc()
2017-01-25 17:52:35 +03:00
Vasily Levchenko
778574c428
STDLIB: arrayOf() public function
...
(cherry picked from commit 3240bec552420dfad73841ed6433b2b5cb29b5e6)
2017-01-25 17:45:23 +03:00
Ilya Matveev
b1dc142486
buildSrc: Add ParallelizableTask annotation to KonanTest class
2017-01-25 17:24:36 +03:00
Ilya Matveev
5da131d9f1
buildSrc: Add multifile support for internal tests
2017-01-25 17:24:36 +03:00
Ilya Matveev
7285c57cd8
backend/tests: Generate external test tasks in config stage
...
We generate tasks for external tests group during Gradle's configuration
phase instead of using separate task (regenerate_external_tests)
2017-01-25 17:24:36 +03:00
Ilya Matveev
f096e272b3
backend.native/tests: Add JSON output to run-external task
2017-01-25 17:24:36 +03:00
Ilya Matveev
6e0c2fface
backend.native/tests: Add clean task to remove test output directory
2017-01-25 17:24:36 +03:00
Ilya Matveev
c04233aebb
buildSrc: Save test results to JSON
2017-01-25 17:24:36 +03:00
Ilya Matveev
a4c4b1e7af
buildSrc: Use SourceSet to define test output directory.
2017-01-25 17:24:36 +03:00
Vasily Levchenko
99a962df42
TEST:EXTERNAL: run task added
2017-01-25 17:24:36 +03:00
Vasily Levchenko
6729d1d824
TEST: external generate run task for externals
2017-01-25 17:24:36 +03:00
Vasily Levchenko
7cbaa7d6ca
EXTERNAL:TEST: regenerated
2017-01-25 17:24:36 +03:00
Vasily Levchenko
a59de510cd
TEST: more fixes in template
2017-01-25 17:24:36 +03:00
Vasily Levchenko
b9b44ebeb4
test: fixed task daily declaration
2017-01-25 17:24:36 +03:00