Mikhael Bogdanov
e3e7e6b740
Make indy-with-constants default for -jvm-target 9+
...
#KT-42522 Fixed
2021-02-17 18:43:23 +01:00
Dmitriy Novozhilov
cdf7de5524
[FE] Change message for sealed interfaces with language target < 1.5
2021-02-17 13:51:14 +03:00
Georgy Bronnikov
103f82c95c
IR: an option to automatically select the number of lowering threads
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
52b3cb362b
IR: thread pool in PerformByIrFilePhase
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
bea5d955d4
JVM_IR: perform file lowerings in parallel
...
Selected by -Xir-run-lowerings-in-paralled compiler flag.
2021-02-17 11:03:26 +03:00
Pavel Kirpichenkov
2a46da906c
Provide additional information about missing supertypes
...
Add -X flag to report extra compiler diagnostics which migth break compatibility.
Use the flag to unconditionally check constructors without fear of
prematurely evaluating lazy supertypes.
KT-19234
KT-42404
KT-44583
2021-02-08 18:47:30 +03:00
Alexander Udalov
bd45a6c11d
Support -Xsuppress-version-warnings to suppress API/language version warnings
...
To be used in the project after bootstrap to get rid of warnings like
"Language version 1.3 is deprecated, ..." which prevent us from enabling
`-Werror` in `:compiler:cli` and other modules.
2021-02-03 13:07:04 +01:00
Alexander Udalov
99b5e5a373
Deprecate JVM target 1.6
...
#KT-44650 Fixed
2021-02-03 12:50:52 +01:00
Dmitry Petrov
ab20a8ffff
JVM_IR indy-lambdas: minor updates and fixes
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:25 +03:00
Dmitry Petrov
d94912ed62
JVM_IR indy-lambdas: initial implementation and tests
...
KT-44278 KT-26060 KT-42621
2021-02-03 14:16:22 +03:00
Alexander Udalov
d022bb0248
Switch default JVM target to 1.8
...
#KT-29405 Fixed
2021-02-01 11:54:04 +01:00
Dmitry Petrov
5d7dc5fa39
JVM_IR indy-SAM conversions: minor updates
...
See: KT-44575 KT-44577
KT-44278 KT-26060 KT-42621
2021-01-29 12:59:48 +03:00
Dmitriy Novozhilov
81fd8b5940
[IR] Fix undeterministic order in signature clash reporting
2021-01-28 13:19:29 +03:00
Alexander Udalov
4dff7e648f
Minor, restore abiStabilityUnstableWithOldBackend CLI test
...
Add -Xuse-old-backend to make it pass with LV=1.5 where JVM IR is
enabled by default.
2021-01-28 13:19:26 +03:00
Dmitriy Novozhilov
73e6d42224
[Test] Update CLI tests according to new default language version
2021-01-28 13:19:25 +03:00
Roman Artemev
2daf0cc11c
[JS IR] Support additional repositories in CLI (cli part)
2021-01-26 19:23:22 +03:00
Pavel Kirpichenkov
2f3f75b512
Fix local anonymous class name error in K2MetadataCompiler
...
Extract the logic of approximating to denotable class supertype
from JS/KLIB and use it in metadata compiler.
^KT-20996 In Progress
2021-01-20 11:05:53 +03:00
Pavel Kirpichenkov
b82a44fa63
Add test for KT-20996
2021-01-20 11:05:53 +03:00
Dmitriy Novozhilov
e991c9d476
[CLI] Drop CommonCompilerArguments.coroutinesState
2021-01-12 16:47:54 +03:00
Alexander Udalov
12078666c2
Add warning if both -Xuse-ir and -Xuse-old-backend are passed
2021-01-11 12:57:03 +01:00
Alexander Udalov
cb3191769d
Enable JVM IR by default if language version is >= 1.5
...
#KT-44021 Fixed
2021-01-11 12:47:54 +01:00
Alexander Udalov
22d0e5eb65
Rename -Xno-use-ir -> -Xuse-old-backend, add Gradle option
...
As soon as JVM IR is enabled by default (in language version 1.5), use
the CLI argument `-Xuse-old-backend` or Gradle option `useOldBackend` to
switch to the old JVM backend.
2021-01-11 12:47:54 +01:00
Ilya Chernikov
9a7d1948a7
Implement support for -Xdefault-script-extension cli option
2021-01-07 10:37:22 +01:00
Alexander Udalov
ee2ae0c471
JVM IR: remove obsolete -Xir-check-local-names
...
This flag was added a long time ago, at the time when we weren't sure if
we were going to keep the naming of local and anonymous classes
completely equal to the naming in the old backend. Now that we've
decided that we won't keep it equal and there are a lot of differences
already, it's not useful anymore.
2021-01-04 12:13:13 +01:00
Alexander Udalov
eef06cded3
JVM IR: output stable ABI binaries by default
...
#KT-43592 Fixed
2020-12-20 23:14:54 +01:00
Alexander Udalov
06805ffbaa
Change CLI flags for controlling diagnostics for ABI of FIR and JVM IR
...
- Use a more generic `-Xallow-unstable-dependencies` instead of
`-Xallow-jvm-ir-dependencies`
- Change `-Xir-binary-with-stable-abi` to `-Xabi-stability=stable`, with
an additional option to specify `unstable` after a subsequent commit
where JVM IR becomes stable by default
#KT-43592
2020-12-20 23:14:32 +01:00
Victor Petukhov
48d9812d9e
Review fixes around type enhancement and loading type use annotations
2020-12-18 19:32:05 +03:00
Denis.Zharkov
f4a25066a8
Fix freshly added CLI tests for windows agents
2020-12-10 16:15:29 +03:00
Denis.Zharkov
92b402759b
Report incorrect JVM target only when @JvmRecord is actually used
2020-12-09 16:47:25 +03:00
Denis.Zharkov
46c3979acd
Separate JVM target option from javac's --enable-preview analogue
2020-12-09 16:47:24 +03:00
Denis.Zharkov
3abd8b1ab2
Adapt CliTests for api requirement of @JvmRecord
2020-12-09 16:47:24 +03:00
Denis.Zharkov
6e4f84dddf
Add @SinceKotlin("1.5") on JvmRecord annotation
2020-12-09 16:47:23 +03:00
Denis.Zharkov
f64980a597
Add check for bytecode target when @JvmRecord is used
...
^KT-43677 In Progress
2020-12-09 16:47:23 +03:00
Ilya Goncharov
efee3ea648
[JS IR] - Remove file lowering declarations from lowering phases
...
- rename fileToPurenessInitializers onto fileToInitializerPureness
- remove redundant check on top-level property
[JS IR] Rename initialis* to initializ* for consistency
[JS IR] Move propertyLazyInitialization property to context from configuration
[JS IR] Add test on lazy initialization properties order
[JS IR] Add multi module for lazy initialization of properties
[JS IR] Move tests onto js.translator
[JS IR] Rename fileToInitializerPureness according to context name
^KT-43222 fixed
2020-11-24 12:33:44 +03:00
Ilya Goncharov
1b5ebd83de
[JS IR] Lazy initialisation is optional for tests
...
^KT-43222 fixed
2020-11-24 12:33:43 +03:00
Ilmir Usmanov
2cd9016016
IC mangling: Replace compiler hack with configuration flag
2020-11-19 17:39:30 +01:00
Alexander Gorshenev
01ef41ab17
No need to explicitly deprecate -Xdisable-fake-override-validator
...
A warning is produced automagically
2020-11-18 12:46:40 +03:00
Alexander Gorshenev
f42b902bc8
Made -Xfake-override-validator off by default
...
Deprected -Xdisable-fake-override-validator
2020-11-18 12:46:40 +03:00
Martin Petrov
68fdeaf865
Produce deterministic jar files.
...
This resets all timestamps present in jars produced by kotlinc.
This is important for build systems like bazel that rely on
deterministic outputs.
Before:
```
$ kotlinc ~/test.kt -d /tmp/a.jar
$ kotlinc ~/test.kt -d /tmp/b.jar
9ab80cd40c9293a7a66adf1154d4e6e9aa92d5b0 /tmp/a.jar
1ba022697317f796bd123fb4dc95418a18bcb51a /tmp/a.jar
6d2a2683470c24928f3fbd6768a4c57f55b0d196 /tmp/b.jar
$ unzip -l /tmp/a.jar
Archive: /tmp/a.jar
Length Date Time Name
--------- ---------- ----- ----
75 09-25-2020 16:48 META-INF/MANIFEST.MF
683 09-25-2020 16:48 TestKt.class
28 09-25-2020 16:48 META-INF/main.kotlin_module
--------- -------
786 3 files
```
After:
```
$ kotlinc ~/test.kt -d /tmp/a.jar
$ kotlinc ~/test.kt -d /tmp/b.jar
$ shasum /tmp/a.jar /tmp/b.jar
9ab80cd40c9293a7a66adf1154d4e6e9aa92d5b0 /tmp/a.jar
9ab80cd40c9293a7a66adf1154d4e6e9aa92d5b0 /tmp/b.jar
$ unzip -l /tmp/a.jar
Archive: /tmp/a.jar
Length Date Time Name
--------- ---------- ----- ----
75 12-31-1969 19:00 META-INF/MANIFEST.MF
590 12-31-1969 19:00 TestKt.class
36 12-31-1969 19:00 META-INF/main.kotlin_module
--------- -------
701 3 files
```
See https://github.com/JetBrains/kotlin/pull/3226 for a similar change.
2020-11-16 19:25:20 +01:00
Svyatoslav Kuzmich
e51a76bc4e
[Wasm] Basic CLI
...
-Xwasm option that will produce wasm instead of JS when used with -Xir-produce-js
Does not affect klib production
2020-11-10 13:08:04 +03:00
Alexander Gorshenev
5de7a10df0
Eliminated -Xdeserialize-fake-overrides
2020-11-09 16:02:14 +03:00
Alexander Udalov
382a0bd298
JVM IR: clear BindingContext after psi2ir
...
This helps to reduce peak memory in lowerings/codegen by a lot.
A more robust approach would be to have a separate BindingContext for
each file, and clear each of them after running psi2ir on it. This would
also lower peak memory usage in psi2ir.
Provide a fallback workaround compiler argument
-Xir-do-not-clear-binding-context just in case BindingContext is in fact
used somewhere and it's not caught by tests.
2020-10-26 10:34:43 +01:00
Alexander Udalov
48cd86b717
Add JVM target bytecode version 15
...
#KT-41916 Fixed
2020-10-19 14:47:21 +02:00
Victor Petukhov
9f716ba37c
Jspecify: Rename DefaultNotNull to DefaultNonNull
2020-10-08 14:00:10 +03:00
Victor Petukhov
2685c7efce
Jspecify: Rename codeanalysis annotations to jspecify ones
2020-10-08 14:00:10 +03:00
Denis Zharkov
f3a490ee16
Support compiler flag -Xcodeanalysis-annotations
2020-10-08 14:00:09 +03:00
Mikhael Bogdanov
d2c4be18a0
Rename runtime-string-concat option into 'string-concat'
2020-10-06 07:14:39 +02:00
Mikhael Bogdanov
c329c22630
Add runtime string concat options. Some renaming
2020-10-02 11:47:27 +02:00
Pavel Kirpichenkov
1465e10f12
Add language feature for inference compatibility mode
...
The feature is intended for updates in the inference algorithm
that change behaviour compared to the previous stable version.
2020-09-22 15:06:12 +03:00
Igor Yakovlev
c70383cc70
[ULC] Add compiler flag -Xdisable-ultra-light-classes to fallback to light implementation in CLI
2020-09-11 12:49:04 +03:00