# tsoding vm for lisp ## [ebisp](https://youtu.be/vVjNyY2jkqg) - 1:39 "imagine dying because breathing stopped for gc" - 1:46 "If you want clickbait, you should not lie in your titles, you should be always technically correct" - 1:47 It still build after a year ## [garbage collector](https://youtu.be/2JgEKEd3tw8) - 0:55 jim, a json library - 1:20 start making gc - 1:30 ohhhh ### [mark/sweep gc in C++](https://youtu.be/RjFQA0C9fjY) ## [Day 1](https://youtu.be/0irYsCYuZws) - 0:15 LLVM? - 0:18 вm -- blyat machine - 1:?? job - 2:10 random access to stack (where my `copy n` came from) - 2:20-2:35 fibonacci (where my fib.asm came from) - 2:40-2:55 dump in-memory program into/from file (how to implement this in rust?) - 4:11 succeed! [progress](https://github.com/tsoding/bm/tree/238612b4f1d300baa922e57a543ed75c153f3e40) ## [Day 2](https://youtu.be/9td67NTtNCg) - 2:00 jump lable - 2:11 "or I'll come to your house, steal all your source code, and make all your variables constant, ok. And I'm a haskeller, I know how to make all the variables constant, ok, trust me." - about NaN-boxing - https://www.cnblogs.com/qicosmos/p/4285409.html - https://zhuanlan.zhihu.com/p/166406678 ## [Day 3](https://youtu.be/LN9vrbBNG64) - 0:45 "s64 vs i64, fight" - 0:50 [boost integer](https://theboostcpplibraries.com/boost.integer) - 0:55 `#include ` - 3:35 calculating pi - 3:43 refer to forth - 4:00 step debug - 4:14 swap relative address like dup [progress](https://github.com/tsoding/bm/commits/master?after=6384b3d7e8364370a9a3eff348cc10ad0c0b51ae+1294&branch=master&qualified_name=refs%2Fheads%2Fmaster) ## [Day 4](https://youtu.be/X7bSMKUgKVc) function call!!! - 0:30 how function call & ret works - 1:15 I left the industry(software engineering) - 1:30 native call: alloc on heap! - 1:38 ??? - 1:58 Makefile to build a particular file extension