Commit Graph
100 Commits
Author SHA1 Message Date
Dmitriy Dolovov a3bfe58415 [KLIB tool] Fix failing test on dumping c-interop signatures 2023-11-02 18:44:14 +00:00
Dmitriy Dolovov e18a2d0a2e [KLIB tool] Add tests for dumping metadata signatures 2023-10-27 09:28:00 +00:00
Dmitriy Dolovov 88a297b022 [KLIB tool] Run tests for 'dump-metadata' with & without signatures 2023-10-27 09:28:00 +00:00
Dmitriy Dolovov aa9b901926 [KLIB tool] Migrate 'dump-metadata' tests to K/N test infra 2023-10-27 09:28:00 +00:00
Dmitriy Dolovov 57e004e2b0 [KLIB tool] Respect '-signature-version' in 'dump-metadata' and 'dump-ir' commands 2023-10-27 09:28:00 +00:00
Dmitriy Dolovov c34e334550 [KLIB tool] Rename "signatures" to "dump-metadata-signatures"
To make KLIB tool command names more uniform.
2023-10-27 09:28:00 +00:00
Dmitriy Dolovov 8f141e5dc6 [KLIB tool] Minor. Update usage info 2023-10-27 09:28:00 +00:00
Dmitriy Dolovov 93506bcb95 [KLIB tool] Add tests for dumping IR signatures
^KT-62341
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov a49723e35c [KLIB tool] Minor. Rename ir() to dumpIr() 2023-10-27 09:27:59 +00:00
Dmitriy Dolovov 02f52371c1 [KLIB tool] Rename "contents" to "dump-metadata"
To make KLIB tool command names more uniform.
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov d8d95fdf4b [KLIB tool] Deprecate usage of KLIB repositories
^KT-61098
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov 5961710db3 [KLIB tool] Don't print stack trace on trivial errors
1. Don't need to print stack trace on trivial errors such as invalid
CLI argument or incompatible library version.

2. Re-organization of `logWarning()` & `logError()` calls inside
the klib tool.
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov 8ca62ad656 [KLIB tool] Fail with an adequate error message on IR-less KLIBs
^KT-62341
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov f276fe6506 [KLIB] Add a reliable mechanism to check if KLIB has IR inside
^KT-62341
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov 4b2776e126 [KLIB tool] Introduce new command: dump-ir-signatures
^KT-62341
2023-10-27 09:27:59 +00:00
Dmitriy Dolovov 447b0eddac [KLIB tool] Drop useless arg: -target 2023-10-27 09:27:59 +00:00
Dmitriy Dolovov b0c1cbff32 [KLIB tool] Minor. Reformat usage info 2023-10-27 09:27:59 +00:00
Dmitriy Dolovov e8853fd40b [IR] Drop obsolete o.j.k.backend.common.serialization.signature.IdSignatureSerializer
It has been renamed to IdSignatureFactory. We have to keep
IdSignatureSerializer as a typealias for a while to keep the source
compatibility with the Compose compiler plugin.
2023-10-02 22:37:54 +00:00
Dmitriy Dolovov 78a962f6d2 [KLIB] Deprecate -Xexpect-actual-linker CLI argument
This argument has been finally superseded by `-Xmetadata-klib`.

^KT-61136
2023-10-02 16:21:17 +00:00
Dmitriy Dolovov 620c9434ca [Gradle] Use -Xmetadata-klib CLI arg to produce metadate KLIBs
The `-Xexpect-actual-linker` CLI argument is deprecated and replaced by
`-Xmetadata-klib` CLI argument.

^KT-61136
2023-10-02 16:21:17 +00:00
Dmitriy Dolovov 4d80e0f08d [Native] Respect local.properties in build config 2023-10-02 16:14:59 +00:00
Dmitriy Dolovov 6c1711c52a Bump Kotlin/Native version in KGP to 2.0.0-dev-3904 2023-09-22 12:51:02 +00:00
Dmitriy Dolovov fa34021a04 [Native][tests] Fix KLIB contents tests 2023-09-22 05:56:22 +00:00
Dmitriy Dolovov 38a67f3d30 [KLIB] Use -Xmetadata-klib to produce metadata KLIBs
With this change a new `-Xmetadata-klib` CLI flag becomes the
preferable way to instruct K2MetadataCompiler to produce metadata
KLIBs. The old `-Xexpect-actual-linker` flag still works for
K2MetadataCompiler, but that would last just for a short transition
period until the necessary changes are made in the Gradle plugin.

The K2NativeCompiler does not work anymore with `-Xexpect-actual-linker`
and respects only the `-Xmetadata-klib` flag. This is not an
issue since the Gradle plugin anyway supplies both flags for Native
metadata compilations.

^KT-61136
2023-09-20 22:26:36 +00:00
Dmitriy Dolovov 848c88b1a5 [KLIB] Lift up -Xmetadata-klib CLI key from Native to Common args
This is a precondition for obsoleting and finally removing
`-Xexpect-actual-linker` CLI key, which became useless since
the removal of ExpectActualTable.

^KT-61136
2023-09-20 22:26:36 +00:00
Dmitriy Dolovov c4da53475e [JS][tests] Drop obsolete EXPECT_ACTUAL_LINKER test directive
This directive was earlier used in KMP tests that were rewritten
and do not require this directive anymore.

^KT-61136
2023-09-20 07:54:36 +00:00
Dmitriy Dolovov 70d12b271d [Native][tests] Drop obsolete EXPECT_ACTUAL_LINKER test directive
This directive was earlier used in KMP tests that were rewritten
and do not require this directive anymore.

^KT-61136
2023-09-20 07:54:36 +00:00
Dmitriy Dolovov 249106b23f [KLIB] Drop obsolete tests on serialization of expect IR declarations
These tests are muted for all KLIB-oriented platforms for a long time
and are no more relevant since the removal of ExpectActualTable.

^KT-61136
2023-09-20 07:54:36 +00:00
Dmitriy Dolovov a2e148173d [JS] Don't produce metadata-only (IR-less) KLIBs in JS
The scenario when JS source code is shared between a few JS common
source sets is not supported in Kotlin Multiplatform.

^KT-61136
2023-09-18 17:58:43 +00:00
Dmitriy Dolovov b3cb8870e0 [IR][JS] Always drop expect declarations prior IR serialization
^KT-61136
2023-09-14 09:13:39 +00:00
Dmitriy Dolovov 98b3bdb175 [K1] Rename analysis flag expectActualLinker
Rename analysis flag `expectActualLinker` to `skipExpectedActualDeclarationChecker`
to better reflect its semantics. This flag isn't used on IDE plugin side, so no
additional changes in `intellij` repo are needed.

^KT-61136
2023-09-14 07:32:18 +00:00
Dmitriy Dolovov 033bb385b9 [IR] Drop expectDescriptorToSymbol completely
^KT-61136
2023-08-16 19:17:17 +00:00
Dmitriy Dolovov 9eb5b41ed8 [IR] Drop skipExpects & expectDescriptorToSymbol in IrFileSerializer
^KT-61136
2023-08-16 19:17:17 +00:00
Dmitriy Dolovov d691ab61d7 [KLIB] Keep "API for KLIB ABI" test data under "compiler/testData/klib/" dir
The test data is used both in ":kotlin-util-klib-abi" and
":native:native.tests" modules. It's better to keep it together with
the test data for other KLIB tests which are also used in more than one
module, i.e. in "compiler/testData/klib/" dir.
2023-08-16 19:11:35 +00:00
Dmitriy Dolovov cb92990ed6 [KLIB][tests] Reorganize "klib dump-metadata" tests
- Keep the test data under "native/native.tests/testData/klib/" dir
- Rename tests from "klib contents" to "klib dump-metadata"
2023-08-16 19:11:35 +00:00
Dmitriy Dolovov ec9370c30b [KLIB][tests] Reorganize "klib dump-ir" tests
- Keep the test data under "native/native.tests/testData/klib/" dir
- Rename tests from "klib ir" to "klib dump-ir"
2023-08-16 19:11:35 +00:00
Dmitriy Dolovov a8034b6baa [CODEOWNERS] Make K/N Team to be responsible for "compiler/testData/klib/" dir 2023-08-16 19:11:35 +00:00
Dmitriy Dolovov 60b950b9bd [KLIB][tests] Keep "klib evolution" test data under "testData/klib/" dir 2023-08-16 19:11:34 +00:00
Dmitriy Dolovov d7e9fcea04 [PL][JS] Add missing PL test to the IDEA run configuration 2023-08-16 19:11:34 +00:00
Dmitriy Dolovov 5c3e63e19a [PL][tests] Keep PL test data under "testData/klib/" dir 2023-08-16 19:11:34 +00:00
Dmitriy Dolovov 7be877ce74 [IR][JVM] Drop JvmIrSerializerSession.skipExpects parameter
^KT-61136
2023-08-14 15:21:04 +00:00
Dmitriy Dolovov 6c12556c41 [IR][JVM] Drop JvmIrSerializerSession.expectDescriptorToSymbol parameter
^KT-61136
2023-08-14 15:21:04 +00:00
Dmitriy Dolovov b7211c171f [IR][JS] Drop JsIrFileSerializer.expectDescriptorToSymbol parameter
^KT-61136
2023-08-14 15:20:28 +00:00
Dmitriy Dolovov 5991364028 [IR][JS] Drop JsIrFileSerializer.skipExpects parameter
^KT-61136
2023-08-14 15:20:28 +00:00
Dmitriy Dolovov b37bb0be16 [IR][Native] Drop KonanIrFileSerializer.expectDescriptorToSymbol parameter
^KT-61136
2023-08-14 15:13:44 +00:00
Dmitriy Dolovov f3c58bcfb3 [IR][Native] Drop KonanIrFileSerializer.skipExpects parameter
^KT-61136
2023-08-14 15:13:44 +00:00
Dmitriy Dolovov 7dbfe4bfb1 [IR][tests] Fix MPP IR dump tests to not fail on missing expect declarations
Expect declarations do not survive serialization to KLIB. So they need to be explicitly filtered in order for tests that compare dumped IR before and after serialization to pass successfully.

^KT-61136
2023-08-12 07:03:29 +00:00
Dmitriy Dolovov 6e648ac374 [IR] Drop IR expect/actual table
^KT-61136
2023-08-12 07:03:29 +00:00
Dmitriy Dolovov 8be98da1d3 [PL] Halt compilation when there are linkage issues logged with the ERROR severity
^KT-61097
2023-08-10 13:21:34 +00:00
Dmitriy Dolovov da2e6d93ff [Native][tests] Don't use trove4j in K/N new test infra 2023-08-09 12:15:39 +00:00
Dmitriy Dolovov 3b626ea97c [Commonizer] Replace ResettableClockMark by TimeSource.Monotonic 2023-08-08 09:40:18 +00:00
Dmitriy Dolovov 00fb927624 [KLIB] ABI reader: Update ReadMe.md
^KT-54402
2023-08-04 10:56:21 +00:00
Dmitriy Dolovov 18f9ada676 [KLIB] ABI reader: More verbose KDocs
^KT-54402
2023-08-04 10:56:21 +00:00
Dmitriy Dolovov 748eb2f9ee [KLIB] ABI reader: Tests for classes inherited from classes produced by Native interop tool
^KT-54402
2023-07-31 20:22:21 +00:00
Dmitriy Dolovov 32e4b7a76f [KLIB] ABI reader: Show fake overrides for classes inherited from classes produced by Native interop tool
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov 18668539e9 [KLIB] ABI reader: Tests for DNN & dynamic types
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov a95f963ad3 [KLIB] ABI reader: Refactor manifest reading test
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov ac3c000ab1 [KLIB] Native K1 & K2 tests for dumping KLIB ABI
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov ab9b91180f [KLIB] ABI reader: Expose supported AbiSignatureVersions
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov ca00c38fca [Native][tests] Use common test tag "klib" for all KLIB-related tests 2023-07-31 20:22:20 +00:00
Dmitriy Dolovov 76e24e5093 [KLIB] JS K1 & K2 tests for API for dumping KLIB ABI
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov 064600d351 [KLIB] API4ABI: Avoid CCE in HashMap.computeIfAbsent()
^KT-54402
2023-07-31 20:22:20 +00:00
Dmitriy Dolovov 5171d92fb9 [KLIB] API for dumping KLIB ABI
^KT-54402
2023-07-28 09:52:18 +00:00
Dmitriy Dolovov 8d9954c0b4 [CODEOWNERS] Assign Native Team as owner of new 'util-klib-abi' module 2023-07-28 09:52:18 +00:00
Dmitriy Dolovov ce815968cf [Native][tests] Use convention fun generatedTestDir() in build.gradle.kts 2023-07-17 21:09:40 +00:00
Dmitriy Dolovov 938146749d [PL][tests] K/JS: Avoid any unexpected warnings to appear in tests 2023-07-17 21:09:40 +00:00
Dmitriy Dolovov 715aba3d18 [PL][tests] K/JS: Run compiler through CLI interface 2023-07-17 21:09:40 +00:00
Dmitriy Dolovov 19c6208cc0 [PL][tests] K/N: Avoid any unexpected warnings to appear in tests 2023-07-17 21:09:40 +00:00
Dmitriy Dolovov b7bd078a31 [PL] Lower the default PL engine messages log level down to INFO
^KT-59136
2023-07-11 11:37:35 +00:00
Dmitriy Dolovov 8aacdb471b [K/N] Fix: Ignore bridge functions in FunctionReferenceLowering
^KT-59858
2023-07-06 12:39:46 +00:00
Dmitriy Dolovov f2f935846c [JS] Fix IC tests to reflect changes in signature rendering
^KT-59486
2023-06-26 15:59:31 +00:00
Dmitriy Dolovov a17ce79088 [Native] Rename o.j.k.cli.klib.IdSignatureRenderer to avoid name clash with o.j.k.ir.util.IdSignatureRenderer
^KT-59486
2023-06-26 15:59:31 +00:00
Dmitriy Dolovov 4c0583e415 [IR] Two modes of signature rendering
^KT-59486
2023-06-26 15:59:31 +00:00
Dmitriy Dolovov 2e43fa7cd0 [PL][tests] Adapt tests for K/N to the conditions when static cache is used w/o lazy IR 2023-06-22 08:10:11 +00:00
Dmitriy Dolovov 56bebeaf92 [KLIB] Extract "ir_provider" manifest property name as a const val, p.2 2023-06-17 01:00:04 +00:00
Dmitriy Dolovov 72525a22a6 [KLIB] Extract "ir_provider" manifest property name as a const val 2023-06-15 11:07:30 +00:00
Dmitriy Dolovov cf9aa6a360 [Native][tests] Clean-up in c-interop tests 2023-06-05 12:47:56 +00:00
Dmitriy Dolovov 502cbe8b17 [PL][tests] W/a for broken @Deprecated annotations in existing c-interop KLIBs
^KT-59030
2023-06-05 12:47:56 +00:00
Dmitriy Dolovov 280caf003f [PL] W/a for broken @Deprecated annotations in existing c-interop KLIBs
^KT-59030
2023-06-05 12:47:56 +00:00
Dmitriy Dolovov 161fe1d2ca [IR] Don't produce gaps for skipped IR declarations during serialization 2023-05-30 10:14:08 +00:00
Dmitriy Dolovov a01a6b64ad [PL] Fix: Don't use locations in compiler messages
^KT-58837
2023-05-26 14:03:33 +00:00
Dmitriy Dolovov 69a1514b14 [PL] Unmute FIR-based tests that pass now 2023-05-23 16:23:41 +00:00
Dmitriy Dolovov 650a3c467d [PL] Fix: Use stable order of return targets in 'illegalNonLocalReturn' case 2023-05-23 16:23:41 +00:00
Dmitriy Dolovov 1536bca1bb [PL] Handle illegal fun interface SAM conversions
^KT-53967
2023-05-23 16:23:41 +00:00
Dmitriy Dolovov 7f4d9ddde5 [PL] Optimization: Avoid excessive type checks in IR type operators 2023-05-23 16:23:41 +00:00
Dmitriy Dolovov 2b913d7c47 [Native] Don't produce broken @Deprecated annotations in c-interop
#KT-58651
2023-05-16 08:30:29 +00:00
Dmitriy Dolovov 706a4e9919 [PL] Fix: Remove annotations containing unlinked arguments
Both explicitly specified and default argument expressions are considered.

In case an argument expression is considered as 'unlinked' the whole annotation
is removed from the declaration. An appropriate compiler warning logged for each
such case.
2023-05-16 08:30:29 +00:00
Dmitriy Dolovov 42a8b28337 [Native][tests] Don't track used memory when running in TeamCity 2023-05-12 13:58:18 +00:00
Dmitriy Dolovov 6f249ab615 [Native][tests] Minor. Fix condition for generating intermediate build dir 2023-05-12 13:58:18 +00:00
Dmitriy Dolovov bb5c1eea90 [Native][tests] Minor. Use "default" module name in AbstractNativeObjCExportTest 2023-05-12 13:58:18 +00:00
Dmitriy Dolovov 82984d782a [Native][tests] Unify work with build directories across BB & Simple tests
* Drop 'SimpleTestDirectories' in favor of 'Binaries'
* Make 'Binaries' lazy
2023-05-12 13:58:18 +00:00
Dmitriy Dolovov f7848133a6 [Native][tests] Fix generated framework log file name
$frameworkName.log -> $frameworkName.framework.log
2023-05-12 13:58:18 +00:00
Dmitriy Dolovov 5beec6b543 [Native][tests] Avoid failing with IO exceptions when the process under test is intentionally killed 2023-05-04 23:17:58 +00:00
Dmitriy Dolovov 57ba28ae3d [K/N][tests] Drop obsolete test tags
The obsolete tags that are no more used and are dropped by this commit:
* 'stdlibK2'
* 'kotlin-testK2'
* 'codegenK2'
* 'k2libContents'
* 'firInfrastructure'
2023-05-04 10:35:08 +00:00
Dmitriy Dolovov 0de06757ca [K/N][tests] Rework tags for K/N tests
Use plain combinations of tags, examples:
* codegen/box w/o FIR: 'codegen & !frontend-fir'
* codegen/box with FIR: 'codegen & frontend-fir'

Avoid using tags with multiple aspects in their names, examples:
* 'codegenK1'
* 'firCodegen'

The obsolete tags to be removed but still used in TeamCity configurations:
* 'stdlibK2'
* 'kotlin-testK2'
* 'codegenK2'
* 'k2libContents'
* 'firInfrastructure'
2023-05-03 11:49:43 +00:00
Dmitriy Dolovov f2b6cbeee8 [K/N][tests] Merge tags: noPartialLinkage() + noPartialLinkageMayBeSkipped() 2023-05-03 11:49:43 +00:00
Dmitriy Dolovov cdf84a019d [K/N][tests] Rename tags: hostOnly() -> forceHostTarget() 2023-05-03 11:49:43 +00:00
Dmitriy Dolovov d998ccedc2 [K/N][tests] Rename tags: debugOnly() -> forceDebugMode() 2023-05-03 11:49:43 +00:00
Dmitriy Dolovov 38a777fa94 [PL][tests] Mute K/N codegen/box tests failing in K1/one-stage mode
For details, see #KT-57747.
2023-05-02 10:58:38 +00:00
Dmitriy Dolovov 9d4db72d72 [PL] Fix: Don't raise an error when external interface inherits from external class
^KT-57378
2023-04-25 08:00:14 +00:00