Commit Graph

282 Commits

Author SHA1 Message Date
Igor Chevdar a41552b3c8 Rewrote callable reference lowering
For each callable reference a class inherited from KFunctionImpl is built.
2017-05-18 11:56:32 +03:00
Alexander Gorshenev 3b5ce031f8 Initial checkin of klib support.
The libraries exist in two incarnations:
    packed foo.klib and unpacked foo/ .
The compiler when given '-library foo' expects to find either
a foo.klib file and unpack it, or an already unpacked foo/ directory.

The stdlib is always unpacked in dist/klib .

The semantics of -o has changed slightly.
It now accepts '-o foo' and the compiler
either produces foo.kexe or foo.klib .
2017-05-18 04:13:35 +03:00
Igor Chevdar 81a0aa1861 Coroutines: added SequenceBuilder 2017-05-11 11:37:32 +03:00
Konstantin Anisimov 42b1414014 Code formatting 2017-05-10 18:31:02 +07:00
Konstantin Anisimov 715db233f9 Code formatting 2017-05-10 18:31:02 +07:00
Konstantin Anisimov ba1f3d502e Use annotation to distinct inline constructor 2017-05-10 18:31:02 +07:00
Ilya Matveev 74bd3256f0 runtime: Correct Float.MIN_VALUE 2017-05-03 16:59:59 +07:00
Ilya Matveev 0a06f6b4ca stdlib: Add more minOf/maxOf extensions 2017-05-03 16:59:59 +07:00
Ilya Matveev ce29c5fbb7 stdlib: Throw NoSuchElementException in range iterators 2017-05-02 22:09:36 +07:00
Igor Chevdar adc1faa6c5 Moved NativePtr from interop to konan.internal 2017-04-28 13:45:46 +03:00
Igor Chevdar 0750626c29 Inherited coroutines from SuspendFunction 2017-04-28 13:45:46 +03:00
Igor Chevdar bd6a091088 Coroutines lowering 2017-04-28 13:45:46 +03:00
Igor Chevdar 366e28775f Added @FixmeInline and commented some inline functions 2017-04-28 13:45:46 +03:00
Igor Chevdar 2b92b1d880 Added coroutines stdlib classes 2017-04-28 13:45:46 +03:00
Alexander Gorshenev f77a4b9090 Represent the presence of a backing field with just a protobuf
extension bit, instead of a more complex annotation scheme.  The
scheme was initially introduced when Konan still used JS serializer
extension, and we only could apply an additional annotation.
2017-04-27 22:55:52 +03:00
Ilya Matveev 29ce88a6f0 stdlib: Minor refactorings for strings
Remove unused include <errno.h> in KString.cpp.
Rename variables in StringBuilder.reverse().
Use const char* instead of char* in checkParsingErrors.
2017-04-26 17:30:29 +07:00
Ilya Matveev 9aa0777efb stdlib: Use iswspace_Konan in parseDouble/parseFloat 2017-04-26 17:30:29 +07:00
Ilya Matveev 4a16087a21 stdlib: Add indentation extensions for strings 2017-04-26 17:30:29 +07:00
Ilya Matveev a8dad22332 stdlib: Always find an empty substring
This patch fixes the following tests:
    external_stdlib_text_StringTest/replace.kt
    external_stdlib_text_StringTest/replaceDelimited.kt
    external_stdlib_text_StringTest/replaceFirst.kt
2017-04-26 17:30:29 +07:00
Ilya Matveev a4f3691a7b stdlib: Rewrite deep content operations for Arrays 2017-04-26 17:30:29 +07:00
Ilya Matveev f958573d05 stdlib: StringBuilder: Use Apache Harmony reverse() implementation
This patch uses a Apache Harmony's approach to reverse surrogate
pairs.
2017-04-26 17:30:29 +07:00
Ilya Matveev 7f9e65ef17 stdlib: Remove unused C++ methods for string parsing
Now toByte, toShort, toInt and toLong methods use their "...OrNull"
analogs implemented in Kotlin insetad of "parse..." functions
implemented in C++. This patch removes unused C++ methods.
2017-04-26 17:30:29 +07:00
Ilya Matveev 0553b119b2 stdlib: Fix number parsing 2017-04-26 17:30:29 +07:00
Nikolay Igotti be646930cc Prevent init order issues in maps (#517) 2017-04-21 16:02:11 +03:00
Ilya Matveev 64757267ef stdlib: StringBuilder: Use copyOfRange for array copying 2017-04-21 16:23:27 +07:00
Ilya Matveev e9d6013efd stdlib: Refactor toString with radix for Int and Long 2017-04-21 16:23:27 +07:00
Ilya Matveev 0cb7e5ba72 stdlib: StringBuilder: insert "null" if the argument is null
This patch changes the behaviour of StringBuilder.append and
StringBuilder.insert methods if the argument is null in accordance
with Kotlin JVM.
2017-04-21 16:23:27 +07:00
Ilya Matveev e8479d1148 stdlib: Ignore case in String.toBoolean 2017-04-21 16:23:27 +07:00
Ilya Matveev 89270c8108 stdlib: Implement toString with radix in accordance with Kotlin JVM
Old Int.toString(radix: Int) and Long.toString(radix: Long)
implementations didn't add sign for negative values. E.g.
-1.toString(16) == "0xff..ff" while JVM returns "-1" in such case.
This patch fixes this behaviour and allow us to use any radix between
2 and 36 as JVM does.
2017-04-21 16:23:27 +07:00
Ilya Matveev 95034225a8 stdlib: Throw NoSuchElementException from array iterators 2017-04-21 16:23:27 +07:00
Ilya Matveev 9607033c11 stdlib: Add insert methods in StringBuilder 2017-04-21 16:23:27 +07:00
Ilya Matveev f2fd80e9e3 stdlib: Add CharSequence extensions 2017-04-21 16:23:27 +07:00
Ilya Matveev f9c6b6e6e4 stdlib: Add StringBuilder.reverse method 2017-04-21 16:23:27 +07:00
Nikolay Igotti 5517ed7296 GTK sample (#515)
* GTK sample

* Add full UTF8 recoding ability to interop
2017-04-20 23:09:36 +03:00
Ilya Matveev 46229636fc stdlib: Add plus/minus extensions for Set 2017-04-19 18:27:32 +07:00
Ilya Matveev b9b8c6e192 stdlib: Suppress/fix warnings in stdlib
This patch fixes redundant safe calls/casts/type projections
and suppresses some casts which are actually safe but reported
as unsafe.
2017-04-19 18:27:32 +07:00
Ilya Matveev fcece669ec stdlib: Add AbstractMutableList implementation
The implementation is based on the AbstractMutableList class
of JS backend.
2017-04-19 18:27:32 +07:00
Ilya Matveev 9da229896b stdlib: Fix variance for map and collection extensions 2017-04-19 18:27:32 +07:00
Ilya Matveev 859618b546 stdlib: Add some Map extensions
This patch copies some Map extensions from Kotlin JVM stdlib:
 - none
 - onEach
 - getValue
 - min/maxBy and min/maxWith
 - asIterable and asSequence
2017-04-19 18:27:32 +07:00
Ilya Matveev fd7f379ff5 stdlib: Add binary search for lists 2017-04-19 18:27:32 +07:00
Ilya Matveev 1c081d351b stdlib: Add Grouping.eachCount extension 2017-04-19 18:27:32 +07:00
Alexander Gorshenev d79875ac7c A couple of functions in stdlib are marked with @InlineExposed. 2017-04-18 13:54:37 +03:00
Ilya Matveev 7bf9669f57 stdlib: Add clear and remove methods in AbstractMutableCollection 2017-04-18 12:48:07 +07:00
Ilya Matveev 16f3dcde8a stdlib: Uncomment linkedMapOf and linkedSetOf methods 2017-04-18 12:48:07 +07:00
Ilya Matveev 325210ae52 stdlib: Remove TODO comment in ArrayUtil.kt
We don't need to handle cases when a count of objects provided
by the iterator isn't equal to the size of the collection.
2017-04-18 12:48:07 +07:00
Ilya Matveev 321386d95e stdlib: Improve ArrayList.removeAll implementation.
This patch replaces ArrayList.removeAll implementation with a
faster one. It also adds the AbstractMutableCollection class
containing default implementations for addAll, removeAll and
retainAll methods and fixes tests to check if removeAll removes
all occurrences found or not.
2017-04-18 12:48:07 +07:00
Ilya Matveev 69a49f987c stdlib: Add first() extension for CharSequence 2017-04-18 12:48:07 +07:00
Ilya Matveev 7dd27dd16d stdlib: Provide Collection.toArray() implementation
It also modifies the test for this method to make it to not rely on
Kotlin JVM implementation.
2017-04-18 12:48:07 +07:00
Ilya Matveev 51191a5911 stdlib: Remove commented copyOf in CharArray 2017-04-18 12:48:07 +07:00
Ilya Matveev ad25d3ca7c stdlib: Return a RandomAccess object from Array.toList() and emptyList() 2017-04-18 12:48:07 +07:00