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

Scalac の深みへダイブ @cbirchall
0
phenan @phenan

同時通訳いらないな。これ。英語でも十分わかりやすい #ScalaMatsuri #sm_b

2016-01-30 11:16:54
あかつ @awekuit

Cake pattern が言われだす前からCake patternだったのか #sm_b #ScalaMatsuri

2016-01-30 11:18:46
phenan @phenan

scalac は cake pattern で書いてある。依存性がヤバイことになっている #ScalaMatsuri #sm_b

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

nsc(new scala compiler) は cake pattern で作られてる。バカみたいにでかいケーキだよねという批判もある。メンバの初期化順問題とかも。慣れてないと読むのもなかなか難しい。 #ScalaMatsuri #sm_b

2016-01-30 11:19:12
phenan @phenan

とりあえず SymbolTable がヤバそうということがよく分かる図だ #ScalaMatsuri #sm_b

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

nsc の各処理の SymbolTable に対する依存は色々問題になっていて、今 Odersky 先生が作ってる新しい処理系では改善策が導入されてたりします。 #ScalaMatsuri #sm_b

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

各フェーズでCompilationUnit に対してmutableな変更を加える #ScalaMatsuri #sm_b

2016-01-30 11:24:22
あかつ @awekuit

むっちゃmutable で副作用なコードだけどパフォーマンス頑張るため #sm_b #ScalaMatsuri

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

Tree に対する処理を行う Transfomer はマクロ実装にも需要がありますが今のところ internal。todo にマクロユーザに提供するとあるけど、いつになることやら。 #ScalaMatsuri #sm_b

2016-01-30 11:25:51
phenan @phenan

コンパイラプラグインの書き方もcakeっぽいな #ScalaMatsuri #sm_b

2016-01-30 11:27:28
Tomer Gabel @tomerg

Great overview of scalac's internal architecture at #sm_b #ScalaMatsuri pic.twitter.com/yf7tXL72Db

2016-01-30 11:28:25
拡大
sifue(吉村 総一郎) @sifue

やばい... Scala を BASIC にトランスパイルしとる... #ScalaMatsuri #sm_b scalac のプラグインでこんなことできちゃうのね...。

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

デモだよー。BASIC_ を prefix(tree の話ではないので注意)に持つメソッドを basic コードに変換する。イェーイ #ScalaMatsuri #sm_b

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

Basic 動いたすごい! Githubで公開中! #sm_b #ScalaMatsuri

2016-01-30 11:31:03
あかつ @awekuit

コンパイラプラグインは入れ子構造なだけでそんなに難しくないらしい! #sm_b #ScalaMatsuri

2016-01-30 11:31:06
sifue(吉村 総一郎) @sifue

JSONリテラルwww XMLリテラルをコードの中で使うなんてとんでもないと思ってたけど最近 JSX とかが出てきて世の中どうなるかわからんなぁと思ってきた。 #ScalaMatsuri #sm_b

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

SLIP が json サポートであれたのでコンパイラ改造して json リテラルと API 作ったよ!(煽り目的でね!)とのことで、このようにクリスさんは結構おちゃめですし、発表英語ですが、日本語も日本人よりうまい #ScalaMatsuri #sm_b

2016-01-30 11:33:41
sifue(吉村 総一郎) @sifue

#ScalaMatsuri #sm_b Scala のコンパイルに対して遅いと文句を言わずに、動くことに感謝しましょう、とのことw

2016-01-30 11:36:38
あかつ @awekuit

Scalaにjsonリテラル組み込んだのも公開中! #sm_b #ScalaMatsuri

2016-01-30 11:37:03
リンク GitHub cb372/scala scala - The Scala programming language
あかつ @awekuit

新しいコンパイラはもっとFPな感じなのか #sm_b #ScalaMatsuri

2016-01-30 11:38:52