The main reasoning for the module is to avoid running any compiler tests while executing run configuration that searches tests across module dependencies.
When running tests locally, serialized built-ins located in dist/builtins
should have a higher priority than the ones in the bootstrap runtime, on which
almost every module depends by default. Also make it a 'runtime' dependency
because the binary files there can't really change anything at compile time
This fixes runtime dependency of the compiler and thus allows to run tests
which use MockLibraryUtil in case of an ABI-incompatible change; also it's
slightly more efficient (noticeable when running a single test)
- 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
BuiltInsSerializer will be distributed with Kotlin compiler from now on. This
will allow to serialize binary data of built-ins on 'ant dist', as opposed to
storing all *.kotlin_class files in the repository: ant dist will just invoke
this serializer from bootstrap-compiler.jar
Cleanup module dependencies: a lot of modules depended on 'frontend.java' just
to use something from 'util' module, exported by 'frontend.java', whereas they
really need nothing from 'frontend.java'. Also 'frontend.java' just exported
'util', not using anything from it.
Create a new 'util.runtime' module, which will be available at runtime. Make
'util' export 'util.runtime' and make all modules who needed these utils depend
on 'util' directly instead of 'frontend.java'
This is done because byte arrays in annotation arguments cannot be longer than
65535 bytes, and serialized data's length for kotlin.KotlinPackage class from
stdlib is already close to this number
Major changes: ASM is switched from vanilla 3.3 to a 4.0 with renamed packages,
because this is done inside IDEA and we depend on that transitively.
Thus the jarjar renaming in build.xml, old library binaries deleted.
Also we now depend on exact IDEA build (EAP), not "last successful".