-
-
Notifications
You must be signed in to change notification settings - Fork 16
froggey/Iota
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Iota is an LLVM to CL transpiler, similar to emscripten. It converts LLVM bitcode to safe, portable Common Lisp code. Quick Start ----- # You'll probably want to make this available as a quicklisp local project. # Optional, for parallel builds export MAKEFLAGS=-j2 # Clone the LLVM/Clang repos. ./fetch-llvm.sh # Build LLVM, Clang, and the translator. # This will take a long time unless you have a beefy machine. ./build-llvm.sh # Build & translate libraries and programs. ./build.sh # Load into Lisp. lisp --load load.lisp # prboom & sdlquake can now be run using (CL-USER::RUN-PRBOOM) and (CL-USER::RUN-SDLQUAKE). Usage ----- The build-llvm.sh and build.sh scripts build the translator and compiler, installing them in the toolchain/ subdirectory. C source code can be compiled to object files as normal using clang -c. There is no ld-style linker, so object code and libraries must be linked with llvm-link. The linked bitcode file can then be translated with iota. Example ----- cat > example.c <<EOF #include <stdio.h> int main(int argc, char **argv) { printf("Hello, World!\n"); return 0; } EOF toolchain/bin/clang -c example.c toolchain/bin/llvm-link -o=example.bc example.o toolchain/le32-iota/lib/libc.a toolchain/bin/iota -package=":example" example.bc > example.lisp
About
LLVM to Common Lisp transpiler.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published