Skip to content
Not-Yet-Arc Compiler
Arc C Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.gitignore~
NOTES
README
TODO
basic-fns.arc
basic-macs.arc
bootstrap.arc
clean.sh
code-walker.arc
comp-utils.arc
comp.arc
compile-program.arc
consts.s
gc.c
lib.arc
main.arc
nyac-build-linux-x86-32-2008-10-22.tar.bz2
print.arc
read.arc
rebuild.sh
repl.arc
runtime.c
runtime.h
start.c
std.arc
test.arc
transformations.arc

README

NYAC -- Not Yet an Arc Compiler

As the name suggests, the goal of this project is to build a complete Arc 
compiler that generates native binary code.
Currently it is not Arc compatible, but it is already able to compile itself.

*) Supported platforms

The only platform supported is GNU/Linux on a x86 32 bits CPU.

*) Dependencies

In order to make nyac work, you will need a working gcc install.

*) Installation

First get it (you will need git installed):

$ git clone git://github.com/stefano/nyac.git

then enter nyac directory:

$ cd nyac

now you'll need to unpack the precompiled binaries and to set LD_LIBRARY_PATH 
(this assumes that you're using bash):

$ tar -jxvf nyac-build-linux-x86-32-'insert most recent date here'.tar.bz2

$ export LD_LIBRARY_PATH=build-arc:$LD_LIBRARY_PATH

at this point, you should be able to test if it works:

$ ./build-arc/test.arc.run

*) Missing features

The two most important ones:

- Threading
- Lists, vectors, hash tables, etc. in function call position

Others (in no particular order):

- Some function names differ from their Arc equivalent
- Almost all of standard functions and macros are missing
- 'annotate and 'rep
- ssyntax
- quasiquoting (but the reader expands `... to (quasiquote ...) and ,... to
  (unquote ...))
- bignums, ratnums, etc. Only fixnums and floating point numbers are supported
- only ASCII characters are supported
- hash tables are still not implemented

The list could go on...
Macros are supported, though.

You can’t perform that action at this time.