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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Pavel Fatin
April 11, 2013
Programming
160
0
Share
Новый подход к компиляции Scala в IntelliJ IDEA
ScalaDev 2013,
http://scaladev.ru/
http://www.youtube.com/watch?v=eyxNisMAcAI
Pavel Fatin
April 11, 2013
More Decks by Pavel Fatin
See All by Pavel Fatin
Inside the IntelliJ Scala Plugin
pavelfatin
1
160
Design Patterns in Scala
pavelfatin
6
1.6k
Практичность Scala
pavelfatin
0
140
Scala Plugin для IntelliJ IDEA
pavelfatin
0
74
Scala plugin for IntelliJ IDEA
pavelfatin
0
160
Other Decks in Programming
See All in Programming
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
4.7k
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
7
2.4k
誰も頼んでない機能を出荷した話
zekutax
0
150
ふつうのFeature Flag実践入門
irof
7
3.4k
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
320
3Dシーンの圧縮
fadis
1
540
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.2k
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
390
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
140
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
270
inferと仲良くなる10分間
ryokatsuse
1
290
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The SEO Collaboration Effect
kristinabergwall1
1
470
Making Projects Easy
brettharned
120
6.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Building the Perfect Custom Keyboard
takai
2
780
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
120
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
How to Ace a Technical Interview
jacobian
281
24k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
560
My Coaching Mixtape
mlcsv
0
140
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 внутри процесса • Общий сервер компиляции • Упрощение конфигурации проекта
Спасибо!