Commit Graph

740 Commits

Author SHA1 Message Date
Alexander Udalov 5b9ee88b52 Remove --add-opens options to workaround Java 9 visibility checks
These options are no longer needed because the problematic code in
intellij-core that was accessing these private APIs has been dealt with
in the 171 branch.

The remaining options in "Codegen Tests" run configurations are needed
because of reflection usage on JDK internals in KtUsefulTestCase
2017-07-06 12:50:04 +03:00
Alexey Andreev 7b52300287 Remove unnecessary system property from JS tests launch configuration
Replace it with property that allows to disable DCE tests.
This is useful for temporary disabling DCE without examining source
code to find property name.
2017-06-28 10:48:02 +03:00
Alexander Udalov 85d1bef351 Add reflection.jvm module sources to kotlin-reflect library
To be able to debug classes in kotlin-reflect via reflection.jvm's
sources when running tests
2017-06-22 00:08:38 +03:00
Alexey Andreev 174068c462 Add JS source map parser and remapper
JS source map remapper takes parsed source maps
together with JS AST with correct JS positioning information
and converts the latter into Kotlin positioning information
2017-06-07 11:13:51 +03:00
Alexander Udalov 5e6db3d4a6 Fix broken source and class roots of project libraries 2017-06-06 19:52:42 +03:00
Alexey Andreev e2c2fcf1ff Generate EXPECTED_REACHABLE_NODES directive on JS box tests 2017-05-26 18:20:20 +03:00
Alexey Andreev 9e89213d66 Prototyping DCE tool for JS 2017-05-26 18:20:15 +03:00
baratynskiy 5eea3b6569 Introduce experimental -Xuse-javac compilation mode
In this mode, javac AST and Symbol files are used during
Kotlin compilation instead of PSI / binary stuff.
Later, they are reused for Java file compilation.
javac in this mode is integrated into kotlinc.
2017-05-17 17:48:17 +03:00
Yan Zhulanow ce145c015d Android Extensions: rename plugin JAR file names in plugin artifact
Rename compiler plugin to 'android-extensions-compiler' in order to have the same name in dist and IDEA plugin.
Rename IDEA plugin to 'android-extensions-ide' to make things clear.
2017-04-28 19:43:36 +03:00
Zalim Bashorov 794e65b5d6 KJS: remove Rhino library 2017-04-26 13:07:35 +03:00
Mikhael Bogdanov 9d021ee1ac Add infrastructure to run codegen test on jdk 6
Perform actual codegen test execution in separate process.
One server process is used to run all codegen tests
through socket connection.
2017-04-25 09:31:17 +02:00
Zalim Bashorov d64140a11c Add jars to intellij_core explicitly
It prevents unintended using jars from core dir,
also, it allowis us gradually remove a dependency on some jars.
2017-04-19 20:18:20 +03:00
Ilya Chernikov ea71d57808 Use script-runtime properly in IDEA project:
use it from the installed plugin for dependent modules (frontend)
use it from bootstrap in the plugin being built
also drop unused daemon-client from the plugin

This makes it consistent with ant build and allow building idea project
without prior ant dist
2017-04-19 15:22:15 +02:00
Zalim Bashorov 51e84f7ce4 Move some script related part of frontend to separate module to avoid using kotlin-reflect.jar in frontend module
Main goal is get rid of kotlin-reflect.jar from modules what required for minimal compiler.jar which can compile Kotlin only to JS to make it smaller.
2017-04-17 18:18:35 +03:00
Mikhael Bogdanov 46cdf0215e Add codegen tests with substituted bytecode version (1.8->1.9) 2017-04-17 13:22:04 +02:00
Mikhael Bogdanov 7613ec54f5 Add run configuration to run common java backend tests under jdk 9
With jvmTarget 1.6 and 1.8
2017-04-13 17:54:39 +02:00
Mikhael Bogdanov a8382c25b2 Add run configuration to run common java backend tests on jdk 8 with jvm target 1.8 2017-04-13 17:54:38 +02:00
Denis Zharkov 1596f19fd7 Add javaslang library to kotlin-plugin artifact
This change should be contained in 5e449fdc02
But I've forgotten to apply it
2017-04-11 12:52:52 +03:00
Denis Zharkov 5e449fdc02 Optimize control-flow analysis by use of persistent maps
The case that it's worth to optimize is functions
with a lot of variables.

After debugging it's recovered that control-flow works nearly
O(n * m) where n is pseudocode size and m is a number of variables:
the algorithm performs O(n) copies of hashmap of size O(m)

Persistent maps should help because we don't need to perform a
copy of them, so the expected performance after the change is applied
is O(n log m)

We've tried pcollections and javaslang, and the latter one has demonstrated
better results

See results before and after optimizations
before:
https://github.com/dzharkov/kotlin-compiler-benchmarks/blob/3da7ba45a704969653d70b50995f730e968540d8/reports/benchmarks-many-vars-2017-03-14.txt

after with pcollections:
https://github.com/dzharkov/kotlin-compiler-benchmarks/blob/3da7ba45a704969653d70b50995f730e968540d8/reports/benchmarks-many-vars-persistent-optimizations-2017-03-17.txt

after with javaslang:
https://github.com/dzharkov/kotlin-compiler-benchmarks/blob/d22a871b175b291fb337b51ef6465ba70bbfd96c/reports/benchmarks-many-vars-javaslang-2017-04-07.txt
2017-04-11 11:26:11 +03:00
Dmitry Jemerov 9a215bfec6 Show idea.log when running IDEA from IDEA 2017-04-06 19:00:32 +02:00
Mikhael Bogdanov 16d95d803f Use jdk 1.8 to run android tests 2017-04-03 19:20:52 +02:00
Simon Ogorodnik 6cbeffe4b2 Add kotlinx.coroutines to IDEA dependencies
Add some cool coroutine-based stuff
Like CoroutineDispatcher for EDT
2017-03-30 18:48:37 +03:00
Dmitry Jemerov e66d5d6e1a Advance Java language level 2017-03-29 17:10:22 +02:00
Alexander Udalov 6d69e37fe9 Update to ASM 6-alpha from intellij 171
Will be needed to read module-info files
2017-03-24 19:46:35 +03:00
Alexander Udalov c99b03d6b3 Remove unused library 'intellij-core-analysis' 2017-03-24 19:46:35 +03:00
Dmitry Jemerov 961d83fcd4 Bump code cache size (64m is no longer enough under JDK 8) 2017-03-24 16:40:23 +01:00
Dmitry Jemerov 859e3e17b4 Bump code cache size (64m is no longer enough under JDK 8) 2017-03-24 16:37:11 +01:00
Dmitry Jemerov 3caf7f112a Disable JAnsi in tests
Workaround for https://github.com/fusesource/jansi/issues/66
2017-03-22 16:22:40 +01:00
Ilya Chernikov 4b430b49a7 Implement source sections compiler plugin
allows to compile only parts of the source files, denoted by top-level
"sections" (function with lambda param calls), but preserving original
file line/column numbers for easier diagnostics. Allow e.g. to compile
gradle "buildscript" section without preprocessing original file in
advance. See tests for examples.
2017-03-21 16:30:46 +01:00
Dmitry Jemerov f0b7891d41 Turn off API usage inspection 2017-03-21 14:44:20 +01:00
Alexander Udalov 2d1b15b6fb Drop usages of '-XX:MaxPermSize' in run configurations on JDK 8 2017-03-21 16:09:18 +03:00
Dmitry Jemerov 2adacf74ac Reduce -Xmx of "All Non-Compiler Tests" configuration
This should prevent VM crashes on TeamCity
2017-03-20 18:45:50 +01:00
Dmitry Jemerov 12fc89f35d Update to 171.SNAPSHOT to pick up fix for IDEA-169570; fix compilation 2017-03-20 18:45:41 +01:00
Nikolay Krasko 9f51b12193 Update guava 19.0 sources jar 2017-03-20 18:45:32 +01:00
Dmitry Jemerov 036bfed984 Add resources_en.jar to properties plugin classpath 2017-03-20 18:45:18 +01:00
Nikolay Krasko a63953432e Set "weak warning" severity for SameParameterValue inspection 2017-03-17 17:27:54 +03:00
Alexey Sedunov 73b879ea89 Misc: Include cli-parser 1.1.2 sources into the project under different package and drop original library dependency
This would allow building the project with Kotlin JPS plugin on TeamCity where older library takes precendence due to appearing earlier in JPS classpath
2017-03-14 15:33:06 +03:00
Vyacheslav Gerasimov a907ec92b5 Implement Android resource reference folding
#KT-15451 Fixed
2017-03-03 16:18:20 +03:00
Alexander Udalov d124912c91 Specify language / API version in .idea/kotlinc.xml 2017-02-22 14:45:57 +03:00
Dmitry Jemerov 5dc178460e Update UAST to 1.0.10; move uast-kotlin tests to Kotlin project 2017-02-08 11:29:53 +01:00
Alexey Sedunov 4325632b3e Kotlin Facet: Always parse argument string to proper compiler arguments bean
#KT-16137 Fixed
 #KT-16157 Fixed
 #KT-16206 Fixed
2017-02-08 11:56:59 +03:00
Alexey Sedunov 591910a216 Kotlin Facet: Import compiler arguments from Gradle project
#KT-15819 Fixed
 #KT-15929 Fixed
2017-01-26 18:06:14 +03:00
Nikolay Krasko 5d08e82aaf Fix look up for breakpoint in crossinline lambdas in android (KT-15282)
#KT-15282 Fixed
2017-01-16 13:00:46 +03:00
Mikhael Bogdanov d8b7c7bc34 Added run configuration for Java 8 test on jdk 9 2017-01-13 13:52:58 +01:00
Zalim Bashorov cb4c3ed686 KJS: rename "js.dart-ast" module to "js.ast" 2017-01-09 17:13:23 +03:00
Yan Zhulanow 7152c9c789 Use uast-common and uast-java as an external dependency 2016-12-30 18:41:45 +03:00
Dmitry Jemerov 514fc02938 Propagate 'implement' dependencies from Gradle to IDEA project model 2016-12-22 20:57:24 +03:00
Ilya Chernikov 4f2410ffe0 Fix TC compilation and kapt3 tests compilation 2016-12-20 10:02:01 +01:00
Alexey Tsvetkov f40a3eff20 Move IC from Gradle to compiler
Reasons for moving:
1. Integration with Kotlin daemon for Gradle.
Gradle bundles Kotlin compiler (kotlin-compiler-embeddable) since Gradle 3.2.
There is no plugin isolation in Gradle, so strange compilation errors/exceptions may happen.
We decided to fix this problem by compiling out-of-process using Kotlin daemon.

Reasons for moving IC to the compiler:
* Better isolation from Gradle process.
* Incremental compilation logic is not scattered across two process and multiple modules.
* Makes it possible to implement standalone CLI IC
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 896d81143c Introduce compiler-runner module 2016-12-19 22:46:12 +03:00