コンパイラの授業の〆は、Perl6 を読もうということで。12/2,3 10時から18時の予定です。工学部1号館321。最近は、ネット中継とかやってないんだよな。気が向けば設定するかもしれません。
今日は、LLVMをちょっとだけ読んだ後、Rakudoの準備。えーと?
Perl6は、JVMまたはMoarVMの上で動く、
nqp で実装されている
nqp は、JVMまたはMoarVMの上で動く
nqp で実装されている
nqp compiler は、MoarVM/JVMのバイナリで提供されている
C compiler も Haskell compiler も、既存のC/Haskell compilerを前提としていて、
真の意味での boot strap を失ってしまっている感じ
このあたりって、
個体発生は系統発生を繰り返す
みたいにできないのかな。なんていうのかな、
簡単なインタプリタ/コンパイラから細かい boot strap を繰り返して複雑なシステムが出来上がる
みたいにならないのかと。単純なシステムに fall back できないのは残念な感じ。
Perl6 を Perl6 (あるいは、その制限版である nqp )で記述すると言うのは、言語屋さんの自己満足に過ぎなくて、それが役に立つという状況になってない感じ。
で、わからないのが、
nqp level で trace ってどうやるの?
ってことですね。nqp に debugger があれば、それで。あるいは、rakudo を Perl6 で動かせるなら、Perl6 debugger で。
でも、lldb/gdb level は用意されているようなんだが...
pypy でも、動かしてデバッグするまでにいろいろあったような。
nqp script 自体は、perl6 -mnqp hoge.nqp で動くようなんですが...
No comments:
Post a Comment