Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Новый подход к компиляции Scala в IntelliJ IDEA
Search
Pavel Fatin
April 11, 2013
Programming
0
140
Новый подход к компиляции Scala в IntelliJ IDEA
ScalaDev 2013,
http://scaladev.ru/
http://www.youtube.com/watch?v=eyxNisMAcAI
Pavel Fatin
April 11, 2013
Tweet
Share
More Decks by Pavel Fatin
See All by Pavel Fatin
Inside the IntelliJ Scala Plugin
pavelfatin
1
150
Design Patterns in Scala
pavelfatin
6
1.5k
Практичность Scala
pavelfatin
0
120
Scala Plugin для IntelliJ IDEA
pavelfatin
0
59
Scala plugin for IntelliJ IDEA
pavelfatin
0
140
Other Decks in Programming
See All in Programming
複数ドメインに散らばってしまった画像…! 運用中のPHPアプリに後からCDNを導入する…!
suguruooki
0
470
フロントエンドテストの育て方
quramy
11
2.9k
地域ITコミュニティの活性化とAWSに移行してみた話
yuukis
0
230
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
110
DataStoreをテストする
mkeeda
0
280
AHC 044 混合整数計画ソルバー解法
kiri8128
0
320
Compose Hot Reload is here, stop re-launching your apps! (Android Makers 2025)
zsmb
1
470
Preact、HooksとSignalsの両立 / Preact: Harmonizing Hooks and Signals
ssssota
1
1.3k
AI Agents with JavaScript
slobodan
0
210
Agentic Applications with Symfony
el_stoffel
2
270
Kamal 2 – Get Out of the Cloud
aleksandrov
1
170
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
15
4.5k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Designing Experiences People Love
moore
141
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
9
740
Git: the NoSQL Database
bkeepers
PRO
430
65k
The Language of Interfaces
destraynor
157
24k
Into the Great Unknown - MozCon
thekraken
37
1.7k
Fireside Chat
paigeccino
37
3.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Transcript
Новый подход к компиляции Scala в IntelliJ IDEA Павел Фатин
[email protected]
Scalac + Enter?
Компиляция в IDE • Интеграция с GUI • Инкрементальная компиляция
• Сервер компиляции
Интеграция с GUI • Трансляция сообщений • Индикация прогресса •
Прерывание компиляции
Инкрементальная компиляция • Время модификации файлов • Отображение исходников на
классы • Открытый интерфейс классов • Анализ зависимостей • Интеграция с другими компиляторами
Сервер компиляции • Управление процессом JVM • Протокол взаимодействия
Обновления
Новая подсистема компиляции • Сборка в отдельном процессе • SBT
для инкрементальной компиляции • Замена сервера компиляции
Сборка в отдельном процессе • Снижение потребления памяти IDEA •
Уменьшение нагрузки на GC • Разгрузка PSI и VFS в IDEA • Ускорение компиляции • Сборка из командной строки
Улучшение инкрементальной компиляции
Пример 1: Sealed class T.scala Main.scala
Пример 1*: Sealed class T.scala* Main.scala ? ...
Foo.scala foo bar Пример 2: Named parameters Foo.scala Main.scala
Foo.scala Пример 2*: Named parameters foo bar Foo.scala* Main.scala
foo Пример 3: Implicit conversion Foo.scala Main.scala
Пример 3*: Implicit conversion foo Main.scala Foo.scala*
SBT компилятор • Scala-специфичный анализ кода • Запуск компилятора внутри
процесса • Совмещение различных версий Scala • Простая передача аргументов и сообщений
Новый сервер компиляции • Решение проблем с FSC • Общий
сервер для всех проектов • Упрощение конфигурации
Результаты • Снижение нагрузки на процесс IDEA • Возможность сборки
из командной строки • Улучшенная инкрементальная компиляция • Запуск Scalac и Javac внутри процесса • Общий сервер компиляции • Упрощение конфигурации проекта
Спасибо!