Commit Graph

2599 Commits

Author SHA1 Message Date
Ilya Matveev 295ab0a679 [kotlin compiler][update] 1.1-20170724.005554-711 2017-07-24 15:54:16 +07:00
Ilya Matveev 0ddc002b8d backend: Use IrComposite instead of IrBlock in headers of 'for' loops 2017-07-20 10:35:40 +07:00
Daniel c4acdf1b25 Fix humanReadable formatting of bytes.
Previously, Long.humanReadable would display byte unit suffixes as `kB`, `MB`, etc., even though the calculations on byte counts were using base 2 for calculations.

I've revised this to display sizes in the format of `kiB` or `MiB`, for kebibyte, and mebibyte - the base 2 unit equivalents of kilobyte and megabyte respectively.
2017-07-19 10:33:59 +07:00
Ilya Matveev d6e0f67d4e tests: Add test for nested 'for' loops 2017-07-18 17:05:58 +07:00
Ilya Matveev 6ea341be06 tests: Move 'for' loop lowering tests into 'controlflow' directory 2017-07-18 17:05:58 +07:00
Ilya Matveev 745fc711f8 backend: Add caching for unary and binary operation symbols 2017-07-18 17:05:58 +07:00
Ilya Matveev 01f0540fac backend: Don't cast step in 'for' loop lowering 2017-07-18 17:05:58 +07:00
Ilya Matveev 3184ae57c6 backend: Don't calculate last element in 'for' loop if the step is 1 2017-07-18 17:05:58 +07:00
Ilya Matveev a97a310987 tests: Add tests for empty ranges in 'for' loops 2017-07-18 17:05:58 +07:00
Ilya Matveev d474f207e3 backend: Don't create a Progression objects in 'for' loops
This patch optimizes the following pattern:

for (i in first..last step st) { ... }

In this case we need to create a Progression object and then call its
iterator() method causing at least 2 allocation per loop. This change
replaces such loops with the following constuction:

var inductionVar = first
checkProgressionStep(step)  // check if step > 0
last = getProgressionLastElement(first, last, step)
if (first <= last) {
    do {
        i = inductionVar
        inductionVar += step
        ...
    } while(i != last)
}
2017-07-18 17:05:58 +07:00
Nikolay Igotti 06e31939dd WebAssembly effort (#721) 2017-07-14 16:44:46 +03:00
Nikolay Igotti 64e106157f Custom malloc support (#742) 2017-07-14 16:21:42 +03:00
Nikolay Igotti 1565371cda Porting layer (#741) 2017-07-14 14:23:52 +03:00
Svyatoslav Scherbina 747922ce00 Add one more workaround for LLVM bug 33220 2017-07-14 09:16:28 +03:00
Nikolay Igotti dae273099a Centralized memory allocation (#736) 2017-07-13 14:10:26 +03:00
Ilya Matveev e8c1fbe1ff gradle-plugin: Move tests into default 'test' directory 2017-07-13 16:26:21 +07:00
Ilya Matveev f87ae58f7c gradle-plugin: Fix incremental build
The patch makes the plugin to set default input directories
(src/main/kotlin and src/main/c_interop) at task construction
rather than setting them during compiler command line building.
It allows gradle to perform up-to-date checks correctly.
2017-07-13 16:26:21 +07:00
Ilya Matveev e8b1fc3dee gradle-plugin: Add test infrastructure 2017-07-13 16:26:21 +07:00
Alexander Gorshenev 55c4966203 Moved clang flags out of the root build.gardle.
Collected clang args in ClangArgs.kt
Switched dependencies/build.gradle to KonanTarget.
Introduced KonanProperties to take care of target specific properties.
2017-07-12 18:31:09 +03:00
Vasily Levchenko 1d532729a8 [linker] more enhancments (idea inspections) 2017-07-12 06:46:35 -07:00
vvlevchenko 96d5341852 [backend][properties] try suffixied property first and common then (#735)
* [backend][properties]  try suffixied property first and common then

This is temporal version and should be replaced with some unified version shared between interior tool and kaitlin compiler.
2017-07-12 06:43:45 -07:00
Alexander Gorshenev cd9d0ab768 Warn on duplicate library inclusion. 2017-07-12 14:45:29 +03:00
Vasily Levchenko 99316263d5 [samples][csvparser] exclude zopen function on macos
for some resons with -O0 build fails with absence of definition zopen function on macos
nming /usr/lib shows that there're no libraries defining this symbol, drfined by the way
in /usr/include/stdio.h
2017-07-10 07:25:17 -07:00
Vasily Levchenko addb6e08d8 [link][debug] when build debug build, it's better to use -O0 opt flags 2017-07-10 07:25:17 -07:00
Vasily Levchenko 27517b0db1 [codegen][debug] make runtime debug information friendly to generated one.
- inroduced function generation context containing mostly functionality local to function generation
- initial debug location is linked with basic block.
- then on each expression location is tuned.
- removed manual placement of debug location dictations over the place.

- refactoring removed unused declarations
2017-07-10 07:25:17 -07:00
Vasily Levchenko 2a64d2bec5 [kotlin compiler][update] 1.1-20170708.201339-666 2017-07-10 00:17:27 -07:00
Ilya Matveev 224dd0f0fc stdlib: Add util methods for time measurements 2017-07-10 11:32:00 +07:00
Alexander Gorshenev 5b25613e23 Separated Zipped and Unzipped libraries.
Picking up files right from the zip filesystem, if possible.
2017-07-06 12:36:35 +03:00
Vasily Levchenko 56c1f2b07c [codegen][clean up] warnings, inspections and absolete comments
- useless_is_checked
- unreachable_code
- a lot of unneeded string templates
- removed extra curly backets in string templates.
2017-07-05 06:42:37 -07:00
Alexander Gorshenev 33993236de Moved some linkerOpts from build.sh and build.gradle to .def,
where it does not involve any complex intelligence.
2017-07-04 17:58:30 +03:00
Alexander Gorshenev 5effdcb1d2 Pass linkerOpts from .def to klib manifest. 2017-07-04 17:58:30 +03:00
Alexander Gorshenev e2516f42e6 Moved KonanLibrary to use KonanTarget. 2017-07-04 17:58:30 +03:00
Alexander Gorshenev edde21827c A little bit more of utils abstracting us from java api. 2017-07-04 17:58:30 +03:00
Konstantin Anisimov 0582d8f1bd Build function -> file map
Serialize/deserialize file name
Define FileEntryImpl
Provide IrReturnableBlock with information about source file
Move file iteration in NoJavaUtil
Insert future description comments
Move debug info (source file name) from IrFunction to IrDeclaration
2017-07-03 19:54:14 +07:00
Vasily Levchenko db4388a343 [kotlin compiler][update] 1.1-20170701.191134-644 2017-07-03 04:09:14 -07:00
Ilya Matveev 90331bfad5 gradle-plugin: Use konanVersion as a default compiler version 2017-06-28 17:49:22 +07:00
Ilya Matveev 6f35106337 dependencies: Add "airplane mode"
The patch adds airplaneMode parameter in konan.properties.
If airplaneMode = true the dependency downloader will throw
an exception instead of downloading a missing dependency.
2017-06-28 10:37:49 +07:00
Vasily Levchenko 974426d70d [codegen][debug] opt build fix 2017-06-27 05:20:40 -07:00
Nikolay Igotti 399f4bd0ff Fix memleak with exceptions (#713) 2017-06-27 15:08:42 +03:00
Nikolay Igotti 96d9f734c0 Switch Kotlin version to 1.1.3, remove obsolete Gradle syntax (#707) 2017-06-27 11:18:13 +03:00
Alexander Gorshenev e257445a3b Konan Library reshuffle.
Distributed classes into several files.
Eliminated Base64 encoding of protobufs, it was a kt.bc library leftover.
2017-06-26 19:46:51 +03:00
Ilya Matveev 07ba122d96 tests: Fix dependency downloading tests 2017-06-26 16:44:42 +07:00
Ilya Matveev a52f80c4e8 dependencies: Release file lock if an exception is thrown 2017-06-26 16:44:42 +07:00
Ilya Matveev b8ead53487 build: Don't run cross_dist in gradle-plugin build 2017-06-26 16:44:12 +07:00
Ilya Matveev a1e87d93ca samples: Add build step for tensorflow downloading 2017-06-26 16:44:12 +07:00
Ilya Matveev 29ee96cc19 samples: Correct GTK sample for Linux build 2017-06-26 16:44:12 +07:00
Vasily Levchenko 1891e9dc5b [kotlin compiler][update] 1.1-20170623.231409-619 2017-06-26 02:12:28 -07:00
AJ Alt 258be08a40 Fix typo in LIBRARIES.md (#702) 2017-06-24 21:19:43 +03:00
Roman Shevchenko 73ce4348f2 corrects samples/tetris/sdl.def link (#696) 2017-06-23 14:40:52 +03:00
Aleksey Kladov f40e4898f0 Fix plugin version in Gradle guide (#695) 2017-06-23 14:40:12 +03:00