Svyatoslav Scherbina
98a0e86646
Interop/Runtime: fix building on Linux
...
use correct libffi*.a variant
2016-10-11 10:57:29 +03:00
Svyatoslav Scherbina
373bf3bef9
Interop: improve by using callbacks in Indexer
2016-10-10 18:41:59 +03:00
Svyatoslav Scherbina
af09ce085c
Interop: implement callbacks using libffi
2016-10-10 18:41:59 +03:00
Vasily Levchenko
ce10b5fb15
fix run command
2016-10-10 17:25:24 +03:00
vvlevchenko
f80d0504cf
Merge pull request #1 from JetBrains/rr/translation-prototype
...
naive sum translation
2016-10-10 17:14:17 +03:00
Vasily Levchenko
4c32689e1f
unit test introduced:
...
User should create <test-name>-test.c file in the following manner:
> cat codegen/function/sum-test.c
extern void *resolve_symbol(const char*);
int
run_test() {
int (*sum)(int, int) = resolve_symbol("kfun:sum");
if (sum(2, 3) != 5) return 1;
return 0;
}
and add <test-name> to the TESTS variable in the Makefile
to run tests:
> make clean run
Note: failing tests should return no zero values.
2016-10-10 15:11:55 +03:00
Vasily Levchenko
dbdbc9a844
Base level translator: it could compile primitive functions with arithmetic operations:
...
note: operations are hardcoded e.g. operato plus resolved in corresponding instruction.
fun sum(a:Int, b:Int) = a + b
produces following code:
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.12.0"
define i32 @"kfun:sum"(i32, i32) {
entry:
%a = alloca i32
store i32 %0, i32* %a
%b = alloca i32
store i32 %1, i32* %b
%tmp1 = load i32, i32* %a
%tmp2 = load i32, i32* %b
%tmp0 = add i32 %tmp1, %tmp2
ret i32 %tmp0
}
Note: this code is optimizable with -mem2reg
> opt-mp-3.8 -mem2reg sum.BCkt -o - | llvm-dis-mp-3.8 -o -
; ModuleID = '<stdin>'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.12.0"
define i32 @"kfun:sum"(i32, i32) {
entry:
%tmp0 = add i32 %0, %1
ret i32 %tmp0
}
2016-10-10 15:11:55 +03:00
Svyatoslav Scherbina
436a950c65
InteropExample: use global kotlin_version
2016-10-10 11:10:58 +03:00
Vasily Levchenko
bbe86f25bc
hardcoded (temporary) path to extensions/common.xml, to fix fall on unresolved symbols
2016-10-07 17:17:53 +03:00
Nikolay Igotti
a95aa29075
Add libffi for iOS submodule.
2016-10-07 14:14:00 +03:00
Nikolay Igotti
a2250955b9
Add iOS scripts.
2016-10-07 14:08:01 +03:00
Vasily Levchenko
8c2a620c06
kotlin-ir: sync
2016-10-07 09:49:57 +03:00
Vasily Levchenko
75aaed1d07
kotlin-ir: sync
2016-10-05 20:52:25 +03:00
Nikolay Igotti
3a9d013c96
Typo.
2016-10-05 19:18:12 +03:00
Nikolay Igotti
488ca7170b
Try to fix empty Linux lib problem.
2016-10-05 19:14:59 +03:00
Vasily Levchenko
71da52456e
linux build fix: on linux we need to set LD_LIBRARY_PATH to launch jvm with native dependency to llvm
2016-10-05 16:19:54 +03:00
Vasily Levchenko
9deec08348
attempt to fix build of Interopt Example on ubuntu 14.04.
2016-10-05 11:48:55 +03:00
Vasily Levchenko
a24c2fec33
attempt fix build on Ubuntu 14.04.
2016-10-05 10:08:39 +03:00
Vasily Levchenko
a580af3a8c
StubGenerator: detecting default os for case when traget os isn't set
2016-10-05 09:47:24 +03:00
Svyatoslav Scherbina
6f354a06c4
Interop/StubGenerator: attempt to handle anonymous enums
2016-10-05 08:29:23 +03:00
Svyatoslav Scherbina
f94b48cbe0
Interop/Plugin: enable assertions when generating stubs
2016-10-05 08:29:11 +03:00
Svyatoslav Scherbina
38d0000242
backend.native: simplify build.gradle by making it more idiomatic
2016-10-05 08:28:47 +03:00
Vasily Levchenko
deec80499c
attempt to build linux build on team city.
...
it fails with message about missing noexecstack on load our library
2016-10-05 00:49:55 +03:00
Svyatoslav Scherbina
e464989b1b
backend.native: simplify build.gradle after improving Interop plugin
2016-10-04 16:32:15 +03:00
Svyatoslav Scherbina
33bfb2d063
Interop: improve support for multiple source sets in Gradle plugin
2016-10-04 16:25:18 +03:00
Svyatoslav Scherbina
df6b4388a0
backend.native: add only overridable methods to vtable and lookup table
2016-10-04 14:08:36 +03:00
Svyatoslav Scherbina
3324527984
backend.native, runtime: add vtable to TypeInfo
2016-10-04 14:08:36 +03:00
Svyatoslav Scherbina
473816ea81
backend.native: make all RTTI constant
2016-10-04 14:08:36 +03:00
Svyatoslav Scherbina
5ea3c9521e
backend.native: improve type mapping
...
including types of functions
2016-10-04 14:07:54 +03:00
Svyatoslav Scherbina
ba69e02ea6
backend.native: enable assertions
2016-10-04 14:26:06 +07:00
Nikolay Igotti
f92da32454
Add properties expansion.
2016-10-03 20:56:33 +03:00
Svyatoslav Scherbina
059f890a1e
backend.native: support inheritance in RTTI
...
also
* distribute the code among several files
* use descriptors instead of IR (where it is possible)
* add other minor improvements
2016-10-03 16:28:51 +07:00
Vasily Levchenko
fd2288c23f
makes idea users more happy: fix dependencies to let idea build project correctly
2016-10-03 11:39:57 +03:00
Vasily Levchenko
43f10c9e8f
g/c: removed unwanted patches
2016-10-03 09:58:00 +03:00
Vasily Levchenko
390e24352a
no need debug print anymore.
...
Revert "to-revert: I need tp check what include flags values used by indexer build"
This reverts commit a3db6ea086 .
2016-10-02 12:46:17 +03:00
Vasily Levchenko
a3db6ea086
to-revert: I need tp check what include flags values used by indexer build
2016-10-02 12:16:35 +03:00
Vasily Levchenko
d0590c778c
replace ca-storage.sh with binary ca-storage
2016-10-01 14:56:03 +03:00
Vasily Levchenko
6906cc8b18
script to install CA storage for later run ant -f update_dependencies.xml
2016-10-01 14:41:34 +03:00
Nikolay Igotti
7b969532c7
Add jfrog binary.
2016-09-30 16:49:29 +03:00
Vasily Levchenko
6bb976b89c
sync: kotlin-ir
2016-09-30 13:53:53 +03:00
Svyatoslav Scherbina
6d70bc4625
backend.native: add remaining info to RTTI
...
inheritance is not supported yet
2016-09-30 17:01:11 +07:00
Vasily Levchenko
6ffde7e12d
kotlin-ir: submodule switched to https
2016-09-30 10:03:20 +03:00
Vasily Levchenko
d61bb4a6e5
add dependency to generated classes
2016-09-29 17:55:43 +03:00
Vasily Levchenko
b1e89a4d41
backend.native and generated dependencies resolving
2016-09-29 17:49:14 +03:00
Vasily Levchenko
c5fe74cf3a
NativeInteropPlugin: scan in every declared sourceSet in project for def file
2016-09-29 17:42:35 +03:00
Vasily Levchenko
0de37420f0
makes gradle build friendly to idea
2016-09-29 14:57:12 +03:00
Vasily Levchenko
20bfd25a99
g/c: compiler/build.gradle deleted
2016-09-29 14:51:29 +03:00
Svyatoslav Scherbina
277835fccb
backend.native: add some dirty code to emit bitcode with RTTI for fields
2016-09-29 17:41:54 +07:00
Svyatoslav Scherbina
78a912f637
backend.native: tie compiler to runtime
...
to make compiler able to refer entities declared in runtime
2016-09-29 17:41:54 +07:00
Svyatoslav Scherbina
80ed5a2461
Interop: add minor improvements
2016-09-29 17:41:54 +07:00