2020年8月 (Shiika クロージャ)
8月の活動報告です。
Shiika
無名関数を実装した。クロージャ(自由変数のキャプチャ)は作業中。先月の日記を見たら「そんなに難しくなさそう」とか書いているが、実際にはすごく大変だった。設計メモがここにある。
何が大変だったかというとクロージャがネストする場合で、各クロージャはllvmのfunctionに変換されるのだが、2つ以上外側のクロージャの変数をキャプチャする場合、真ん中のクロージャも協力して変数をバケツリレーしてやらないといけないのであった。
普段はわりと「書き始めたらなんとかなるだろ」的な感じで見切り発車してしまうのだけど、今回はわりと真面目に考察してみた。そのかいあって実装自体は順調に行っている。
そういえばなんかRedditに載ったらしくて、急に知らない人からプルリクが届いたりした。直近だと、コード生成をRuby + erbでやっていたのをRustマクロに直してもらったりした。ありがたい。
BiwaScheme
夏休みの自由研究としてr7expanderの移植に手を付けた。なんかわりと簡単にうまくいきそう。
とはいえやることは多い。展開器ができたとして、それを本体に組み込む前にCPS(継続渡し形式)で書き直さないとSchemeでマクロが書けないし、直近で手に入るのはer-macro-expanderなのでそれをベースにsyntax-rulesを作る必要はあるし、既存のdefine-macroで書いたものがちゃんと動くか確認しないといけないし、等々。まあ気が向いたときに少しずつやっていきましょう。
VPS移行
この日記をホストしているVPSを更新した。Cent6からUbuntuに移行した。さくらVPSのインスタンスを新しく借りたため、ここ数ヶ月はVPS2つ分の料金を払っていたけど、ようやく古いのを解約できそう。
Helix
テレワーク環境整備の一環として、長いこと作りかけで放置していたHelixを完成させた。
環境を構築した pic.twitter.com/Jqpc21L7Y8
— yhara (Yutaka HARA) (@yhara) August 26, 2020
キーマップはとりあえずすぐ使えるように、Let's Splitのものとだいたい一緒にしてある。数字段があるのが大きな違いだけど、レツプリに慣れてしまうと数字段は遠く感じてしまう。代わりにファンクションキーでも割り当てるかなあ。
Clash Royale
ついにタワーレベル13になった。でもまあそれほど大きな差は感じないなあ。相変わらずウィズとネクロ環境。このレベル帯を抜けるとこまではやりたいなあ。
最近Rayarkからソウルオブエデンというゲームが出てて、そっちも少し気になっている。クラロワと同系統なので経験が活かせるはず。