Commit Graph

39 Commits

Author SHA1 Message Date
Zalim Bashorov 29e7bcce65 Add explicitly the proguard rule to save JAXPParserFactory#createParser
And remove obsolete rules.
2017-04-19 20:18:21 +03:00
Ilya Chernikov c91a3f8bf0 Add sam-with-receiver and source-sections compiler plugins to maven
rename source-sections compiler plugin jar in the dist (add kotlin- prefix),
according to the agreed naming scheme for the artefacts. (The renaming of the
other plugins should follow.)
in addition configure proguard to retain VirtualFile members, since they
are used in the source-sections plugin
2017-04-19 15:22:15 +02: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
Yan Zhulanow bb0a46ac17 Kapt3: Ignore inner classes with clashing names (KT-16458)
Ignore classes (and references to such classes in declaration signatures) if one of the containing classes has the same simple name. This is forbidden in Java, thus should not be present in kapt source stubs.
2017-03-22 22:02:30 +03:00
Alexander Udalov 7dfa3bea18 Update tools & libraries projects to use JDK 8 when needed 2017-03-21 17:45:53 +03:00
Alexander Udalov d4500878cb Do not strip some classes from xercesImpl.jar in compiler.pro
Note that with this config, the kotlin-compiler.jar's size is increased
by 1.5Mb

 #KT-16968 Fixed
2017-03-21 13:03:19 +03:00
Dmitry Jemerov 3a8cf68541 Keep class file version during shrinking; generate Java 8 bytecode
sometimes
2017-03-20 18:45:59 +01:00
Dmitry Jemerov 4cae0538a8 Don't warn about ElementTraversal
IDEA now (since commit 6ff87c6) uses this class to build classpath
for Xerces, and we don't use Xerces
2017-03-20 18:45:59 +01:00
Alexey Tsvetkov 6d958eb32b Fix dist by ignoring some library classes during compiler shrinking 2017-03-20 18:45:20 +01:00
Alexey Tsvetkov 470a7706aa Fix build 2017-01-26 15:49:40 +03:00
Yan Zhulanow bd9d33fe44 Kapt3: Replace kapt2 in Ant and Maven artifacts with kapt3 2016-12-05 19:57:34 +03:00
Alexander Udalov be8b1b7dfd Exclude org.jetbrains.kotlin.container.** from proguard
To mitigate #KT-14824
2016-11-16 19:07:03 +03:00
Dmitry Jemerov ab0af43a6a Update proguard file for compatibility with new Snappy version in IDEA 162-SNAPSHOT 2016-11-11 18:15:29 +01:00
Ilya Chernikov 846797ff61 Switch to templates in the separate script runtime 2016-10-12 15:38:52 +02:00
Nikolay Krasko 06a0ebe352 No jsr166e.jar anymore in br146 2016-09-20 15:10:35 +03:00
Yan Zhulanow 407af3a0e5 Kapt: Gradle plugin for the new kapt
(cherry picked from commit f4fc8f1)
2016-08-29 16:31:16 +03:00
Nikolay Krasko d9b116c6d6 Remove net/sf/cglib/ classes from Kotlin compiler (KT-13565)
(cherry picked from commit eb160a2)

 #KT-13565 Fixed
2016-08-25 15:35:10 +03:00
Alexander Udalov 7e38b93d80 Use protobuf with renamed packages, pack to IDEA plugin
Update GenerateProtoBuf.kt to also regexp-replace com.google.protobuf with
org.jetbrains.kotlin.protobuf in generated Java sources

 #KT-12581 Fixed
2016-06-14 14:17:22 +03:00
Alexey Tsvetkov 5fead88ced Shade in kotlin-android-extensions 2016-06-07 14:42:39 +03:00
Alexander Udalov a300dee61f Keep Native2AsciiCharsetProvider from being stripped by proguard
#KT-12549 Fixed
2016-05-31 14:28:25 +03:00
Nikolay Krasko 8325c1a2df Setup proguard rules for new xstream library 2016-04-05 00:39:46 +03:00
Nikolay Krasko 31484784bb Suppress warnings from PsiClassUtil for findModulesWithClass method 2016-04-05 00:39:46 +03:00
Nikolay Krasko aa6def5b86 Suppress warnings from SVGLoader 2016-04-05 00:39:46 +03:00
Ilya Chernikov b470bdda23 Class added to proguard - was missing in gradle plugin when incremental compilation is on
KT-8487
2016-03-03 16:45:18 +03:00
Ilya Chernikov ebae665b78 Adding missing keep statement to proguard config
KT-8487
2016-03-03 16:45:13 +03:00
Alexander Udalov 70e847b794 Reimplement generation of intrinsic array constructors
Instead of relying on a class from the runtime (which thus cannot be deleted
from the runtime ever), rely on a class from the compiler instead. This has a
minor downside: that class is compiled by the bootstrap compiler, so if codegen
of 'for'-loops or something else used in that class changes, it won't
immediately have an effect on a local working copy (on the build server
everything will be fine because of a 2-step building process).

In the future it may make sense to just manually create all the bytecode
instructions and dump them into a MethodNode. Currently the amount of work
needed for that seems rather significant
2016-01-28 03:10:39 +03:00
Ilya Chernikov 3615ca5b02 build.xml: add kotlin-build target 2016-01-21 19:47:08 +03:00
Dmitry Jemerov aacf2ad68c proguard: keep all JNA methods (some of them are accessed from native code) 2016-01-20 14:34:50 +01:00
Dmitry Jemerov e4903c1a47 proguard: don't exclude native libraries when repackaging jna.jar (IDEA core code now accesses FileSystemUtil which uses JNA) 2016-01-19 10:51:21 +01:00
Ilya Chernikov 63e1fa4cc0 Simplifying cleanup in gradle plugin after introducing ZipHandle.clearFileAccessorCache method in the platform, minor refactoring 2015-11-03 14:18:21 +01:00
Nikolay Krasko 881f1fd75e Suppress warning in proguard about jna classes 2015-09-28 11:38:08 +03:00
ligee 5b9094301c Fixing minor issues after review
(cherry picked from commit 928769e)
2015-08-11 13:16:07 +02:00
ligee 0a9f98545b Dropping custom classloading again, now without creating a transparent one, restoring cleanup for gradle <2.4 to minimize leaks under daemon, adding diagnostics
(cherry picked from commit a3b7be4)
2015-08-11 13:16:00 +02:00
Natalia Ukhorskaya fbe192b75f Suppress warnings about org.imgscalr.Scalr class 2015-08-07 19:14:04 +03:00
Natalia Ukhorskaya 973fa21fe9 Include snappy-in-java-0.3.1.jar in kotlin-compiler 2015-07-20 12:56:43 +03:00
Evgeny Gerashchenko 55dad40650 Added reflect.jar as dependency for proguard. Fixed build. 2015-06-24 20:51:17 +03:00
Nikolay Krasko 66a4e0f299 Mute error about org.iq80.snappy.Snappy 2015-06-23 15:59:34 +03:00
Nikolay Krasko e4c7f9bc22 Keep NullableNotNullManager methods for J2K converter 2015-06-08 15:21:03 +03:00
Alexander Udalov 803fb82b8b Minor, move compiler.pro out of project root 2015-06-01 19:23:09 +03:00