新しい四半期と自作WebAssembly進捗など

早くも6月

きづいたら、梅雨ですらなく、暑い。みなさんいかがお過ごしですか。わたしはようやく、長期プロジェクト後のGWを経てようやく回復してきました。

wasmiq

github.com

進捗は出ているよ

前回は4/1でしたね。自作のWebAssembly処理系ができたー、と書いてました。実はあれからあれこれしてまして、一通りのデバッグも終わり、そこそこサンプルコードは動く状態にはなっています。未実装だったマクロ的なsyntax sugarも、結局、全部実装しました。地味に大変だった。全体の流れを変えないといけなかったし、もう一回作るとしたら違う方法を取るじゃろなあ、という感じ。

参考にしたコードサンプル

以下の書籍を少し前から買っていて、読むついでに自分の処理系で処理して、テストがわりに遊んでいました。結構細かいパースエラーとか出たので有益でした。そして普通にWebAssemblyの勉強にもなりました。仕様書って、実装する内容はわかるけど、使い道とかが想像しづらい機能とかもあるんですよね。 techbookfest.org

次は「コンテナ」つくりたい

それからはWASIを調べてました。WebAssemblyに興味があるみなさんならWASIもご存知でしょう。これもsnapshot_preview1(でしたっけ?)が出ているので同様に実装したいな、と考えています。が、仕様の記述がすこし趣が違っていて、どうやって実装しようかなというのが難しい。コンテナ的なものを作りたいんですよね。よくわからないで書いていますが。

さらにGUIもしたいんです

あくまでもRustのGUIです。ちょこちょこ以前からことあるごとに、Web以外でGUIを作りたいと考えていながらElectronで「妥協」したりみたいなことを繰り返していました。いくつか実際に試していますが、今のところ、conrodが最有力候補です。不満がないわけではないですが、ほしいのは便利ライブラリではなく(それならRustでGUIしようとすること自体が不毛)、最小限のパーツを用意してくれていて適度な抽象化をしてくれているライブラリなのです。まともなものをつくろうとするとちょっと大変そうですが、GUI構築用のDSLを作ろうとも思っていて、それにはこれぐらいのプレーンさがちょうどいいのです。

github.com

体力が欲しい

というか、GWでタガが外れたように食いまくってしまい、コロナ禍での運動不足があいまって歴史上最大級の増量中である。大変ピンチで、少し前から努力を開始している。早めに戻そう。。。