Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています

splitのバグを修正。シェルモードで引数のグロブのバグを修正。シェルモードに環境変数の展開を追加

splitのバグを修正。シェルモードで引数のグロブのバグを修正。シェルモードに環境変数の展開を追加

 

とりあえず、シェルモードの使い勝手を上げています。自己満ですが、インタラクティブに基礎ライブラリのバグのチェックもできますし、やっぱり自分でも使っていかないと駄目ですね。

String.splitが変な動作していました。修正しました。

後はシェルモードで環境変数を展開するようにしました。

 

シェルモードでのやり残しは後は

./configure --prefix=$HOME --with-optimize

などのパスを指定する外部コマンドの実行ですね。

それでシェルモードは大体は満足です。

 

一応今日書いたsplitのデバッグでは

 

> "A,B,C".split(/,/) {|str:String| return str.append("X"); }

=> { AX, BX, CX }

 

などが動いています。割りとスッキリした記述でしょう?

型推論と引数のブロックの糖衣構文でだいぶ良い感じになってきました。

まだまだ完成度を高めます。まあ、ぼちぼちですが。

目標はSwiftやKotlinのようなモダンなプログラミング言語です。

インタラクティブモードも完成度を高めていきたいと思います。

まだ補完が完全ではありません。ブロックの中では全然補完が効きませんし。そのあたりもぼちぼち改善していきたいと思います。