Commit Graph

110 Commits

Author SHA1 Message Date
Evgeny Gerashchenko 75853e3aad Saving only class files into incremental cache.
Fixed exception for JS modules.
2014-10-10 16:24:03 +04:00
Alexander Udalov c57441b51b Use '$' instead of '-' in package part class names
Otherwise some tools break (e.g. CheckMethodAdapter in ASM, used in generic
signature writer) because they expect class names to be Java identifiers.

Some tests fixed, some will be fixed in future commits
2014-09-26 10:22:20 +04:00
Evgeny Gerashchenko cb58d19e29 Minor. Clarified "compiled file" as "file to compile". 2014-09-24 16:31:48 +04:00
Evgeny Gerashchenko 060796997e Fixed clearing incremental cache for removed source files.
For writing system-dependent paths were used, for deleting were system-independent. That's why cache was not cleared on Windows.
2014-09-24 16:31:48 +04:00
Evgeny Gerashchenko 9af1c3e4dc Added automatic backup for debugging incremental compilation. 2014-09-24 16:31:47 +04:00
Evgeny Gerashchenko 853def0a10 Not clearing incremental cache on compilation error. 2014-09-18 16:50:20 +04:00
Alexander Udalov 1905401273 Move ClassId to module descriptors, closer to other names 2014-09-16 11:36:39 +04:00
Alexander Udalov 7595e32bb6 Use ClassId instead of JvmClassName in KotlinJvmBinaryClass
ClassId contains exact information about origin of the class (e.g. if '$' in
the class name denotes nested classes separator or just a character in the
name)
2014-09-15 19:30:51 +04:00
Alexander Udalov 1f8b2cef52 Read InnerClasses attribute value in FileBasedKotlinClass
Resolve names mentioned in class declarations based on this information
2014-09-15 19:30:51 +04:00
Alexander Udalov 9648c50ac9 Minor, refactor FileBasedKotlinClass factory method 2014-09-15 19:30:51 +04:00
Alexander Udalov fa39bf03a0 Extract abstract FileBasedKotlinClass out of VirtualFileKotlinClass
Add another implementation of FileBasedKotlinClass which was indirectly used in
jps-plugin (LocalFileKotlinClass)
2014-09-15 19:30:51 +04:00
Evgeny Gerashchenko 3226093fa6 Fixed redeclaration from incremental compilation. Added workaround for JPS bug. 2014-08-29 16:31:29 +04:00
Evgeny Gerashchenko 76864a3eb0 Minor. Clearer logic. 2014-08-29 16:31:29 +04:00
Evgeny Gerashchenko eae49e23d4 Fixed compilation. 2014-08-27 16:41:36 +04:00
Evgeny Gerashchenko 75ffc0f5ff Converted KotlinBuilder from Java to Kotlin 2014-08-27 16:35:06 +04:00
Alexander Udalov 994348b0ca Remove dependency on Maps from jps-plugin
It seems that there's no Guava in the classpath formed for JPS plugins

 #KT-5676 Fixed
2014-08-25 12:36:26 +04:00
Evgeny Gerashchenko 56fd9cec7a Minor. Renamed and cleaned CompilerServices -> Services. 2014-08-20 14:29:03 +04:00
Evgeny Gerashchenko 487f381287 Minor. Renamed and cleaned CompilerServices -> Services. 2014-08-20 13:46:31 +04:00
Evgeny Gerashchenko fe27b2264a Passing condition to prefer parent class loader as a parameter to preloader. 2014-08-20 13:46:30 +04:00
Evgeny Gerashchenko f3b7ae379f Passing services via type-safe container instead of map. 2014-08-20 13:46:30 +04:00
Evgeny Gerashchenko 184ddbc9e1 Removed passing incremental cache base dir via module script. 2014-08-20 13:46:29 +04:00
Evgeny Gerashchenko cbf8af2e88 Made compiler report source to output mapping when invoked from JPS. 2014-08-20 13:46:28 +04:00
Evgeny Gerashchenko 6dd56a08bd Removed storing module ids in incremental caches. 2014-08-20 13:46:28 +04:00
Evgeny Gerashchenko 3233317316 Passing class loader instead of factory to compiler. 2014-08-20 13:46:27 +04:00
Evgeny Gerashchenko e419c1a604 Moved incremental cache API to separate package. 2014-08-20 13:46:27 +04:00
Evgeny Gerashchenko 5fade9a5a6 Made incremental cache per-module.
Reused IDEA framework which manages per-module storage.
2014-08-20 13:46:26 +04:00
Evgeny Gerashchenko a4bbe2486c Fixed collecting source files for multiple modules in incremental compilation.
Error led to analyzing same file twice.
2014-08-04 13:38:37 +04:00
Evgeny Gerashchenko 7e6b05554e Always closing IncrementalCache after using. Fixed KannotatorJpsTest. 2014-07-22 21:18:16 +04:00
Evgeny Gerashchenko 829c25bcf9 Not writing compiler script path when in JPS plugin output.
XML script is removed after JPS plugin session anyway, so it's usually hard to check its contents. Also, it is redundant since -printArgs will write it anyway, so there is still possibility to debug.
2014-07-10 15:05:19 +04:00
Evgeny Gerashchenko 40703c125c Made it possible to run incremental compiler from IDEA.
Two guava functions used were replaced with custom tiny functions, because JPS plugin won't have guava in classpath.
2014-07-10 15:05:19 +04:00
Evgeny Gerashchenko 7212597e61 Optimized KotlinBuilder for targets without Kotlin. Checking dirty/removed files only. 2014-07-10 15:05:19 +04:00
Evgeny Gerashchenko 42cba1cc3c Ignoring not static final fields.
Added tests with class object of trait and val inside object.
2014-07-07 17:41:39 +04:00
Evgeny Gerashchenko aa9384a207 Made constants and inline functions maps class-file based. Otherwise data for different class files was overwritten: e.g. several classes in file, class and top-level callables in one source file.
Extracted superclass with common parts.
2014-07-07 17:41:39 +04:00
Evgeny Gerashchenko 2ac351928e Minor. Renamed parameter and corresponding variable. 2014-07-07 17:41:37 +04:00
Evgeny Gerashchenko aa9f7a73c9 Inline function changed – rebuild all chunk. 2014-07-07 17:41:36 +04:00
Evgeny Gerashchenko 6c8a9ba378 Basic detection for bytecode of inline functions in incremental compilation.
Basic rule is: bytecode of inline function changed -> recompile everything.
2014-07-07 17:41:35 +04:00
Evgeny Gerashchenko 1ce0e6cd3e Added exceptions for proguard: constants are used in JPS plugin. 2014-06-24 22:19:12 +04:00
Evgeny Gerashchenko 8479ca76b0 Added clearing proto data in incremental cache. 2014-06-24 22:18:18 +04:00
Evgeny Gerashchenko 5c49eb0a54 Writing class names in proto map (to avoid ambiguities) 2014-06-24 22:18:17 +04:00
Evgeny Gerashchenko fc7dceba5a Clearing constants data when removing file. 2014-06-24 22:18:16 +04:00
Evgeny Gerashchenko 7742755de4 Minor. Correct map with expected size creation. 2014-06-24 22:18:11 +04:00
Evgeny Gerashchenko 27273deeda Extracted package part map implementation to inner class. 2014-06-19 20:12:24 +04:00
Evgeny Gerashchenko 214c0fe4be Extracted constants map implementation to inner class. 2014-06-19 20:12:24 +04:00
Evgeny Gerashchenko 4e00df1fb4 Extracted proto map implementation to inner class and simplified. 2014-06-19 20:12:23 +04:00
Evgeny Gerashchenko e1f6fc55c5 Writing/reading constants map fully to avoid hash collisions. 2014-06-19 19:25:42 +04:00
Evgeny Gerashchenko 9f86441f95 Generalized method name. 2014-06-19 15:47:22 +04:00
Evgeny Gerashchenko 54f140e9e4 Minor cleanup 2014-06-19 14:53:13 +04:00
Evgeny Gerashchenko 219475be71 Processing all targets with removed files in chunk at once. 2014-06-19 14:49:16 +04:00
Evgeny Gerashchenko aa41ae09ed Merge remote-tracking branch 'origin/master' into incremental 2014-06-19 11:43:59 +04:00
Evgeny Gerashchenko f6129732a2 Writing incrementalCache attribute to <modules> element of xml module script 2014-06-19 01:03:59 +04:00