Commit Graph

564 Commits

Author SHA1 Message Date
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 2adea2122e [kotlin-native][build][test infrostructure] don't ignore compiler exit code 2021-04-13 12:10:57 +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
Abduqodiri Qurbonzoda 39731fd493 Merge Stdlib generators 2021-04-12 16:51:24 +03:00
Abduqodiri Qurbonzoda 98d31a1813 Expand KDoc of inc() and dec() operators #KT-43701 2021-04-10 03:23:04 +03:00
Vasily Levchenko fd17e5e700 [build][kotlin-native][clean] adds kotlin-native/build to clean 2021-04-09 14:14:32 +00:00
Vasily Levchenko 3192b05586 [build][kotlin-native][g/c] drop unused hacks 2021-04-09 14:14:31 +00:00
Sergey Bogolepov 0fa2821ac1 Add missing targetToolchain.macos_arm64-linux_arm32_hfp property 2021-04-09 18:26:23 +07:00
Sergey Bogolepov 81d4c19d8b Fix Android NDK targets
Android NDK dirs omit vendor part of triple,
so we have to respect its decision.
2021-04-09 13:11:14 +07:00
Sergey Bogolepov 6ab38c1ff8 Add support for Apple Silicon simulators 2021-04-08 16:51:51 +03:00
Sergey Bogolepov 3718907c6a Use -target instead of -arch in ClangArgs
Explicit target selection helps Clang to
 correctly set things up in case of Apple Silicon
 simulator target.
2021-04-08 16:51:49 +03: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 790fea635d Avoid explicit native targets enumerations 2021-04-08 16:51:45 +03:00
Sergey Bogolepov 15dcb36f47 Use TargetTriple in backend to simplify code. 2021-04-08 16:51:44 +03:00
Elena Lepilkina 5f2095217d [Native] Removed slack reports for benchmarks 2021-04-08 10:39:16 +00: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
Elena Lepilkina 53c80cf03b [K/N] Replaced usage of minBy/maxBy in samples and benchmarks 2021-04-08 11:57:33 +03:00
Vasily Levchenko d2d324797b [build][xcode][warning][todo] suppress deprecation warning with todo till bootstrap bump 2021-04-08 10:42:44 +02: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
Sergey Bogolepov 437a0aa450 Prepare test infrastructure for Apple Silicon simulators.
* Get rid of explicit target enumerations by using TargetTriple.
* Remove some code duplication with `project.testTargetConfigurables`
2021-04-08 09:18:27 +03:00
Sergey Bogolepov cebf815fed Introduce a proper TargetTriple class.
Target triple (like `arm64-apple-ios-simulator`) is a common
way to represent any target platform.
One of many useful properties: it allows to explicitly
distinguish iOS arm64 simulator target and a real device.
2021-04-08 09:18:25 +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
Abduqodiri Qurbonzoda a4839b8548 [K/N] Migrate runtime to new case conversion api 2021-04-08 03:22:04 +03:00
Abduqodiri Qurbonzoda a697bc43b9 [K/N] Remove redundant @OptIn targeting new case conversion api 2021-04-08 03:22:00 +03:00
Abduqodiri Qurbonzoda 7f0e1ac08d [K/N] Deprecate old Char and String case conversion api #KT-43023 2021-04-08 03:21:58 +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
Ilya Gorbunov 22ca412dd2 Fix case-insensitive character-wise comparison KT-45496
- Step 1: add failing tests
- Step 2: fix common case insensitive Char.equals
- Step 3: fix case insensitive String.equals in K/JS
- Step 4: enable unicode case folding in K/JS Regexes and
  string replacement (KT-45928)
- Step 5: fix case insensitive char comparison in K/N in String functions
  String.replace, equals, compareTo with ignoreCase
2021-04-07 14:43:41 +03:00
Abduqodiri Qurbonzoda 7a6cddf6fe [K/N] Advance String(CharArray) deprecation level to ERROR 2021-04-07 00:23:32 +03:00
Abduqodiri Qurbonzoda 8300180261 [K/N] Remove AfterEach and BeforeEach typealiases in kotlin-test 2021-04-07 00:23:24 +03:00
Abduqodiri Qurbonzoda 91d42fe345 [K/N] Advance deprecation level of subarrayContentToString to ERROR 2021-04-06 18:44:22 +03:00
Abduqodiri Qurbonzoda 7fdf7c6175 [K/N] Move declarations from Text.kt to Strings.kt and StringBuilder.kt 2021-04-06 18:44:20 +03:00
Abduqodiri Qurbonzoda 71afd112c6 [K/N] Remove old String and utf8 conversion api #KT-31343 2021-04-06 18:43:41 +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
Pavel Punegov e23d09beb6 [Native] Return kotlinCompilerRepo parameter back
This parameter is used to specify maven path in case of kotlin_version
rewriting that happens during Nightly test runs.
2021-04-06 09:59:08 +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
Elena Lepilkina 85cb8eb959 [Native][perf] Increase heap space for K/N compiler in performance project 2021-04-06 09:27:28 +03:00
Alexander Shabalin 451fc8e9df Fix enum isFrozen for wasm 2021-04-05 14:07:29 +00:00
Elena Lepilkina d0513c9ece [Native][perf] Removed unneeded workaround 2021-04-05 10:52:55 +00:00