LunarMLの今年の進捗を振り返ります。昨年の振り返り記事と、今年のLunarML関連記事は以下の通りです:
- LunarMLの進捗2024(去年)
- never型があると便利か(言語処理系実装者の観点から)(3月)
- LunarMLとJavaScriptの連携について(7月)
- 良いコンパイラーは親切なエラーメッセージを出さなければならない:LunarMLの場合(7月)
- LunarMLの近況/中間言語に型をつける(8月)
- ML Family WorkshopでLunarMLについて発表した(11月)
- LunarMLでのUnicode文字列の扱い/文字列型はいくつ用意すれば十分か(12月)
今年の進捗
今年はML Family Workshopで発表するというイベントがあり、そのために色々改良を行いました。String16を導入したり、JavaScriptバックエンドでPromise/async/await連携を実施したり、です。ML Family Workshopでコンパイル後のコードを見せたかったので、読みやすいコードを出力する工夫を行いました。具体的には、ソースに現れる変数名をなるべく維持するようにします。
リリースとしては、今年は10月にバージョン0.3.0をリリースしました。
作業としては、中間言語を型付きにするのに結構な手間がかかりました。これに手間を取られたせいで見かけの進捗がそこまで大きくない気もします。まあWasmGCやネイティブコードを出力するためには中間言語への型付けをやるべきだと判断したので、必要なステップではあるのですが。
今後の目標
やりたいことはいろいろあります。新しいバックエンド、アプリケーションの実装、エコシステムの整備など。
新たなバックエンドとしては、PHP、WasmGC、ネイティブコードなどを考えています。ML Family Workshopの後に考えたのですが、「次のバックエンド」としては当面はWasmGCに注力しようと思います。
応用もやっていきたいです。Webフロントエンド、サーバーサイド、文書処理などなど。
エコシステムを整備するには、パッケージ管理をどうするか考える必要があります。smlpkgを使うか、自分で一から作るべきか。
やりたいことは色々ありますが、私生活の変化で、まとまった時間の確保が難しくなりました。そういう状況で開発を進めていくには、タスクを細切れに分割するスキルが重要になりそうです。
そんな感じで、2026年もLunarMLをよろしくお願いいたします。執筆時点では427個のGitHubスターを頂いています。
minoki/LunarML: The Standard ML compiler that produces Lua/JavaScript
