LuaやJavaScriptを出力するStandard MLコンパイラー「LunarML」のバージョン0.2.0をリリースしました。
前回からの変更点は、以下のような感じです:
IO
関連のモジュールの整備:PrimIO
,ImperativeIO
,TextIO.StreamIO
,BinIO.StreamIO
- LuaやJavaScriptで書かれた初期化ファイルの不要コード削除の実装
- パイプ演算子:
|>
($(SML_LIB)/basis/pipe.mlb
で利用可能) - Sphinxによるドキュメント
- JavaScriptやLuaバインディングに対するいくつかの関数の追加
- カリー化解除の最適化
作業量として大きかったのは、IO関連です。3月から5月ぐらいに取り組んでいました。
IO関連の機能を強化したら、生成されるコードが膨大になりました。そのため、不要コード削除の最適化を強化しました。その際に遭遇した事象についての記事を書きました。6月から7月ぐらいに取り組んでいましたが、結構しんどかったです。
まだまだ実装したい機能はたくさんありますが、最近は変更を加えていなかった(落ち着いていた)こと、近い将来に大きな変更を実装できる見通しはないことから、一区切りだと考えてリリースを出すことにしました。
そういえば、5月ぐらいにHacker Newsに取り上げられました。
その数日前にGitHubスターが250に到達していましたが、Hacker News効果で一気にスター数が跳ね上がりました。今は345スターです。
とにかく、GitHubスターがあると励みになります。もしまだスターしていないという方がいれば、GitHubにスターをいただけると嬉しいです。