Clover2開発日誌

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

1行でのシェル風の記述に補完を入れました。

上記の通りです。

 

> ls -al src/m[TAB]

> ls -al src/main.c

 

みたいな感じです。まんまシェルですね。

個人的にもユーザーインターフェースとして使い始めてます。シェルの代りに使えるようなREPLを目指してます。

注意してほしいのは一行での記述の場合のみ、括弧の省略が可能という点です。パイプのような処理をしたい場合は

 

> ls("-al", "main.c").less()

 

などとしないといけません。

まあ、糖衣構文ですね。シェルで開発しているとvim src/man.cなんてものは何回でも入力するので、やっぱり1行の場合はvim("src/main.c")なんて入力してられませんしね。いくら補完があるとは言え。

 

あとはmake && make install && make testもよく入力するので、それを楽にできるようにも考えてます。一応前対策したような。make("--controlling-terminal").toBool() && make("--controlling-terminal", "install").toBool() && make ("--controling-terminal", "test"),toBool()でしたっけ。ちょっとタイプが面倒くさいですね。記号を用意したほうが良いんでしょうかね。それか補完してくれるようにか。まあ、自分で使っていって、不都合を感じたら、ぼちぼち改良していきます。目指せ次世代シェル!です。

 

あとブロックオブジェクトにバグがあるので、それを修正したいと思います。クラスのコンスタントプールのバグは今日修正しています。稀にコンパイルが落ちていたことがあったと思います。今日たまたま再現しまして修正しておきました。

 

それでは。

enjoy programing!