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
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
Git Lint
bkuhlmann
4
750
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
260
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
920
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
760
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
230
Fragment Composition of GraphQL
quramy
5
860
Ruby GitHub Packages
bkuhlmann
0
630
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
What's in a price? How to price your products and services
michaelherold
237
11k
Happy Clients
brianwarren
92
6.4k
The Brand Is Dead. Long Live the Brand.
mthomps
49
28k
Automating Front-end Workflow
addyosmani
1356
200k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
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 внутри процесса • Общий сервер компиляции • Упрощение конфигурации проекта
Спасибо!