/maru

A compiler to IA32 and REPL for maru in maru under 7k s-expressions

Primary LanguageAssembly

Maru

Maru is a symbolic expression evaluator that can compile its own implementation language.

-- http://piumarta.com/software/maru/

This fork aims to eliminate the dependence on C as the implementation language by updating the maru-in-maru interpreter to include all the features of the maru-in-C interpreter.

Objective

  • src/eval.l to have the same features as csrc/eval.c
    • able to run test-pepsi example

Other improvements

  • write tests for eval
  • document the maru language
  • add LLVM support

Bootstrapping

eval.s is the interpreter compiled to IA32 assembly, it can be compiled to a binary with gcc via the Makefile

make bin/eval

The binary can regenerate eval.s from source via the Makefile

rm obj/eval.s
make obj/eval.s

The generate eval.s is identical to the version in the repository