Commit Graph

1354 Commits

Author SHA1 Message Date
Sergey Rostov 3fe93760ee JPS: fix testJpsDaemonIC
1. Checking for COMPILE_DAEMON_CUSTOM_RUN_FILES_PATH_FOR_TESTS was moved to COMPILE_DAEMON_DEFAULT_RUN_DIR_PATH.

Looks like COMPILE_DAEMON_CUSTOM_RUN_FILES_PATH_FOR_TESTS was introduced incorrectly in 28a2d4727a.
Checking of this property was added in DaemonOptions.runFilesPathOrDefault, while DaemonOptions.runFilesPath was internally used in runFilesPathOrDefault and in many other places.
For example DaemonOptions.runFilesPath used to pass this option to daemon server.
So daemon was started with runFilesPath that ignores COMPILE_DAEMON_CUSTOM_RUN_FILES_PATH_FOR_TESTS.

2. JpsKotlinCompilerRunner._jpsCompileServiceSession was leaked between tests.

Fixed by extracting @TestOnly releaseCompileServiceSession() and calling it in tests tearDown()

3. The result of compileWithDaemon was ignored in compileWithDaemonOrFallback.

So, the fallback was never called, and the FAIL_ON_FALLBACK_PROPERTY was actually was never worked.
This was fixed. Also the message was improved to make it easier to find the original fail cause.

Original commit: 0c39358b5f
2018-11-28 10:46:57 +03:00
Sergey Rostov c075d6a911 JPS: Test for "Cyclically dependent modules should have same compiler"
KT-27285

Original commit: c06b000e8d
2018-11-28 10:46:57 +03:00
Sergey Rostov ea4256088a JPS: Report "Cyclically dependent modules should have same compiler" as build error rather than exception
#KT-27285 Fixed

Original commit: 3c8b15ca54
2018-11-28 10:46:57 +03:00
Sergey Rostov 6f683d5154 JPS, tests: Support multimodule mpp tests without steps
Original commit: ce4422e2ef
2018-11-28 10:46:58 +03:00
Sergey Rostov 37185c22d0 JPS: support KotlinResourceSourceRootType
Implementation is similar to KotlinSourceRootProvider.
This workaround is required since ResourcesTarget.computeRootDescriptors
supports only JavaResourceRoots.

#KT-27622 Fixed

Original commit: dcc47fd8ef
2018-11-26 09:29:49 +03:00
Sergey Rostov cfb54fa15c JPS, tests, minor: rename test files in modules for better readability
Original commit: 1301333e37
2018-11-26 09:29:38 +03:00
Sergey Rostov 87bc221012 JPS, minor: formatting
Original commit: 63c6e3e1b4
2018-11-26 09:29:38 +03:00
Sergey Rostov 71003b4e75 JPS, tests: update removeAndRestoreCompanion[WithImplicitUsages] test data
src/A.kt is affected by removed classes

Original commit: 32bd4d5936
2018-11-26 09:29:38 +03:00
Sergey Rostov f21aa7687d JPS: clear target local cache version file when caches are not required anymore
Makes changeIncrementalOption/incrementalOff test green

Original commit: 7cdd5257c8
2018-11-26 09:29:38 +03:00
Sergey Rostov 6e977bbd86 JPS, tests, minor: reformat test data for changeIncrementalOption/incrementalOff
Original commit: 1f162cfacf
2018-11-26 09:29:38 +03:00
Sergey Rostov 2d04f3d3e3 JPS, tests: update test data for cacheVersionChanged/withError
In this test only lookups caches are invalidated and only in first step.
module4 shouldn't be rebuilt since is compiled in step 1 and it is independent of all dirty modules.

Previously this module was rebuilt because of #KT-27044 which is fixed
by fe93ea2

Original commit: 4cd4e230bf
2018-11-26 09:29:38 +03:00
Sergey Rostov 2854838709 JPS, tests, minor: reformat test data for cacheVersionChanged/withError
Original commit: a508f53f9d
2018-11-26 09:29:38 +03:00
Sergey Rostov a650f09208 JPS, tests: Add docs for incremental/cacheVersionChanged tests
Original commit: 06b908d48f
2018-11-26 09:29:38 +03:00
Simon Ogorodnik f136807844 CLion/AppCode: Use default platform for libraries, if no LibraryKind is specified
To avoid Unknown platform JVM

Original commit: 2b3b5876aa
2018-11-23 22:27:23 +07:00
Sergey Rostov a9ce3284a4 JPS, minor: remove unused parameter
Original commit: dfe662364d
2018-11-22 08:40:32 +03:00
Sergey Rostov 36b8b9fbdb Fix updating complementary files map in case of compilation errors
#KT-27868 Fixed

Previously given dirtyFiles was removed from complementaryFilesMap
exactly on call of clearComplementaryFilesMapping. This causes fail
of next build in case of compilation error of previous build on JPS
(since complementary files not known on second build). The right way
to do it is removing (replacing) them only after successful
build.

This was working on Gradle since Gradle rebuilds whole module (project)
in case of build error.

Original commit: f70d01f657
2018-11-22 08:40:32 +03:00
Sergey Rostov c09054326a JPS: Add tests for mpp complementary files tracking after build error (KT-27868)
Original commit: cc9892a27d
2018-11-22 08:40:32 +03:00
Sergey Rostov 63e3b273de Add assertion for overwriting common sources flag
Wrong flag state causes compilation errors for optional expectation
(this flag is used to pass -Xcommon-sources)

Original commit: 84d6c1df5a
2018-11-22 08:40:32 +03:00
Sergey Rostov c6379aa533 Workaround for KT-28099 Duplicated dependency to common module
Duplicated dependencies causes duplicated source roots which in turns
causes duplicated files dirty state tracking.

Original commit: 5a25d3ef58
2018-11-22 08:40:31 +03:00
Alexey Tsvetkov a1881a7251 Avoid catching exceptions from workers in GradleKotlinCompilerRunner
Exceptions were catched in `KotlinCompilerRunner.runCompiler`.
When the method from superclass is not used in
`GradleKotlinCompilerRunner`, the superclass does not make much sense
anymore, so I turned it into util object.

Original commit: a41c2d759a
2018-11-14 11:41:43 +03:00
Alexey Tsvetkov 554e2bb7ad Use Workers API for NMPP tasks
This change enables parallel execution of compile tasks in NMPP projects
within a subproject.

    #KT-28155 In Progress

Original commit: 37dfe2b608
2018-11-14 11:41:43 +03:00
Anton Bannykh a783bf14cb JS: report inline suspend functions to IC
* Also inline suspend lambda'a
* Also use correct JsName's in exported suspend inline fun's
* Also use less unused imports

Original commit: 59009430e5
2018-11-07 12:11:01 +03:00
Sergey Rostov 2fedf572f9 JPS: Don't catch BuildDataCorruptedException as internal error.
BuildDataCorruptedException should be thrown up to `IncProjectBuilder`
to be handled by TeamCity.

#KT-27037 Fixed

Original commit: cce125b982
2018-10-27 16:08:38 +03:00
Sergey Rostov 12822fd468 JPS: Fix initialization order for case when all kotlin rebuild.
#KT-27792 Fixed

Original commit: 0b8d94a6b1
2018-10-27 16:08:16 +03:00
Vyacheslav Gerasimov 65de209e6f as34: Apply changes from AS 3.3
Original commit: 4076923a26
2018-10-26 18:25:20 +03:00
Alexey Sedunov 0d75fe186c MPP: Implement directory selection UI supporting non-JVM roots
#KT-27291 Fixed
 #KT-26696 Fixed

Original commit: 839d936918
2018-10-22 19:18:32 +03:00
Nikolay Krasko ab5e07f8e4 191: asm-all has 7.0-beta version in Intellij 191
Pass project to fetch extra parameters for asm-all work

Original commit: 17421ed14d
2018-10-19 19:16:21 +03:00
Sergey Rostov 7801d0e106 IC: move CacheVersionManager from build_common to jps plugin, tests
Original commit: bde6d841c1
2018-10-16 13:33:24 +03:00
Sergey Rostov 84ec60ba3e JPS, CacheAttributesManager: remove unused methods
Original commit: 0d1f7965d4
2018-10-16 12:29:58 +03:00
Sergey Rostov 085dbb537a IC: move CacheVersionManager from build_common to jps plugin
Original commit: d91f6f8c43
2018-10-16 12:29:58 +03:00
Sergey Rostov fe93ea2132 JPS: Fix updating cache format version for rebuilt targets by removing i/o optimization
Problem: previously, format-version.txt file was deleted while cleaning
target output on rebuild. Since directory was deleted, cache
attributesDiff stored in memory was not updated. This causes that on
saveExpectedStateIfNeeded does nothing.

The right way to fix it is move cache version format diff into
AbstractIncrementalCache, and override `clean()` method. But this is
hard to do for lookup storage, since used compilers set (jvm/js) will
known only after context init. This can be done by moving `expected`
attributes out of manager, but this is huge change for small benefit.

So, the optimal way for now is to write version for each build, even if
it is not changed.

#KT-27044 Fixed

Original commit: 5232f080d6
2018-10-16 12:29:58 +03:00
Mikhail Zarechenskiy 1803d2bed4 Use mutable lists before deserialization of project structure
The problem is that we perform xml deserialization using intellij
 mechanism which tries to clear target object if it isn't unmodifiable
 (see CollectionBinding.isMutableCollection). This check fails for
 kotlin.EmptyList (emptyList()) which then cause exception

 #KT-27321 Fixed

Original commit: e74469fdfc
2018-10-01 19:43:03 +03:00
Yan Zhulanow b147abbf53 MPP: Fix JPS tests
Move back the application check as only the class presence check is not sufficient.

Original commit: bbc73ec0e5
2018-09-27 21:31:30 +03:00
Nikolay Krasko f6530a4811 Update dictionary: +infos, -kompiler
Original commit: 07e305e5f4
2018-09-25 15:52:21 +03:00
Yan Zhulanow f46071e0f4 MPP: Rewrite work-around for JPS in a more safe way
Original commit: ff0b051a64
2018-09-24 17:54:24 +03:00
Yan Zhulanow dcf8eac781 Fix compatibility with JPS-standalone (KT-26777)
Original commit: 373ddcf55d
2018-09-17 20:08:27 +03:00
Alexey Sedunov 79e3b31ffc MPP: Allow 'implements' relation only within the same Gradle project
Also allow COMMON modules on the "implementer" side

Original commit: 619e2bc0db
2018-09-14 17:33:59 +03:00
Sergey Rostov 51ec98794b JPS, Tests: Encapsulate libraries root paths used in JPS tests
Original commit: 5fc2267665
2018-09-14 10:34:30 +03:00
Sergey Rostov 0a406e70eb JPS: code cleanup
Original commit: f1b97bb9be
2018-09-14 10:34:30 +03:00
Sergey Rostov 1424bd16d0 JPS: fix daemon RPC serialization
#KT-26809 Fixed

Original commit: 39c76c7b11
2018-09-14 10:34:30 +03:00
Ilya Chernikov cbc602a1f7 Implement support for non-kts scripts in gradle
#KT-26784 fixed

Original commit: a03bfb3561
2018-09-13 20:47:21 +02:00
Sergey Rostov 378cfbf442 JPS, Tests: migrate to master
Original commit: 9ae478e4fc
2018-09-13 20:40:21 +03:00
Sergey Rostov 3a7f2ff5c5 JPS, minor: rename KotlinModuleBuildTarget.updateSourcesList to computeSourcesList
Original commit: 81cf3fbc28
2018-09-13 20:30:35 +03:00
Sergey Rostov e47d796bd7 JPS, native: skip and report native modules as not supported
#KT-26648 Fixed

Original commit: 9e6d6ad9da
2018-09-13 20:30:35 +03:00
Dmitriy Dolovov bc766111a6 Move NativeIdePlatformKind to idea-jps-common
Issue #KT-26714 Fixed

Original commit: 0c94aefb87
2018-09-13 20:30:34 +03:00
Sergey Rostov 4cc52c1dff JPS, -Xcommon-sources: write tests
Original commit: c8351c3da0
2018-09-13 20:30:34 +03:00
Sergey Rostov ac5fbd4080 JPS tests: support _dependencies.txt and _steps.txt for better files sorting
Original commit: 313c27859a
2018-09-13 20:30:34 +03:00
Sergey Rostov 461df40078 JPS tests: support custom mpp multi module tests, rearrange test data files for more consistency, configure js modules with facet (not with stdlib dependency which should be deprecated), temporary mute some complex mpp tests
Original commit: 1b93f07a76
2018-09-13 20:30:33 +03:00
Sergey Rostov c85464d2ae JPS, -Xcommon-sources: don't iterate on all sources, use root info from DirtySourceFilesHolder. Cleanup code.
Also:
- Pass `-Xcommon-sources` argument to JS compiler.
- Calculate all sources list only when needed (after change it is not required to calculate common-sources)
- Remove `chunk: ModuleChunk` parameter from some `KotlinModuleBuildTarget` functions.

Original commit: 8cd3b46f05
2018-09-13 20:30:33 +03:00
Sergey Rostov d015b8b8a1 JPS MPP tests: Don't do anything for common modules, enable js ic, fix test data
Original commit: 359909dcff
2018-09-13 20:30:33 +03:00