野生のコンパイラを飼いならせ ライブデモでScalacの世界へダイブ! #ScalaMatsuri #sm_b

Scalac の深みへダイブ @cbirchall
0
Chris Birchall @cbirchall

Principal engineer at @47deg. Previously @OVOTechTeam, @gdndevelopers, M3 and Infoscience. Author of Re-Engineering Legacy Software https://t.co/uS1WonxoVs

https://t.co/lAhjrw9YWk

Chris Birchall @cbirchall

時差ぼけと風邪の組み合わせでかなりしんどいけど頑張りまーす #ScalaMatsuri

2016-01-30 09:49:15
Chris Birchall @cbirchall

Slides for my "A deep dive into scalac" talk / 「scalacの深みへダイブ」の資料はこちらです #ScalaMatsuri slides.com/cb372/scalac-s…

2016-01-30 11:56:43

病気の美少女 @lyrical_logical

迷ったけどクリスさんのとこにきた。二度目である #ScalaMatsuri #sm_b

2016-01-30 11:03:33
phenan @phenan

準クォートがさらっと出てくる #ScalaMatsuri #sm_b

2016-01-30 11:04:29
病気の美少女 @lyrical_logical

String interpolation による quasiquote 例。昔はこれがなくて苦労したものよ(おじいちゃん) #ScalaMatsuri #sm_b

2016-01-30 11:05:15
phenan @phenan

parser -> namer -> typer -> tree transformations #ScalaMatsuri #sm_b

2016-01-30 11:07:35
病気の美少女 @lyrical_logical

この辺のフェーズの詳細については scalac -Xshow-phases で知ることができます #ScalaMatsuri #sm_b

2016-01-30 11:08:59
phenan @phenan

typed AST - (icode) -> IR -(jvm)-> class file #ScalaMatsuri #sm_b

2016-01-30 11:10:03
病気の美少女 @lyrical_logical

ICode という中間表現がありました。2.12 からはなくなります #ScalaMatsuri #sm_b

2016-01-30 11:10:48
phenan @phenan

まあこの辺はたいていのコンパイラで同じ話な気がする #ScalaMatsuri #sm_b

2016-01-30 11:10:49
あかつ @awekuit

懐かしの .Net 対応がコンパイル速度に影響してたのか… #sm_b #ScalaMatsuri

2016-01-30 11:11:27
病気の美少女 @lyrical_logical

ぶっちゃけ Typer が常に遅い。わかる。これ詳細もっと知りたいけど内部実装の都合でフェーズをもっと細かくするのは難しいです #ScalaMatsuri #sm_b

2016-01-30 11:12:51
まっちゃら @ FOLIO @matsu_chara

scalac -Xshow-phasesで確認できるコンパイルフェーズで何処が一番おそいか? => typer phase ww #ScalaMatsuri #sm_b

2016-01-30 11:13:04
あかつ @awekuit

金の弾丸とコーヒータイムの話だ #sm_b #ScalaMatsuri

2016-01-30 11:13:16
phenan @phenan

scalac に -Xprint:(フェーズ名) をつけてコンパイルするとその変換直後のコードを見ることができるっぽい #ScalaMatsuri #sm_b

2016-01-30 11:14:22
病気の美少女 @lyrical_logical

patmat phase は pattern expression を label を使った表現に落とし込む。 #ScalaMatsuri #sm_b

2016-01-30 11:14:33
まっちゃら @ FOLIO @matsu_chara

scalacで-Xprint:patmatオプションなどをつけるとコンパイル中のコードが見れるんだ! #ScalaMatsuri #sm_b

2016-01-30 11:14:35
病気の美少女 @lyrical_logical

与太話。patmat は scala-virtualized からの移植で、pattern 式も for 式のように拡張可能にしようという目論見があったのですが、闇に葬られて高速化のためということになったっぽい。 #ScalaMatsuri #sm_b

2016-01-30 11:16:37