Skip to content

Instantly share code, notes, and snippets.

@antonijn
Last active August 29, 2015 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save antonijn/9515926 to your computer and use it in GitHub Desktop.
Save antonijn/9515926 to your computer and use it in GitHub Desktop.
.TH aquac 1 "March 2014" "" ""
.SH NAME
.P
aquac - The "official" compiler for the Aqua programming language
.SH SYNOPSIS
.P
.RB aquac\ [ \-CDLnstw ]
.RB [ \-a
.IR assembler ]
.RB [ \-c
.IR compiler ]
.RB [ \-dl
.IR lib ]
.RB [ \-g
.IR generator ]
.RB [ \-o
.IR file ]
.RB [ \-O
.IR dir ]
.RB [ \-p
.IR parser ]
.IR infile ...
.SH DESCRIPTION
.P
When invoked, the Aqua compiler parses, compiles, assembles and links the input
files, unless specified otherwise by various command-line options.
.P
The list of input files may consist of files written in a number of programming
languages, and are compiled appropriately based on their filename extension.
This makes for easy cross-language development.
.P
The Aqua compiler is able to compile programs for a number of platforms, and it
will compile for Unix and Windows by default. To only compile for the platforms
the program is being compiled on, use the
.B
-t
switch.
.P
The
.B
aquac
program itself actually isn't very large; it combines functionality from a set of libraries to make
your programmer life easier, and allows for easy switching between various tools.
The program uses
.BR libaquacast , \ libaquacparsing , \ libaquacparsingdefault , \ libaquaccodegen \ and \ libaquaccodegenllvm .
.SH OPTIONS
.P
.BR \-a , \ \-\-assembler
.I assembler
.RS
Uses
.I
assembler
as the assembler for the generated assembly.
.RE
.P
.BR \-c , \ \-\-c\-compiler
.I
compiler
.RS
Uses
.I
compiler
as the compiler for the C input files.
.RE
.P
.BR \-C , \ \-\-unsafe\-casts
.RS
Disables type-checks before casting from more abstract to less abstract types.
.RE
.P
.BR \-d , \ \-l , \ \-\-dependency
.I
dependency
.RS
Adds
.BI (lib) dependency (.so|.dll|.exe)
to the dependency list.
.RE
.P
.BR \-D , \ \-\-debug
.RS
Compiles the program for debugging. Disables optimizations, enables debugging metadata.
.RE
.P
.BR \-g , \ \-\-generator
.I
generator
.RS
Uses either
.BI libaquaccodegen generator .so
or
.I
generator
as the assembly generator library for the AST generated by the parser.
.RE
.P
.BR \-L , \ \-\-library
.I lib
.RS
Compiles the program as a library instead of an executable.
.RE
.P
.BR \-n , \ \-\-unsafe\-null\-ptr
.RS
Disables null checks before dereferencing pointers, generating segmentation faults
instead of throwing
.IR NullPtrException s
when a null pointer was about to be dereferenced.
.RE
.P
.BR \-o , \ \-\-output
.I file
.RS
Makes
.I
file
the filename for the output assembly, without suffix (.exe, .so, .dll, or anything like that) or "lib" prefix.
If this option is omitted,
.I
app
is used as the output file.
.RE
.P
.BR \-O , \ \-\-output\-dir
.I dir
.RS
Makes
.I
dir
the directory to which the final result produced by the compiler is written.
If this option is omitted,
.I .
is used as the output directory.
.RE
.P
.BR \-p , \ \-\-parser
.I
parser
.RS
Uses either
.BI libaquacparsing parser .so
or
.I
parser
as the parser assembly generating the AST for the code generator.
.RE
.P
.BR \-s , \ \-\-no\-std
.RS
Doesn't add
.B
libaquastd
to the dependency list.
.RE
.P
.BR \-t , \ \-\-this\-machine
.RS
Only compiles the program for the host machine.
.RE
.P
.BR \-w , \ \-\-no\-warnings
.RS
Disables warnings.
.RE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment