https://github.com/dhowden/magma-jit
Prototype JIT compiler for MAGMA
https://github.com/dhowden/magma-jit
Last synced: about 20 hours ago
JSON representation
Prototype JIT compiler for MAGMA
- Host: GitHub
- URL: https://github.com/dhowden/magma-jit
- Owner: dhowden
- License: bsd-2-clause
- Created: 2015-02-11T11:13:52.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-06-08T06:37:26.000Z (about 11 years ago)
- Last Synced: 2025-03-25T00:41:38.143Z (about 1 year ago)
- Language: C++
- Size: 160 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# magma-jit
A prototype JIT compiler for MAGMA (see http://magma.maths.usyd.edu.au).
# Requirements
* Bison (tested on 3.0.4)
* Flex (tested on 2.5.3)
* LLVM 3.5 (tested on 3.5.1)
# Build Instructions
$ make
$ ./tests
ok tests/assert.m
ok tests/assign.m
ok tests/break.m
ok tests/change-type.m
ok tests/func-loop-bug.m
ok tests/func-scope-bug.m
ok tests/func.m
ok tests/if.m
ok tests/iter.m
ok tests/new-scope.m
ok tests/op.m
ok tests/op_jmp.m
ok tests/print.m
ok tests/proc.m
ok tests/repeat.m
ok tests/return.m
ok tests/seq.m
ok tests/string.m
ok tests/tuple.m
ok tests/types.m
ok tests/while.m
# Done
* Binary operations
* If statements
* For statements
* Variable scoping
* Functions
* Procedures
* Executable Params (output RAW LLVM IR/Optimised/Run (default))
* Repeat/Until
* Break, Break x;
* Strings
# In Progress
* Sequences
* Multiple return values
# Goals
* LLVM code generation for sall tandard language statements
* Handle MAGMA container types (sequences/sets/indexed sets/etc)
* Be able to specify a new MAGMA type and devolve operations to C functions
* Socket server, accept compile + run commands