a programmer
Lox のインタプリタ実装終わった。毎晩やって3週間くらいかかった。ここからはバイトコードVMや
今日はインタプリタを作っていきます
Quest3 がほしいのでとりあえずヨドバシにQuest2 買い取りの評価額を聞いてみたら、1万~1.7万らしい。64GB モデルだし1万かなあ……まあそんなもんだろう
misskey.io への移住がツイートがめっちゃ流れてくる
write code every day の実装ログ、あんまり公開で書いている意味がない気がしてきたので、むしろプライベートな日記の方にマージして毎日書く動機づけにするか。
関数呼び出しの引数がレジスタサイズより小さければ速いの、実装してみると確かに当たり前だ
ノードの表現する型のサイズに合わせたサイズ指定を行うのをちゃんとやっておかないと謎のエラーが出たり出なかったりすることが分かってきた
関数呼び出し前にrspを16バイトアラインメント取らなきゃいけないの分岐以外の方法なくない?と思ってたけど、gcc の出力覗いたらそもそもスタックを確保する時にアラインメント取るようにしてた。なるほどな〜
rui さんの compilerbook はほぼ終わりを迎えてしまったが、型定義とか全然やってないのでまだまだ楽しめそう
自作コンパイラでテストコード自体をコンパイルして実行までできるようになって、完全に楽しいになった
too many memory references for `mov'
本日の成果です。
C の型定義が前置であることの面倒さを肌で理解することができた
コンパイラの実装、一番分からない点がアセンブリの仕様になってきたので、だいぶ慣れたかも。
なんかでかい本届いたと思ったら https://www.amazon.co.jp/dp/4295017876 だった。ちょうど今作ってるんですよ~~助かる~~
配列の添え字 OK
スタック上への配列確保、代入、インデックスアクセス、デリファレンスなどができるようになった。だいぶ複雑になってきたが、まだ頭の中で追えてる
やったーポインタのデリファレンスできた。
ぼんやりした頭でポインタ型の実装してたら頭が崩壊した
今日は~~ポインタ型
様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。