Alexander Udalov
7febd846e8
Export 'intellij-core' in module 'frontend'
...
Remove intellij-core from dependencies of modules which already depend
on frontend or any module that exports frontend (such as frontend.java)
2017-06-06 14:29:26 +03:00
Alexander Udalov
2ed027219c
Remove dependency of module 'frontend' on 'plugin-api'
...
This breaks the circular dependency between them
2017-06-06 14:29:25 +03:00
Alexander Udalov
1273ac9647
Remove dependency of module 'descriptors' on 'deserialization'
2017-06-06 14:29:21 +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
Zalim Bashorov
05c3e7e81d
Don't export kotlin-reflect form util module and add it explicitly where it's required.
...
Also, remove kotlin-reflect form container 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:31 +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
Ilya Chernikov
88652154c9
Port compiler to the script-runtime with script base classes
2017-04-06 10:02:45 +02:00
Ilya Chernikov
846797ff61
Switch to templates in the separate script runtime
2016-10-12 15:38:52 +02:00
Stanislav Erokhin
5bb1f3b2ea
Create resolution module.
2016-02-26 00:39:37 +03:00
Sergey Mashkov
790524e391
Add library kotlin-test to IDEA project
2015-12-18 22:17:47 +03:00
Pavel V. Talanov
7130e9f881
"container" module exports "javax.inject" dependency
2015-08-19 21:18:34 +03:00
Ilya Ryzhenkov
5db541ee24
Add container module with implementation of di based on java reflection
...
Initial implementation by Ilya Ryzhenkov
Renovation, optimization, integration and removal of unused features by Pavel Talanov
2015-06-26 15:21:39 +03:00
Alexander Udalov
32c3bb8c7f
Extract module 'deserialization' out of 'serialization'
...
'deserialization' stays in core because it's needed both in compiler and
reflection, but 'serialization' is used only in the compiler
2015-03-30 19:44:17 +03:00
Andrey Breslav
dca186e94d
plugin-api module introduced
2015-02-26 15:25:38 +03:00
Alexander Udalov
5903b8c4a7
Reorder and optimize dependencies between modules and libraries
...
- drop 'kotlin-runtime' and other dependencies which are exported by
other modules ('util' and 'util.runtime' in case of 'kotlin-runtime')
- make all Kotlin modules from the compiler depend on 'util' for clarity
- put 'util' and 'util.runtime' to the bottom of the list everywhere: when
kotlin-runtime gets reflection, classes from core/ should have higher
priority than their previous versions from kotlin-runtime.jar
2015-01-28 19:58:35 +03:00
Alexander Udalov
e46c54f514
Serialize built-ins on 'ant dist'
...
Don't store binary data in the repository anymore. From now on any test on the
compiler requires that 'ant dist' was executed at least once since the last
update of the built-ins
2014-01-27 18:33:49 +04:00
Alexander Udalov
5119afae52
Extract 'descriptors' module
2013-09-18 18:45:34 +04:00
Andrey Breslav
b7966179f5
Deserialize built-ins
2013-08-23 17:39:04 +04:00
Andrey Breslav
0b65b8c4d3
(Circular) dependency between frontend and serialization
2013-08-23 17:39:01 +04:00
Andrey Breslav
ab18b12165
DFS utility class factored out of CommonSupertypes
2012-09-11 20:52:10 +04:00
Andrey Breslav
98887a09d1
Generating Kotlin sources for functions and tuples
2012-03-28 13:15:13 +04:00
Andrey Breslav
93fcd7d1f2
Dependency Injection: GUICE replaced by custom code generation
2012-03-13 19:44:35 +04:00
Stepan Koltsov
997fbb60a3
using guice to wire TopDownAnalyzer beans
...
attempt 2
2012-03-10 00:54:16 +04:00
Andrey Breslav
a94b77ffc9
Revert GUICE introduction
2012-03-07 12:58:37 +04:00
Stepan Koltsov
c3e2fc947d
using guice to wire TopDownAnalyzer beans
2012-03-07 04:09:12 +04:00
Maxim Shafirov
f541cce098
Get full/core versions of IDEA using update_dependencies.xml. Don't use plugin SDK anymore.
2012-01-20 19:17:32 +04:00
Andrey Breslav
116f35c650
"compiler" folder created
2011-09-09 21:47:22 +04:00