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
130
Новый подход к компиляции 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
140
Design Patterns in Scala
pavelfatin
6
1.5k
Практичность Scala
pavelfatin
0
120
Scala Plugin для IntelliJ IDEA
pavelfatin
0
57
Scala plugin for IntelliJ IDEA
pavelfatin
0
140
Other Decks in Programming
See All in Programming
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
5
1.1k
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
990
Formの複雑さに立ち向かう
bmthd
1
940
読まないコードリーディング術
hisaju
0
110
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
9
2.5k
ML.NETで始める機械学習
ymd65536
0
240
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
200
Jasprが凄い話
hyshu
0
180
CloudNativePGを布教したい
nnaka2992
0
120
SwiftUI移行のためのインプレッショントラッキング基盤の構築
kokihirokawa
0
160
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1.1k
Featured
See All Featured
Code Review Best Practice
trishagee
67
18k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Building Applications with DynamoDB
mza
93
6.2k
Code Reviewing Like a Champion
maltzj
521
39k
Designing for Performance
lara
605
68k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Into the Great Unknown - MozCon
thekraken
35
1.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
11
1.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
650
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Git: the NoSQL Database
bkeepers
PRO
428
65k
The Cult of Friendly URLs
andyhume
78
6.2k
Transcript
Новый подход к компиляции Scala в IntelliJ IDEA Павел Фатин
mail@pavelfatin.com
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 внутри процесса • Общий сервер компиляции • Упрощение конфигурации проекта
Спасибо!