diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..0bdef99 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Sjit + +Sjit is a stupid just in time compiler. +It does almost nothing, and what it does, it does badly and is not useful. + +- There is no parser, you have to write your program in the internal Clean + representation (see `Start` in [`sjit.icl`](/sjit.icl)). +- There is no type checker, you have to guess the implicit rules (such as that + a `fun_expr` must always be an `Abstr`). +- There is no register allocation, everything is done on the stack. +- There is no code optimisation, not even to eliminate `push rbx` followed by + `pop rbx`. +- JIT generated code is for the x64 instruction set only. +- Because we use `mmap` and `mprotect` this only works on POSIX systems. + +## Usage + +```bash +git clone https://gitlab.science.ru.nl/cstaps/sjit-compiler +cd sjit-compiler +make +./sjit +``` + +## Colophon + +Copyright © 2018–present [Camil Staps](https://camilstaps.nl). |