Skip to content

Latest commit

 

History

History
52 lines (37 loc) · 1.44 KB

README.md

File metadata and controls

52 lines (37 loc) · 1.44 KB

scheme-to-arm64

A scheme to Arm64 compiler that keep simple for teaching purpose.

Installation

git submodule update --init
cd bdwgc
./autogen.sh
./configure
make -j 8
make install
raco exe -o scmc main.rkt
raco distribute dist scmc

Usage

scmc -e '(char=? #\c #\c)'

To learn more compiler options

scmc --help

Known issues

The following problems are known in the current implementation and not going to fix!

  1. nested vector works badly(the root cause is first 64bits of vector layout stores length of vector, however, it be converted to pointer encoded value rather than length stored)
    1. #(1 #(2)) produces #(2)
    2. #(3 #(2 4)) produces #(2 #(2 #(2 ...(a lots of #(2 ...) here)

Develop

You're assume to familiar with arm64's assembly to contribute. A good start is:

Compiler reference: