Pro Yearly is on sale from $80 to $50! »

Новый подход к компиляции Scala в IntelliJ IDEA

Новый подход к компиляции Scala в IntelliJ IDEA

5138e9107efc123e40339b73a67dbfdc?s=128

Pavel Fatin

April 11, 2013
Tweet

Transcript

  1. Новый подход к компиляции Scala в IntelliJ IDEA Павел Фатин

    mail@pavelfatin.com
  2. Scalac + Enter?

  3. Компиляция в IDE • Интеграция с GUI • Инкрементальная компиляция

    • Сервер компиляции
  4. Интеграция с GUI • Трансляция сообщений • Индикация прогресса •

    Прерывание компиляции
  5. Инкрементальная компиляция • Время модификации файлов • Отображение исходников на

    классы • Открытый интерфейс классов • Анализ зависимостей • Интеграция с другими компиляторами
  6. Сервер компиляции • Управление процессом JVM • Протокол взаимодействия

  7. Обновления

  8. Новая подсистема компиляции • Сборка в отдельном процессе • SBT

    для инкрементальной компиляции • Замена сервера компиляции
  9. Сборка в отдельном процессе • Снижение потребления памяти IDEA •

    Уменьшение нагрузки на GC • Разгрузка PSI и VFS в IDEA • Ускорение компиляции • Сборка из командной строки
  10. Улучшение инкрементальной компиляции

  11. Пример 1: Sealed class T.scala Main.scala

  12. Пример 1*: Sealed class T.scala* Main.scala ? ...

  13. Foo.scala foo bar Пример 2: Named parameters Foo.scala Main.scala

  14. Foo.scala Пример 2*: Named parameters foo bar Foo.scala* Main.scala

  15. foo Пример 3: Implicit conversion Foo.scala Main.scala

  16. Пример 3*: Implicit conversion foo Main.scala Foo.scala*

  17. SBT компилятор • Scala-специфичный анализ кода • Запуск компилятора внутри

    процесса • Совмещение различных версий Scala • Простая передача аргументов и сообщений
  18. Новый сервер компиляции • Решение проблем с FSC • Общий

    сервер для всех проектов • Упрощение конфигурации
  19. Результаты • Снижение нагрузки на процесс IDEA • Возможность сборки

    из командной строки • Улучшенная инкрементальная компиляция • Запуск Scalac и Javac внутри процесса • Общий сервер компиляции • Упрощение конфигурации проекта
  20. Спасибо!