Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Not-Yet-Arc Compiler
Arc C
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this 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.

Something went wrong with that request. Please try again.