Skip to content
No description or website provided.
C JavaScript Grace Other
Latest commit c707d1c Aug 14, 2015 @mwh Avoid code-after-return in if bodies of ES
If and else bodies would update the result register even when the last
statement was a return, leading to generated code containing code after
the return statement. This code was unreachable and strictly a syntax
error, and is now removed.
Failed to load latest commit information.
c Standardise on 'ECMAScript' as backend name May 25, 2014
doc Edit outdated documentation May 25, 2014
es Add DOM Snake sample by Tom Dupisre Jun 5, 2015
known-good Bump known-good Feb 14, 2014
sample Add DOM Snake sample by Tom Dupisre Jun 5, 2015
tests Update test cases to use proper visibility Mar 17, 2015
tools Include formal name aliases for control characters Feb 21, 2014
.gitalyse Ignore changes to mailmap in stats Feb 8, 2014
.gitignore Standardise on 'ECMAScript' as backend name May 25, 2014
.mailmap Update doc/authors Feb 5, 2014
Makefile Bump known-good May 25, 2014
README Standardise on 'ECMAScript' as backend name May 25, 2014
StandardPrelude.grace Add "StandardPrelude.methods" for dialects Dec 8, 2013
ast.grace Add 'constructor' keyword and construct Jul 9, 2014
compiler.grace Fix "imports" target. Mar 20, 2015
configure Set appropriate default paths in configure Feb 5, 2014
curl.c Remove none references from curl Nov 22, 2013
debugger.c Fix omitted name in debugger error message Aug 19, 2012
definitions.h Fix return value of getline Nov 9, 2012
errormessages.grace Add suggestion.append()onLine method Feb 10, 2014
genc.grace Enable resource imports in C backend Oct 12, 2014
genes.grace Avoid code-after-return in if bodies of ES Aug 14, 2015
genjs.grace Add stub genjs backend for API compatibility May 25, 2014
genjson.grace Add 'constructor' keyword and construct Jul 9, 2014
gracelib.c Correct behaviour of prefix> on numbers in C Jul 11, 2014
gracelib.h Add object annotations, retained at runtime Apr 9, 2014
gracepm.grace Add gracepm package manager Apr 17, 2014
identifierresolution.grace Add 'constructor' keyword and construct Jul 9, 2014
interactive.grace Fix remaining 'constructor' field name use Jul 10, 2014
lexer.grace Make $ a valid operator character Oct 5, 2014
math.c Make math module be correctly GC-rooted in C Mar 13, 2014
mgcollections.grace Expand asDebugString definitions Nov 19, 2013
mirrors.c Add object annotations, retained at runtime Apr 9, 2014
parser.grace Provide error when multi-part argument missing Feb 17, 2015
repl.c Remove remaining "none" references from C Nov 15, 2013
unicode.c Correct UTF-8 encoding of U+10000-U+1FFFFF Oct 12, 2014
unicodedata.h Regenerate unicodedata files Feb 21, 2014
util.grace Increment version number May 25, 2014
xmodule.grace Add 'constructor' keyword and construct Jul 9, 2014


A compiler for the Grace language.

Minigrace compiles Grace to C and ECMAScript (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

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.

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
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 <>.

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.
Something went wrong with that request. Please try again.