-
I’ve been poking at this for about a year now and it all came together last night/this morning!
-
im calling it symba, short for SYMbolic Assembler
-
basically: a functional representation of LLVM bit code you can manipulate in Clojure and emit/run as needed
-
this is the approach behind github.com/nasser/mage and github.com/nasser/magic and its been super effective
-
benefits: - the compiler you end up building is functional and much easier to reason about - you can build it all live in the REPL
-
symba is trying to do this for LLVM code so that building compilers that target native assembly isn’t such a pain
-
open questions: - will the tree shape of LLVM bitcode be as composable as the MSIL stack? - will phi nodes suck?
-
should have a repo soon, but reproducing this could be a pain. llvm, mono and clojure need to be lined up just right…
-
hoping for terralang.org/ but clojure instead of lua and direct access to bitcode instead of lua-like syntax