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
110
Новый подход к компиляции 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
120
Design Patterns in Scala
pavelfatin
6
1.4k
Практичность Scala
pavelfatin
0
110
Scala Plugin для IntelliJ IDEA
pavelfatin
0
49
Scala plugin for IntelliJ IDEA
pavelfatin
0
130
Other Decks in Programming
See All in Programming
Namespace, What and Why
tagomoris
4
1.5k
The Design of Everyday APIs - PyCon 2024
roguelynn
1
240
勉強会4_アップデートされたAssistantsAPIを試す
milky04
0
660
Slackワークフローで感謝を伝える機能/WiFi 自動接続/Figma to React Component/障害レポート君 Team3@NOT A HOTEL
nakaohiroshi
0
250
ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
nyawach
5
330
RubyGems on ruby.wasm
kateinoigakukun
0
160
Next.js App Router
quramy
14
2.3k
FoodGram
iseruuuuu
0
230
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
520
Timeline エディター拡張入門
yucchiy
0
460
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
2.9k
Documentation testsの恩恵 / Documentation testing benefits
ssssota
1
570
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Why Our Code Smells
bkeepers
PRO
331
56k
Designing for humans not robots
tammielis
247
25k
The Mythical Team-Month
searls
217
42k
GitHub's CSS Performance
jonrohan
1025
450k
4 Signs Your Business is Dying
shpigford
176
21k
A Modern Web Designer's Workflow
chriscoyier
689
190k
We Have a Design System, Now What?
morganepeng
43
6.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
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 внутри процесса • Общий сервер компиляции • Упрощение конфигурации проекта
Спасибо!