Commit Graph

1289 Commits

Author SHA1 Message Date
Yan Zhulanow dc022aef69 MPP: Refactoring, extract IDE platform kinds, allow to add custom platforms
Original commit: d00f5b335a
2018-08-31 05:14:15 +05:00
Dmitry Savvinov fd8083bb4b Always pass languageVersion explicitly to JPS compiler
When 'languageVersion' isn't passed explicitly, compiler will choose
'LATEST_STABLE'.

This may lead to spurious migration of a project to the next major
version after plugin update (e.g. when user had project of major
version X and then installed plugin of version X+1 -- in such case,
meaning of "no language version" suddenly changes).

So, we set it to RELEASED_VERSION, which is exactly the version
that is safe to use as the fallback.

Original commit: b23bf371cf
2018-08-30 16:21:43 +03:00
Alexander Podkhalyuzin f88c703b93 When version is not defined we need to fallback to released
There are few more such places. Better fix would be to avoid
situation, when we need to fallback. So in every project these
settings are defined. It means "Latest stable" setting is not good.

#KT-26364 Fixed

Original commit: 69a0fedd9f
2018-08-30 16:21:40 +03:00
Alexey Sedunov 63372baea9 Configuration: Do not auto-advance "Latest Stable" to pre-release version
#KT-25611 Fixed

Original commit: 5ac5a8d723
2018-08-30 14:57:39 +03:00
Alexey Sedunov b48d055334 Configuration: Drop coroutines for language >= 1.3
#KT-25681 Fixed

Original commit: a490781213
2018-08-30 14:57:37 +03:00
Ilmir Usmanov 1d1d959e27 Add warning on -Xcoroutines flag use
The only case when warning is not reported is -Xcoroutines=default.
But this is OK until the flag is removed completely.

Original commit: cf1f194f8b
2018-08-30 14:55:50 +03:00
Alexander Udalov 9c21dae5e2 Introduce -Xcommon-sources and pass it correctly from build tool plugins
#KT-25196 In Progress

Original commit: 0f003802fe
2018-08-21 12:49:10 +02:00
Alexey Tsvetkov bf4565259b Use same system property to avoid deleting module file in JPS and Gradle
Original commit: d09629972a
2018-08-20 23:41:11 +03:00
Alexey Tsvetkov 1ab98f5817 Add test for KT-26064
Original commit: 3b4a49eebf
2018-08-17 15:27:00 +03:00
Alexey Sedunov 135fcbcb58 MPP: Use new MPP model to find modules for 'expect'/'actual'
#KT-25955 Fixed

Original commit: 49b5695664
2018-08-13 19:03:03 +03:00
Sergey Rostov c475e35489 JPS: Support new MPP model.
Original commit: 839a6b5e60
2018-08-07 15:59:43 +03:00
Alexey Sedunov 5b1ea61cd1 Gradle: Implement new MPP model import
Original commit: ecf607d4fa
2018-08-07 15:59:41 +03:00
Vyacheslav Gerasimov 350e68b20f as33: Add AS 3.3 bunchset built with AS 3.3 C4
Original commit: 8fc0c1d7b0
2018-08-02 20:53:17 +03:00
Vyacheslav Gerasimov a15011db12 Remove 172 bunchset
Original commit: a2bf417d75
2018-08-02 19:32:18 +03:00
Alexey Tsvetkov dfcd4692ac Minor: fix 172 patchset
Original commit: 76b9b579bc
2018-07-23 23:10:14 +03:00
Alexey Tsvetkov a72d505153 Add test for KT-25540
Original commit: ff35d509e6
2018-07-23 15:43:17 +03:00
Alexey Tsvetkov 1602409341 Add multi-module JS IC tests with JPS
Original commit: 11977cc1c1
2018-07-23 15:43:17 +03:00
Alexey Tsvetkov 7a26158177 Minor: rename setIsEnabled->setIsEnabledForJvm
Original commit: 3227300f18
2018-07-23 15:43:17 +03:00
Alexey Tsvetkov 7f3cda4894 JS IC: track lookups from libraries
Otherwise we don't track lookups from other modules

    #KT-25540 fixed

Original commit: 8f002fdb43
2018-07-23 15:43:17 +03:00
Alexey Tsvetkov 35c62ecaec Report info message when JS IC is enabled in JPS
Original commit: c8c0c773fb
2018-07-23 15:43:17 +03:00
Alexey Tsvetkov ad7f554208 Use separate system properties to control IC for JVM and JS
Also this commit effectively disables JS IC by default

     #KT-25563 fixed

Original commit: 0b18380770
2018-07-23 15:43:16 +03:00
Alexander Udalov 0a50498536 Add BinaryVersion to DeserializationContext
This will be useful to implement version-dependent deserialization,
which is needed for gradual fixes of issues in metadata

 #KT-25120 In Progress

Original commit: 4122021090
2018-07-18 17:58:46 +02:00
Alexander Udalov fbe3053f88 Simplify DefaultImportProvider, introduce "low priority imports"
Previously, packages `java.lang` and `kotlin.jvm` were imported on JVM
by default on the same rights, causing problems when the same classifier
existed both in `java.lang` and `kotlin.jvm`. Since the only known case
of such conflict were type aliases to JVM classes, the corresponding
classes (expansions of those type aliases) were manually excluded from
default imports. This made the code in DefaultImportProvider complicated
and resulted in multiple problems, regarding both correctness and
performance (see d8e591f873, 930319281f, 5a048fea6b).

This change adds a new concept, a "low priority import", and treats
`java.lang` as such. Since these imports are now separated from the rest
of default imports in LazyImportScope via secondaryClassImportResolver,
conflicts between classifiers are handled naturally: the one from
`kotlin.jvm` always wins (unless the one from `java.lang` is imported
explicitly, of course). This approach is simpler, safer and does not
require any memory to cache anything.

Skip ResolveToJava.kt test for javac-based resolve; it now fails because
of a weird issue which I didn't have time to investigate (this is OK
because it's a corner case of an experimental functionality)

Original commit: 1f0fb4823f
2018-07-16 13:45:11 +02:00
Ilya Chernikov 7b039f10c5 Add kts to supported file extensions to the DirtySourceFilesHolder as well
allows jps to compile scripts along with sources,
finally fixes #KT-22611

Original commit: 563e4c9e57
2018-07-10 08:43:51 +02:00
Ilya Chernikov e5e591fbc8 Create proper constructor in script descriptor
allows to resolve calls to scripts in compiler (but not in the IDE yet)
Some refactorings on the way

Original commit: 9453834fb1
2018-07-10 08:43:50 +02:00
Alexey Tsvetkov 3ccf89be00 Register kotlin_module as output of all files
Previously kotlin_module was registered as output
only for files containing top-level declarations

Original commit: 5760b8cf8b
2018-07-09 15:48:11 +03:00
Alexey Tsvetkov 20a147e476 Fix compilation of plugin projects in JPS
#KT-25218 fixed

Original commit: f438b7501c
2018-07-04 14:54:07 +03:00
Alexey Tsvetkov 08a6ac910d Build: remove testRuntime dependency on ":kotlin-compiler:dist"
Original commit: 1dea01a479
2018-07-02 22:36:35 +03:00
Alexey Tsvetkov 332134adaa Do not compile jps tests for android studio
I accidentally enabled compilation in one of my previous commits

Original commit: ece991639e
2018-06-29 20:16:53 +03:00
Alexey Tsvetkov 3657dba063 Fix test dependencies in jps-plugin
Otherwise tests fail on clean checkout

Original commit: 3a7c674957
2018-06-28 22:03:10 +03:00
Alexey Tsvetkov 94f8210340 Minor: reword progress message
#KT-24936 fixed

Original commit: cdfcedb897
2018-06-19 15:43:24 +03:00
Vyacheslav Gerasimov d4779fcfb9 Fix test compilation for AS branches
There is no devkit is AS

Original commit: 020d941c27
2018-06-08 15:26:47 +03:00
Sergey Rostov 2725c7b9ae 173: jps, mpp: fix AbstractIncrementalJpsTest.kt.173
Original commit: c71357dd76
2018-06-08 13:50:05 +03:00
Sergey Rostov fe9eb0310f jps: add common source roots to the final platform modules as a workaround for absence of incremental k2metadata compiler
Original commit: 5455b6c0c0
2018-06-08 09:46:56 +03:00
Sergey Rostov 6b7f0f3c6e jps, daemon: pass incremental compilation flag from jps process to daemon
Original commit: e831964871
2018-06-08 09:46:52 +03:00
Sergey Rostov 661f974e99 jps: checkCachesVersions for js and common (BuildMetaInfo save/check)
Original commit: 5a2ed364fe
2018-06-08 09:46:49 +03:00
Sergey Rostov c01e0935ba jps: improve KotlinDirtySourceFilesHolder
Original commit: 3cfb200e07
2018-06-08 09:46:48 +03:00
Sergey Rostov 60de938f22 jps: (minor) fix java module detection
Original commit: b5acb83325
2018-06-08 09:46:47 +03:00
Sergey Rostov 3a5610bb21 jps, js: Fix exception on rebuild js module
Original commit: 5478a552ed
2018-06-08 09:46:46 +03:00
Sergey Rostov 8b4813c014 jps: Don't create cache for common modules (KOTLIN-CR-2028)
Original commit: d75a2be31b
2018-06-08 09:46:45 +03:00
Sergey Rostov 304a537c68 jps: fixes for KOTLIN-CR-2028
Original commit: c24aa13f12
2018-06-08 09:46:44 +03:00
Sergey Rostov 53f04d0d19 jps: fix mergedCompilerArguments getter (mergedCompilerArguments)
Original commit: 40b9fa88b7
2018-06-08 09:46:42 +03:00
Sergey Rostov a1fa9ffdbb jps: implement mpp and js daemon compiler services
#KT-24635 fixed

Original commit: 1cbef873ec
2018-06-08 09:46:41 +03:00
Sergey Rostov e302f27635 jps, mpp: fix marking expect/actual complementary files as dirty
This files should be marked as dirty for current round, not next

Original commit: b2fedd7b1e
2018-06-08 09:46:40 +03:00
Sergey Rostov 1ce29e2a73 jps: support KotlinSourceRootType
KotlinSourceRootType will added with KotlinSourceRootProvider (ex KotlinMppCommonSourceRootProvider).
New target type (with computeAllTargets) is not possible because ModuleBuildTarget is final.

#KT-24506 fixed

Original commit: 65bdfa72c1
2018-06-08 09:46:39 +03:00
Sergey Rostov 60494f27c6 jps, mpp: temporary disable mpp tests
Original commit: b2f58ad9c3
2018-06-08 09:46:38 +03:00
Sergey Rostov 5f818789cf jps: support multiplatform incremental compilation for jvm and js
- support common modules metadata compilation under flag (it is not required since all common source roots are included transitively for now)
- introduce expect actual tracker in jps: move implementation from gradle to build-common
- support js incremental compilation: move implementation from gradle to build-common

Original commit: 0eee2729cd
2018-06-08 09:46:37 +03:00
Sergey Rostov a64a2f694f jps: support dev kit module types (and all other ModuleBasedBuildTargetType). fix brunch 172
Original commit: 098e51d104
2018-05-24 14:59:46 +03:00
Sergey Rostov 79bf8f7c98 jps: support dev kit module types (and all other ModuleBasedBuildTargetType)
#KT-24500 fixed

Original commit: ec5110e1f4
2018-05-24 11:12:01 +03:00
Alexey Tsvetkov bc37e46187 Improve JPS progress messages
#KT-9218 fixed

Original commit: 7f865565a6
2018-05-18 23:50:08 +03:00