Svyatoslav Scherbina
d531df1643
Native: add KotlinThrowable.asError() to the generated Obj-C framework
...
This method can be useful when overriding a throwing Kotlin method in
Swift or Obj-C. In this case, a user can call asError to wrap Kotlin exception
to (NS)Error and then throw it to Kotlin, which will unwrap it back.
^KT-45127 Fixed
2021-04-15 08:21:30 +00:00
Pavel Punegov
6aa7628808
Fixes to Kotlin/Native test directives infrastructure.
...
* parse files and modules separately
* fix default and support modules usage
* add another way to ignore backend (new directive)
* add new test to exclude list
2021-04-15 07:59:22 +00:00
Dmitriy Dolovov
5e392a511f
[K/N][IR] Generate missing return when using Nothing-returning safe call as lambda result or function expression body
...
^KT-42832
2021-04-14 13:20:41 +03:00
Vasily Levchenko
62ffc0033d
[kotlin-native][test][dynamic test] tests provoking generating empty structs kt-42796
2021-04-13 12:10:58 +00:00
Vasily Levchenko
c68ac4f6b6
[interop][c][reverse] avoid generating empty structures for leaf packages without exportable declations
...
- fixes KT-42796
2021-04-13 12:10:57 +00:00
Sergey Bogolepov
9b1498abad
Use runtime bitcode to get size of primitive types
...
As an alternative to explicitly setting type size in konan.properties or
backend code we can "ask" LLVM about it.
Unfortunately, there is no Clang/LLVM API for it,
so we use a trivial workaround:
Create dumb function in runtime code, and then extract info about
return type size using LLVM.
2021-04-08 16:51:47 +03:00
Sergey Bogolepov
15dcb36f47
Use TargetTriple in backend to simplify code.
2021-04-08 16:51:44 +03:00
Pavel Punegov
afdecef112
Use minOrNull instead of deprecated min in the interop_objc_test
2021-04-08 11:57:34 +03:00
Elena Lepilkina
512010046f
[K/N] Replaced sumBy with sumOf
2021-04-08 11:57:33 +03:00
Dmitriy Dolovov
8d4d9a1f0b
[K/N][IR] Re-enable string_builder0 and utf8 tests in 2-stage mode
...
^KT-33175
2021-04-08 09:40:16 +03:00
Dmitriy Dolovov
2e96a6c63c
[K/N][IR] Re-enable Harmony regex tests
...
^KT-33175
2021-04-08 09:40:12 +03:00
Sergey Bogolepov
7272e5dcad
Unify checks for iOS device in backend.native tests
2021-04-08 09:18:30 +03:00
Sergey Bogolepov
316d62a72f
Perform codesign in tests for all simulators
2021-04-08 09:18:29 +03:00
Sergey Bogolepov
7b06249e7f
Fix clang usage in backend.native:tests
...
For Apple Silicon targets we need to call Clang
1. From toolchain because the one from our distro is too old.
2. With appropriate flags for setting the sysroot.
2021-04-08 09:18:28 +03:00
Abduqodiri Qurbonzoda
983985bc68
[K/N] Migrate compiler, interop and others to new case conversion api
2021-04-08 03:22:05 +03:00
Ilya Gorbunov
7cd306950a
Deprecate Char-to-Number conversions in stdlib (Native)
...
- Synchronize code of Ranges, Progressions, ProgressionIterators
- Suppress deprecations in regex implementation code
KT-23451
2021-04-07 18:30:21 +03:00
Ilya Gorbunov
833955e56d
Migrate deprecations in Native compiler
...
Replacing deprecated Char.toInt() with Char.code and
Number.toChar() with Number.toInt().toChar(), where Number is not Int.
KT-23451
2021-04-07 18:30:21 +03:00
Vasily Levchenko
d870876822
[kotlin/native][test] test for KT-33055
2021-04-07 15:04:57 +00:00
Vasily Levchenko
ef712f8f97
[kotlin/native][test] enabled stack_trace_inline back
2021-04-07 15:04:56 +00:00
Vasily Levchenko
a11b07f6c3
[codegeneration][debug info] generates marker of inlined function body on call site
...
- makes debuger breakpoint resolution more accurate
- restore expected behavior stack_trace_inline test
- fixes kt-33055
2021-04-07 15:04:56 +00:00
Sergey Bogolepov
9e6cf11026
Drop LLVM profiling frags from Clang invocation
...
It is not needed in most cases, but may affect profile
when running compiler with -Xprofile-phases.
2021-04-07 12:48:20 +00:00
Abduqodiri Qurbonzoda
b18cd24b81
[K/N] Advance deprecation level of FP to lesser than Int types to ERROR #KT-30360
2021-04-07 15:43:06 +03:00
Abduqodiri Qurbonzoda
7a6cddf6fe
[K/N] Advance String(CharArray) deprecation level to ERROR
2021-04-07 00:23:32 +03:00
Svyatoslav Scherbina
df77cd303f
Don't use exitProcess to indicate a failure in Native library resolver
...
If Native compiler performs exitProcess, it crashes Gradle daemon that
runs the compiler.
2021-04-06 13:18:07 +00:00
Svyatoslav Scherbina
a4b9e2502c
Native: don't use frame pointer in leaf functions on ARM64 targets
...
Clang 8 and Clang 11 both have this optimization, but it was moved
from LLVM to Clang:
https://github.com/llvm/llvm-project/compare/c5b890e922432bd80a5e3c6d82994ef4cdc41900...a0aa58dad53f2e5e90a9b7079ec31bf7c3144fc7
So Kotlin/Native compiler now has to enable this optimization explicitly.
2021-04-06 08:44:12 +00:00
Svyatoslav Scherbina
2b6d8ab975
Native: replace no-frame-pointer-elim* LLVM attributes by frame-pointer
...
LLVM 8 and LLVM 11 understand both, but *frame-pointer-elim*
are obscure and obsolete.
2021-04-06 08:44:12 +00:00
Alexander Shabalin
451fc8e9df
Fix enum isFrozen for wasm
2021-04-05 14:07:29 +00:00
Vladimir Ivanov
c5f06d6e3f
Patch expectedLazyNoGenerics.h to corresond with new test ( #4271 )
2021-04-02 19:38:22 +03:00
Alexander Shabalin
71397a06fb
Add Stop-the-World Mark & Sweep GC for single-threaded programs.
...
GC implementation for testing purposes
* Only works for a single mutator
* Runs on the same thread as the mutator
* Runs every nth checkpoint and after every m bytes are allocated
* Runs finalizers after sweeping on the mutator thread.
2021-04-02 12:13:44 +00:00
Vladimir Ivanov
b87a943efd
[Native] Add test for -Xexport-kdoc ( #4249 )
...
(*) Fix exported kdoc indentation and extra blank lines
2021-04-02 12:10:09 +03:00
Dmitriy Dolovov
003d07b51e
[K/N][IR] Ref to expect property in actual declaration is not remapped
...
^KT-36880
2021-04-02 09:35:46 +03:00
Alexander Shabalin
e5ea7f5b4e
Do not freeze enum in new MM
2021-04-01 08:41:08 +00:00
Ilya Goncharov
03fed85447
[IR] Change copy method into shallowCopy in Native
2021-03-31 20:14:56 +03:00
Svyatoslav Scherbina
107129679e
Native: fix interop_objc_tests after recent frontend change
...
b60056f11e raises a warning to an error,
fixing this error here.
2021-03-30 15:32:46 +00:00
Ting-Yuan Huang
dba127a4d8
Add AnalysisHandlerExtension extension point for K2Native
...
frontendPhase is moved out of back phases to allow frontend only mode.
AnalysisHandlerExtension allows compiler plugins to:
1. Intercept and override the default analysis.
2. Utilize the compiler infrastructure to do custom analysis.
A well know plugin on the JVM platform is KAPT.
2021-03-29 20:41:06 +03:00
Alexander Shabalin
770401801b
Implement freezing in the new MM
...
Currently, it uses suboptimal storage for the freeze bit. This'll be revised later when we finalize stack objects handling in the new MM.
2021-03-26 15:00:14 +00:00
Ilya Matveev
e56ac775ca
[K/N][tests] Do not propagate user.dir property to compiler/cinterop
...
In a Gradle process, the user.dir property is set to the directory
where the build was started. By default, if we start a child process
via project.javaexec, Gradle sets its working directory to the
directory of the current project. But passing Gradle's value of user.dir
to that process overrides this setting.
This makes tools started in a such way sensitive to directory the build
is started from. Thus a test using relative paths may fail if it is
started from a wrong directory.
This patch fixes this issue for Kotlin/Native tests.
2021-03-26 12:38:27 +03:00
Igor Chevdar
a618791ff0
[K/N][IR] Removed unnecessary hack
...
The hack has been rendered redundant due to the recent fixes in psi2ir
2021-03-24 20:42:40 +05:00
Dmitriy Dolovov
dfd3b54ee4
Native: Handle integer overflow on div/rem of Int.MIN_VALUE by -1
...
^KT-45136
2021-03-24 09:55:46 +03:00
Igor Chevdar
752be27557
[K/N][tests] Disabled failing test for now
2021-03-23 11:57:56 +05:00
Svyatoslav Scherbina
818659f2bb
Native: fix bug in KType support affecting only stdlib
...
Don't use IrClass.declarations to find enum entries during lowerings,
because this enum might already be lowered and thus have all entries
removed.
2021-03-23 09:45:40 +03:00
Svyatoslav Scherbina
2a7ccb11e8
Native compiler: remove unused dependency on common/src/hash
2021-03-22 16:03:29 +00:00
Svyatoslav Scherbina
a471bbc185
Native compiler: remove unused hashing code
...
It was used to compute hashes for class names, but this is no longer
required after c6ac807034 .
2021-03-22 16:03:28 +00:00
Svyatoslav Scherbina
39d748dbbb
Native compiler: replace C++ CityHash64 impl by Kotlin one
2021-03-22 16:03:28 +00:00
Sergey Bogolepov
ec23ebd1c5
Fix workerAutoreleasePool test on macos_arm64 using __autoreleasing
...
Also merge `createAutorelease` and `create. There is no need in
such separation since it was originally added to prevent
optimization `result`'s lifetime.
Turned out, it was still happening on Apple Silicon,
and only addition of __autoreleasing attribute solves the problem.
2021-03-22 14:02:39 +03:00
Sergey Bogolepov
af3ff6c4d6
Revert "Revert "Remove unused protobuf from backend.native""
...
This reverts commit c4182c82
2021-03-19 15:24:44 +03:00
Sergey Bogolepov
bba82c0d60
Revert "Revert "Remove obsolete bc.frontend module""
...
This reverts commit e7a385f9
2021-03-19 15:24:43 +03:00
Vasily Levchenko
b3ae30fdea
[llvm][context util] make error more readable
2021-03-19 08:04:00 +00:00
Nikolay Krasko
e7a385f9da
Revert "Remove obsolete bc.frontend module"
...
This reverts commit b48a42a5
2021-03-17 20:40:00 +03:00
Nikolay Krasko
c4182c8269
Revert "Remove unused protobuf from backend.native"
...
This reverts commit 7a526a85
2021-03-17 20:39:35 +03:00