LuneScript は Lua 向けのトランスコンパイラで、 LuneScript 自体も Lua 上で動作しています。 また、LuneScript は LuneScript 自体の処理を、 LuneScript で開発する所謂セルフホスティングを採用しています。 そのセルフホスティングしているコード規模は、右肩上がりで増大しています。 上記グラフは少し以前のもので、現在は 50Kline を突破しています。 コード規模が増えて一番気になるのは、やはりコンパイル時間です。 特に LuneScript は Lua で動作するため、 一般的なネイティブのコン
これまでの LuneScript のコード規模の推移を調べてみた。 これは単純に LuneScript をセルフホストしている .lns ファイルの行数をトータルした結果。 よって、コメントや空行等も入っている。 2020年前半はさぼってたけど、それ以外はコンスタントに成長している感じ。 参考までに、このグラフを作った gnuplot スクリプト。 1列目に YYYY-MM-DD の日付データ、2列目に行数データの dump.csv からデータをロードして、 codesize.svg を出力する。 1 2 3 4 5 6 7 8 9 10 11 12 file='dump' se g se xdata time se timefmt "%Y-%m-%d" se
emacs で snippet を管理するパッケージに yasnippet がある。 yasnippet はメジャーモード毎に snippet を登録しておき、 編集中のメジャーモードに合せて snippet を呼び出すことができる。 yasnippet に snippet を登録するには、 変数 yas-snippet-dirs で指定しているディレクトリ内に メジャーモード名のディレクトリを作成し、 そのメジャーモード名のディレクトリ内に snippet 情報を記述したファイルを置く。 これにより、 yasnippet のロード時、あるいは M-x yas-reload-all 実行時に、 snippet が yasnippet に登録される。 ここで問題がある。 説明した通り
LuneScript の開発を続けて約 2 年経過。 2年間ずっと開発し続けているわけではないけど、 かなりの時間を LuneScript の開発にあてている。 そんな訳で、今回は LuneScript の開発工数を概算してみる。 もちろん、作業時間の記録なんて面倒なことはしていないので、 あくまで概算である。 開発作業 LuneScript に限ったことではないが、 github で個人開発する際は、 だいたい次のように開発を進めている。 作業項目(TODOリスト)を doc/todo.org にリストアップする TODOリストを順次潰して
GCP から「Go 1.11 は使えなくなるから Go 1.13 にして」という通知があったので、 忘れないうちに Go 1.13 にして deploy をしたら、次のエラーが出た。 ERROR: (gcloud.functions.deploy) OperationError: code=13, message=Build failed: go mod: -require=xxxxxx/hoge/foo@v0.0.0: invalid path: malformed module path "xxxxxx/hoge/foo": missing dot in first path element; Error ID: 3182a79f どうやら、モジュールの先頭ディレクトリは FQDN の形式しないと NG になったようだ。 いままでは . を含まない適当な名前にしてたんだが、 「xxxxxx/hoge/foo の xxxxxx に . が含まれてない == FQDN ではない」、 ということで NG っぽい。 xxxxxx を github pages の自分の