Xtalつこうてみた

元々DL出来る奴はVC8で簡単にコンパイルは出来てたけど、ちゃんと動作してなくて放置してたが
レジスタマシンでさらに速くなった(http://d.hatena.ne.jp/xtalco/)っぽいので、SVNで落としてみた。


今回からはVC9のプロジェクトしか同梱されてないのでそのままではビルドできなくて困る。
自分でVC8用のプロジェクト作ってサンプル動かしてみたら割りとすんなり動いた。以前動かなかったサンプルも動いたので謎すぎる。


AObenchもサンプルに含まれてたので動かしてみたが元がどれぐらいなのかわからないので比較しようがないw


文法をちゃんとおっかけながら見た感じだとRubyC++JavaScriptを足したような文法になってるね。これで結構速いというのが驚き。


ラムダ生成式と関数生成式の違いが良くわからない。
filelocalが見れないとかなのか?


意外といいかもしんないと思い始めたところで、classにはまる。



ヘルプにも書いてあるけどメソッド生成式はバッドノウハウ的な使用が文法的に可能なのはいかがなもんだろうか。もちろん例外が発生して動かないんだけども実行させないとわからなかったりするからなあ。

// なぜなら、methodは関数が作られた場所のthisを記憶せず、
// 呼び出し元のthisを使用するためです。
// トップレベルではthisは、filelocalですので、
// filelocalがthisとして渡されていることになります。


とあるが

filelocal::bar: method{"filelocal::bar".p;}
//もしくは
method bar{"filelocal::bar".p;}

とやってからヘルプにある例の受け取った無名methodを呼び出すのをやっても何も表示されない。
例外で落ちることはなくなったがとにかく表示されない。どゆこと!?
つか使えないならコンパイル時にエラーにして欲しい。


あとヘルプ読むとインスタンス変数の定義はわかるんだけどもクラス変数がわからない。
_(アンダースコア)をつけない変数がそうなのか?
でも代入すると例外で落ちるしなぁ。まじでわけわかんねw


他にもセカンダリキーとかよくわかんない。
class周りがまじでわからなすぎて泣きそう。。。


Xtal講習会とかやって欲しい。