Alexander Korepanov
9e780afdca
[JS IR] Rework incremental cache invalidation
...
Replace loading the whole world IR with loading only exported (reachable) IR.
For that purpose the direct and inverse dependency graph is used.
It is stored in a cache directory and the cache updater keeps it up to date.
If after loading it is found that other files must be also implicitly rebuilt
(see rebuilt reasons below), IR for that files also will be loaded.
This algorithm repeats until the number of implicitly rebuilt files is not 0.
More rebuilt reasons (dirty state) have been added:
- added file: this is a new file;
- modified ir: ir of the file has been updated;
- updated exports: exports from the file have been added or removed
(e.g. a function has been used from another file);
- updated inline imports: imported inline function has been modified
(transitively);
- removed inverse depends: a dependent file has been removed;
- removed direct depends: a dependency file has been removed;
- removed file: this file has been removed.
Incremental cache tests has been refactored:
- The supporting of all rebuilt reasons (dirty states) has been added;
- New file name format "*.$suffix.kt" for the test steps has been allowed,
so the syntax highlight works now;
- Explicit stdlib dependency usage has been removed.
2022-06-13 20:04:05 +00:00
Jinseong Jeon
2eab61d75f
FIR CLI: remove redundant cast and run
2022-06-13 18:41:17 +02:00
Jinseong Jeon
d2663cfb94
FIR CLI: fix typos in contentRootToVirtualFile util
2022-06-13 18:41:17 +02:00
Alexander Udalov
ec9d929532
Remove dependency of fir2ir:jvm-backend on backend.jvm.entrypoint
...
Extract JvmIrDeserializer(Impl), similarly to the existing
JvmIrSerializer(Impl). Remove `allowErrorNodes` which is always false
anyway.
2022-06-13 12:35:51 +00:00
pyos
3840d09314
FIR: fix check for plugins that support K2
2022-06-10 09:47:35 +03:00
nataliya.valtman
b19837aa02
Change log level for compiler performance metrics
2022-06-09 08:55:47 +00:00
Igor Yakovlev
f996278171
[WASM] Support for mjs universal launcher
2022-06-07 20:59:03 +00:00
Dmitriy Novozhilov
4003ca0691
[FE] Add ability to set compatibility of plugin with K2 in ComponentRegistrar
2022-06-07 14:12:14 +00:00
Mikhail Glukhikh
8baff4404d
Partial rename of 'Experimentality' around K1 checkers
2022-06-02 15:36:56 +00:00
Nikolay Lunyak
ac1fb07102
[FIR JS] Add checkers.js
2022-06-02 13:47:28 +00:00
Sergej Jaskiewicz
e03747ea7d
[JS IR] Introduce the GENERATE_INLINE_ANONYMOUS_FUNCTIONS feature flag
2022-06-01 09:02:31 +00:00
Nikita Bobko
69cf454747
Drop org.jline and org.fusesource.jansi redundant dependencies
...
Reasons:
1. Those modules don't use this dependency
2. Unbundled JPS feature in IDE downloads all transitive dependencies of
kotlin-dist-for-jps-meta => downloads org.jline and puts it into dist
which is not needed
2022-05-30 17:09:28 +02:00
Alexander Udalov
a7f4981fe5
Normalize virtual file paths to prevent duplicate sources
...
#KT-52465 Fixed
2022-05-27 23:40:57 +02:00
Alexander Udalov
70121f0c78
Report error on non-existent classpath in -Xplugin
...
#KT-52380 Fixed
2022-05-27 13:13:33 +02:00
Victor Petukhov
fbb2e18bea
[FE 1.0] Use 1.7.20 as default language version for java type enhancement
...
^KT-50478
2022-05-23 12:36:31 +02:00
Igor Yakovlev
3d3526e3d0
[WASM] Workaround for compiled wasm runs under node
2022-05-20 16:33:58 +02:00
Svyatoslav Kuzmich
84ed3ff5b0
[Wasm] Don't generate wat format by default in box tests
...
Gives ~15% tests speedup
Use kotlin.wasm.debugMode=1 to enable old behaviour
2022-05-20 13:34:28 +00:00
Georgy Bronnikov
e0c175bb50
Fir2Ir: remove symbolTable as separate component from FirResult
...
It's already in components.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov
3f66b31a47
Fir2Ir: add irProviders to Fir2IrComponents
...
Removes the last use of DeclarationStubGenerator in the FIR pipeline.
2022-05-19 12:02:41 +02:00
Georgy Bronnikov
13d4d60afa
Fir2Ir: pass Fir2IrExtensions to backend
2022-05-19 12:02:41 +02:00
Georgy Bronnikov
3c3c1be543
Fir2Ir: introduce Fir2IrExtensions
...
This allows us to remove DeclarationStubGenerator from Fir2IrConverter,
thus reducing dependency on descriptor-based code.
2022-05-19 12:02:41 +02:00
Vladimir Dolzhenko
efd5beb49b
IJ file type optimizations based on extension
...
#KTIJ-21668
Merge-request: KT-MR-6288
Merged-by: Vladimir Dolzhenko <Vladimir.Dolzhenko@jetbrains.com >
2022-05-17 14:46:00 +00:00
Ilya Chernikov
6b09ace099
FIR LT: fix bootstrap compilation error
...
if the existing list in the FRIENDS_PATH config property created with
Arrays.asList, it contains non-extendable list, and attempt to use
addAll on it leads to an exception.
2022-05-12 08:45:40 +02:00
Mads Ager
c6d7c23940
Always take java source before class files.
...
Also when searching for inner classes.
^Fixes KT-51025
2022-05-05 13:21:06 +02:00
Ilya Chernikov
cdb5845693
[minor] fix double warning about FastJarFS
2022-04-29 11:03:13 +00:00
Simon Ogorodnik
58885a1b07
KT-52217 Rename 'use-fir' to 'use-k2', update message
2022-04-28 15:42:42 +00:00
Mikhail Glukhikh
08ba89b4ec
CLI K2: report an error for JS/Native/Metadata #KT-52035 Fixed
2022-04-28 13:25:48 +00:00
Igor Laevsky
3de1235fda
[WASM] Add command line option to enable/disable assertions
2022-04-26 20:41:52 +00:00
Dmitriy Novozhilov
19f4c3edda
[CLI] Report compilation error if compiler plugins are enabled alongside with K2 compiler
...
^KT-52037 Fixed
2022-04-26 21:03:04 +04:00
Alexander Udalov
2e515f3945
Prohibit JVM target 1.6
...
But still compile stdlib, reflect, kotlin.test and scripting runtimes
with JVM target 1.6 to simplify migration from Kotlin 1.6 to 1.7.
#KT-45165 Fixed
2022-04-19 22:54:40 +02:00
Aleksei.Cherepanov
3d8f140d6b
[JPS] Fix incremental build after changing Java enum used in Kotlin when
...
EnumWhenTracker implemented for tracking changed java enum class items, that used in kotlin when expression.
#KT-47824 Fixed
2022-04-19 18:39:41 +00:00
Ilya Kirillov
69a53bc742
[low level fir] use correct FirModuleData for declarations provided by FirJavaFacade
2022-04-13 12:53:23 +02:00
Artem Kobzar
7ef14fc11b
chore: use CompositeBlock instead of GlobalBlock.
2022-04-11 10:37:14 +00:00
Alexander Udalov
6402c3908c
Validate -Xbackend-threads CLI argument value
...
#KT-51846 Fixed
2022-04-08 14:01:21 +02:00
Igor Laevsky
81eae94821
[Wasm] Disable range checks for arrays. Add cli argument to enable them back.
2022-04-05 18:00:32 +00:00
Alexander Korepanov
9952d43252
[JS IR] IC improvements
...
- Reuse a built fragment
- Use cache for saving built JS code
2022-04-04 17:42:04 +00:00
Alexander Udalov
9c78d57de2
Configure SAXParserFactory to avoid XXE references
...
#KT-51519 Fixed
2022-04-03 00:49:21 +02:00
Ilya Chernikov
03cbfea737
FIR LT: Introduce source file abstraction, carry it from parsing to IR
...
along with source lines mapping, allows to "emulate" usage of the
PSI files which allows to extract source file and line mapping info
on every stage from source element.
It makes sense to use this mapping for the error reporting too.
2022-03-30 08:34:30 +00:00
Ilya Chernikov
ae10346d75
Refactor FIR diagnostics: cleanup and extract position finder
...
for reusing the latter in the inliner for LT-based sources
2022-03-30 08:34:13 +00:00
Ilya Chernikov
25e9de286d
Test infra: adapt blackbox test runner to work with non-psi sources
2022-03-30 08:34:06 +00:00
Ilya Chernikov
2044754628
Backend: remove psi files from generation state
...
pass them explicitly to all destinations. This is a step in attempt to
abstract dependencies on PSI in the GenerationState and related places.
2022-03-30 08:33:59 +00:00
Ilya Chernikov
da41fddabb
Backend: remove codegen factory from generation state
...
use it explicitly. This is a step in attempt to abstract dependencies
on PSI in the GenerationState and related places.
2022-03-30 08:33:51 +00:00
Ilya Chernikov
018782f0c7
FIR CLI: use VFS for LT files loading
...
may improve performance in some cases and is consistent with handling
of PSI files
2022-03-30 08:33:43 +00:00
Ilya Chernikov
a08e70ae5c
FIR CLI: fix java sources search scope usage
2022-03-30 08:33:27 +00:00
Ilya Chernikov
973273c6c6
FIR CLI: count lines/files and report events to perfman
2022-03-30 08:33:11 +00:00
Ilya Chernikov
090a451902
FIR: implement proper exit on errors in new cli pipeline
2022-03-30 08:33:03 +00:00
Ilya Chernikov
f89765eb33
Make JDK classpath roots configuration explicit...
...
instead of relying on the "configuration files" parameter.
(in the process of migration from KotlinCoreEnvironment).
2022-03-30 08:32:56 +00:00
Ilya Chernikov
a239f02a30
Add cli argumens for FIR "tight" IC and LightTree usage
2022-03-30 08:32:03 +00:00
Ilya Chernikov
9e32188938
FIR LT: add syntax error reporting to LT2Fir
...
use it in the new pipeline
2022-03-30 08:31:56 +00:00
Ilya Chernikov
275135a1b2
FIR: extend cli pipeline with incremental compilation logic
...
use it in the IncrementalCompilationRunner
2022-03-30 08:31:10 +00:00