Commit Graph

84062 Commits

Author SHA1 Message Date
Georgy Bronnikov 08b950fc2a JVM_IR: Supply fake file name to signatures of file local declarations 2021-07-14 21:20:41 +03:00
Georgy Bronnikov 225705a237 IR: do not serialize nonlocal initializers in inline-only mode 2021-07-14 21:20:40 +03:00
Georgy Bronnikov 28bff2ba4f JVM_IR: add test for calling monitorEnter/Exit from serialized code. 2021-07-14 21:20:38 +03:00
Georgy Bronnikov dffb22de9d JVM_IR: avoid duplication in declaration lists during deserialization 2021-07-14 21:20:36 +03:00
Georgy Bronnikov fa4efd3303 JVM_IR: fix deserialization of Java static field symbols 2021-07-14 21:20:35 +03:00
Georgy Bronnikov 955ee07517 IR: compute signature for scripts 2021-07-14 21:20:33 +03:00
Georgy Bronnikov 9d0c6fb157 IR: remove an overly optimistic assert 2021-07-14 21:20:32 +03:00
Georgy Bronnikov c3a94e1e62 FIR: adapt to changes in IR interface
JvmGeneratorExtensionsImpl, JvmIrCodegenFactory need new arguments.
2021-07-14 21:20:31 +03:00
Georgy Bronnikov 20b76d4149 JVM_IR: reorganize initialization of JvmGeneratorExtensionsImpl
CachedFields are now created at initialization.
Therefore we need CompilerConfiguration as a constructor parameter.
2021-07-14 21:20:30 +03:00
Georgy Bronnikov 7bbc04b6a2 JVM_IR: reconstruct fake overrides after IR deserialization.
We need to keep track of local signatures for deserialized symbols.
2021-07-14 21:20:29 +03:00
Georgy Bronnikov a63cc95a2a JVM_IR: untangle backend.jvm and serialization.jvm (again) 2021-07-14 21:20:28 +03:00
Georgy Bronnikov 1c4466951f IR: a flag to GeneratorExtensions to control IR deserialization
There is no need to search for IR embedded in toplevel classes when none
is expected (in npon-JVM backends or when -Xserialize-ir is not set).
2021-07-14 21:20:27 +03:00
Georgy Bronnikov ec1c97c684 JVM_IR: register builtin annotation constructors in SymbolTable
When deserializing IR, these annotations need to be visible.
2021-07-14 21:20:26 +03:00
Georgy Bronnikov 8d15a1d13d JVM_IR: use signatures in AbstractIrSerializeCompileKotlinAgainstInlineKotlinTest
Using signatures allows us to identify calls from a new module to an old
one.
2021-07-14 21:20:24 +03:00
Georgy Bronnikov 49619cda48 Restore Native compilation 2021-07-14 21:20:23 +03:00
Georgy Bronnikov 931733f8cc JVM_IR: deal with JvmStatic in imported IR 2021-07-14 21:20:22 +03:00
Georgy Bronnikov 96ce124268 JVM_IR: serialize fake overrides in IR 2021-07-14 21:20:21 +03:00
Georgy Bronnikov 2d3a558d50 JVM_IR: normalize visibility before serializing 2021-07-14 21:20:20 +03:00
Georgy Bronnikov a328ebc889 JVM_IR: extract cached fields into a separate class 2021-07-14 21:20:18 +03:00
Georgy Bronnikov 50068607b9 JVM_IR: call serializeIr from a phase
This circumvents the need to run expect/actual resolution on
deserialized IR.
2021-07-14 21:20:17 +03:00
Georgy Bronnikov 0d5fe0b029 JVM_IR: load serialized data for every affected property of IrLazyFunction 2021-07-14 21:20:16 +03:00
Georgy Bronnikov f4e6eb00fd JVM_IR: generate unbound symbols after deserializing IR 2021-07-14 21:20:15 +03:00
Georgy Bronnikov 6b80c00cc6 JVM_IR: deserialize lazy declarations 2021-07-14 21:20:14 +03:00
Georgy Bronnikov ad8892f71f JVM_IR: test that inline functions have deserialized bodies 2021-07-14 21:20:12 +03:00
Georgy Bronnikov 7b52a8c07d JVM_IR: deal with facade classes when computing signature 2021-07-14 21:20:11 +03:00
Georgy Bronnikov 97d3eda23c JVM_IR: run Kotlin against Kotlin tests with serialization 2021-07-14 21:20:10 +03:00
Georgy Bronnikov ab3d6490ed JVM_IR: save auxTables as byte strings 2021-07-14 21:20:09 +03:00
Georgy Bronnikov 7dbdb311e1 JVM_IR: read serialized IR from annotation 2021-07-14 21:20:08 +03:00
Georgy Bronnikov baaecaa052 JVM_IR: write serialized IR to an annotation 2021-07-14 21:20:06 +03:00
Georgy Bronnikov b177779b66 IR: compute signatures for fields 2021-07-14 21:20:05 +03:00
Georgy Bronnikov b2617199bc JVM_IR: call serialization for IR.
Serializer for IR is called when -Xserialize-ir flag is set.
2021-07-14 21:20:04 +03:00
Georgy Bronnikov 9efd0d7589 JVM_IR: JvmIrSerializer 2021-07-14 21:20:02 +03:00
Mikhail Glukhikh 113d2653aa Drop deprecated -Xexperimental flag from compiler and tests 2021-07-14 21:18:23 +03:00
anastasiia.spaseeva cbcec8d624 Add changelog for 1.5.21 2021-07-14 19:37:14 +03:00
Margarita Bobova ed3326fd83 Add changelog for 1.5.20 2021-07-14 19:37:12 +03:00
Nikita Bobko bf6718e0a5 Fix compilation in kotlin-ide 2021-07-14 17:17:19 +02:00
Ilya Goncharov 047041dc6e [Gradle, JS] Await worker which builds cache 2021-07-14 14:46:04 +00:00
Pavel Kunyavskiy 92789984e0 [K/N] Make SafeContinuation thread-safe 2021-07-14 09:03:31 +00:00
pyos 07cb3a5ff8 JVM: do not reify methods of objects in lambdas
All type parameters used in them are not from the inline function
anyway.
2021-07-14 10:11:05 +02:00
pyos 717cf2066a JVM: remove more redundant properties from LambdaInfo 2021-07-14 10:11:05 +02:00
pyos c1c56ca388 JVM: refactor extraction of default inline lambdas a bit more 2021-07-14 10:11:05 +02:00
pyos 91cf1a1a4d JVM: remove a redundant DefaultLambda field
and add a comment explaining one branch of the inliner... Better than
nothing, I guess?
2021-07-14 10:11:05 +02:00
pyos 100d2d629c JVM: inline default lambda coercions from bridge invoke
The type of the default lambda may be a subtype of the parameter type,
so we can't really generate our own coercions at all as we don't know
the precise Kotlin type of the `invoke` method.
2021-07-14 10:11:05 +02:00
pyos d0b9c4ae6b JVM: generalize getMethodNode
to allow matching by arbitrary predicates.
2021-07-14 10:11:05 +02:00
Alexander Likhachev f986591ba9 [Build] Suppress ivy url senseless comparison warning
It's marked as not null in Gradle, but it's still possible to declare Ivy repository with null url which leads to GeneralKotlin2JsGradlePluginIT#testJsBothModeWithTests test false fail (cache redirector script is used in Gradle integration tests)
2021-07-14 10:59:14 +03:00
Ilya Matveev 922aad6865 [K/N] Add exp10 and exp10f to good function list for call checker
Clang may replace a call to `pow (10.0, x)` with a call to `exp10(x)`
(or `__exp10` on MacOS).

We use this function in float parsing logic, so this function should
be added to the good function list.
2021-07-14 04:49:04 +00:00
Nikolay Krasko 0f2e653625 Use cache-redirector for yarn download (KTI-577) 2021-07-13 22:36:51 +03:00
Nikolay Krasko ec04af9eea Update cache redirector list 2021-07-13 22:36:50 +03:00
Dmitry Petrov dc16d66fb1 Minor: regenerate tests 2021-07-13 21:23:17 +03:00
pyos 3dc7b6c3ee IR: preserve argument evaluation order more carefully
1. receivers should be evaluated before named arguments;
 2. just because an argument has no side effects doesn't mean it is not
    affected by the other arguments' side effects - in that case it
    should still be evaluated in source order.

 #KT-47660 Fixed
2021-07-13 21:23:15 +03:00