diff options
author | Camil Staps | 2018-12-23 23:55:56 +0100 |
---|---|---|
committer | Camil Staps | 2018-12-23 23:55:56 +0100 |
commit | 9ccf8a561345641ad083d90b5f301ebcc7a61f47 (patch) | |
tree | b758e6c987151b2f346ca8820f300a1ed40ab4c9 /README.md |
Initial commit
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). |