public
Description: Not-Yet-Arc Compiler
Clone URL: git://github.com/stefano/nyac.git
nyac /
name age message
file .gitignore Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file .gitignore~ Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file NOTES Wed Jul 16 10:17:22 -0700 2008 added NOTES file containing informations about ... [stefano]
file README Tue Jul 15 11:32:33 -0700 2008 minor change to README [stefano]
file TODO Tue Jul 15 11:58:39 -0700 2008 added TODO file [stefano]
file basic-fns.arc Thu Jul 24 08:12:46 -0700 2008 fn now supports optional arguments [stefano]
file basic-macs.arc Thu Jul 24 08:12:46 -0700 2008 fn now supports optional arguments [stefano]
file bootstrap.arc Tue Jul 15 11:31:10 -0700 2008 call to allocate memory takes no more a useless... [stefano]
file clean.sh Tue Jul 15 11:31:10 -0700 2008 call to allocate memory takes no more a useless... [stefano]
file code-walker.arc Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file comp-utils.arc Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file comp.arc Fri Jul 25 04:53:45 -0700 2008 type error now tells the name of the types [stefano]
file compile-program.arc Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file consts.s Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file gc.c Mon Jul 21 02:47:36 -0700 2008 incomplete thread code [stefano]
file lib.arc Fri Jul 25 04:53:45 -0700 2008 type error now tells the name of the types [stefano]
file main.arc Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file nyac-build-linux-x86-32.tar.bz2 Wed Jul 16 09:19:12 -0700 2008 misc [stefano]
file print.arc Sun Jul 20 03:30:00 -0700 2008 removed useless instructions on %ebp & now ... [stefano]
file read.arc Fri Jul 25 04:53:45 -0700 2008 type error now tells the name of the types [stefano]
file repl.arc Fri Jul 25 04:53:45 -0700 2008 type error now tells the name of the types [stefano]
file runtime.c Thu Jul 24 08:35:13 -0700 2008 stack backtrace less verbose [stefano]
file runtime.h Mon Jul 21 02:47:36 -0700 2008 incomplete thread code [stefano]
file start.c Tue Jul 15 05:06:09 -0700 2008 first commit [stefano]
file std.arc Fri Jul 25 04:53:45 -0700 2008 type error now tells the name of the types [stefano]
file test.arc Sun Jul 20 03:30:00 -0700 2008 removed useless instructions on %ebp & now ... [stefano]
file transformations.arc Tue Jul 22 10:55:12 -0700 2008 the global variable __error_continuation may be... [stefano]
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.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:

- Continuations support
- 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
- threading
- hash tables are still not implemented

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