System Crafters

System Crafters Live! - April 23, 2021

Mesche Progress Update

Last week I detailed my plans for creating a compiler toolchain for a new Lisp called Mesche. Today I'll show some early progress on it and explain a bit of what I had to do to get this far!

You can check out the code on Sourcehut: https://git.sr.ht/~mesche/compiler

Areas

  • Linker
  • Assembler
  • Basic program execution

Challenges

  • Understanding the ELF format and generating it correctly
  • x86 instruction encoding

401000:	b8 01 00 00 00       	mov    $0x1,%eax
401005:	48 8b 1c 25 00 20 40 	mov    0x402000,%rbx

Next steps

  • Encoding (and decoding) more instructions
  • Detecting instructions that use memory addresses, updating them
  • Writing functions in assembly and calling them

Resources

Lisp Live Hacking

Let's hack on a Lisp project! To make things interesting, I'll let you choose:

  • Gemini Exporter for Org Mode
  • Mesche Compiler
  • Music Player in Guile Scheme

Cast your vote here: https://fast-poll.com/poll/1387af43

We ended up working on the Gemini exporter, you can find the code here:

https://git.sr.ht/~daviwil/ox-gemini-clean