0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

iroriさんのlazyk(v1.0.0)の動作を読んで図示してみました

Posted at

目的

メモリリークが生じてるバグを直してみたくて動作の理解をすることから始めてみました

どのあたりでメモリのどれをfreeしたらいいのか秒でわかりそうになかったのでコードリーディングになりました

irori/lazykとは

プログラミング言語Lazy KのC言語実装

たった一つのlazyk.cファイルに動作のすべてを実装してる

なんか色々と読んでみたけどLispマシンのようなことをやってると思った

セルをペアとして兼用したりとかやってるんだなと

ガベージコレクションもマジで自前実装

コードリーディングした過程や途中の手書きのメモ

最初に定義されてる構造体とかグローバル変数とかのメモ

17206840412613963696451513446231.jpg

ストレージの関数とか動作の図示

17206840714587900974258951585042.jpg

17206841324484459231909843492587.jpg

17206841973561255313037079523157.jpg

リデュースマシンの動作の図示

17206843834348308255370979899595.jpg

17206844102593740699572484036271.jpg

17206844325675563577749630967667.jpg

リデュースマシンとかの動作を理解した後に記述したガベージコレクタの動作

17206845246801678354977596286908.jpg

17206845469515705026229055826395.jpg

プログラム終了時にメモリをする場所を記憶するのはどこがいいのかを述べてるやつ

17206846414392281161883310618065.jpg

まとめ 手書きでメモった結果わかりやすくなったかも

ってことでメモった結果をもとにコードに反映しようと思う

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?