Инкрементальная компиляция
●
Время модификации файлов
●
Отображение исходников на классы
●
Открытый интерфейс классов
●
Анализ зависимостей
●
Интеграция с другими компиляторами
Slide 6
Slide 6 text
Сервер компиляции
●
Управление процессом JVM
●
Протокол взаимодействия
Slide 7
Slide 7 text
Обновления
Slide 8
Slide 8 text
Новая подсистема компиляции
●
Сборка в отдельном процессе
●
SBT для инкрементальной компиляции
●
Замена сервера компиляции
Slide 9
Slide 9 text
Сборка в отдельном процессе
●
Снижение потребления памяти IDEA
●
Уменьшение нагрузки на GC
●
Разгрузка PSI и VFS в IDEA
●
Ускорение компиляции
●
Сборка из командной строки
Slide 10
Slide 10 text
Улучшение
инкрементальной компиляции
Slide 11
Slide 11 text
Пример 1: Sealed class
T.scala
Main.scala
Slide 12
Slide 12 text
Пример 1*: Sealed class
T.scala*
Main.scala
?
...
Slide 13
Slide 13 text
Foo.scala
foo bar
Пример 2: Named parameters
Foo.scala
Main.scala
Slide 14
Slide 14 text
Foo.scala
Пример 2*: Named parameters
foo bar
Foo.scala*
Main.scala
Slide 15
Slide 15 text
foo
Пример 3: Implicit conversion
Foo.scala
Main.scala
Slide 16
Slide 16 text
Пример 3*: Implicit conversion
foo
Main.scala
Foo.scala*
Slide 17
Slide 17 text
SBT компилятор
●
Scala-специфичный анализ кода
●
Запуск компилятора внутри процесса
●
Совмещение различных версий Scala
●
Простая передача аргументов и сообщений
Slide 18
Slide 18 text
Новый сервер компиляции
●
Решение проблем с FSC
●
Общий сервер для всех проектов
●
Упрощение конфигурации
Slide 19
Slide 19 text
Результаты
●
Снижение нагрузки на процесс IDEA
●
Возможность сборки из командной строки
●
Улучшенная инкрементальная компиляция
●
Запуск Scalac и Javac внутри процесса
●
Общий сервер компиляции
●
Упрощение конфигурации проекта