Self-hosting compiler for the Grace programming language
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.
doc
js
modules
newModules
sample
samplePrograms
stubs
tests/known-failing
tools
.gitalyse
.gitignore
.mailmap
.travis.yml
Makefile
Makefile.mgDependencies
README
ast.grace
collectionsPrelude.grace
compiler.grace
configure
errormessages.grace
fastDict.grace
genjs.grace
identifierKinds.grace
identifierresolution.grace
lexer.grace
minigrace-js
npm-js-kg.json
package.in.json
parser.grace
standardGrace.grace
standardGraceClass.grace
unixFilePath.grace
util.grace
xmodule.grace

README

A compiler for the Grace language.

Minigrace compiles Grace to C and JavaScript. The compiler is written in
Grace itself. It supports most of the specified language to date: for
details on current language feature support see <doc/errata>.

Minigrace should work on POSIX-compliant systems, and is known to work
on Linux, NetBSD, and Mac OS X. It requires a properly-configured GCC on
the path, which may require installing development tools.

Tarball distributions should compile with just `./configure && make`.

The Git repository is able to bootstrap itself with `make` on some
systems, but it is recommended first to bootstrap from a tarball by
running `tools/tarball-bootstrap -a`. More detailed build instructions
are in <doc/build>.

After building there will be a `minigrace` executable in the root. This
executable supports a few different modes and options, described in
<doc/usage>. The simplest usage is just:
  ./minigrace file.grace
which will compile file.grace to an executable and then run it.

The Minigrace documentation is listed in the <doc/index> file.

Licensing
---------
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Although the compiler by nature reproduces portions of its own code in
its output, as a special exception, incidental reproduction of any part
of its source code by the compiler as part of compiling any other
program does not require that program to adhere to the terms of the GPL.
You are free to remove this exception from any version of the compiler
you have modified.