3 comments
Related. Others?<p><i>SBCL: The Assembly Code Breadboard</i> - <a href="https://news.ycombinator.com/item?id=39859849">https://news.ycombinator.com/item?id=39859849</a> - March 2024 (19 comments)<p><i>SBCL: Assembly code breadboard (2014)</i> - <a href="https://news.ycombinator.com/item?id=28450473">https://news.ycombinator.com/item?id=28450473</a> - Sept 2021 (4 comments)<p><i>SBCL: The Ultimate Assembly Code Breadboard (2014)</i> - <a href="https://news.ycombinator.com/item?id=11959147">https://news.ycombinator.com/item?id=11959147</a> - June 2016 (2 comments)<p><i>SBCL: The Ultimate Assembly Code Breadboard</i> - <a href="https://news.ycombinator.com/item?id=7408807">https://news.ycombinator.com/item?id=7408807</a> - March 2014 (75 comments)
I’ve read this article every time it’s gotten posted here and it’s always gone a little over my head. I was able to follow how he used 8 x86_64 registers for the VM’s stack slots and how the VM instructions were implemented. How the padding and alignments of each version of the instructions was calculated is impressive and I can imagine how much of a chore it would be to figure out with a normal assembler.<p>Using SBCL as a macro-assembler is extremely cool, and then allowing CL code to call into the VM is where it really blows my mind.<p>Obviously it’s been over a decade since this article was written. For someone less familiar with SBCL internals (or CL in general), would something like AsmJit or Iced be a good way to achieve similar things?
<a href="https://www.stylewarning.com/posts/nbody/" rel="nofollow">https://www.stylewarning.com/posts/nbody/</a> might be a good addition, it showcases some higher level stuff added in sb-simd.