u6ac - Bytecode compiler for the Unlambda programming language
u6ac [options] source-file
Read and compile Unlambda code from the given source-file, or
STDIN if "-" is given. Compilation result is saved in a
special bytecode format, which can be executed with u6a(1).
- -o, --output=out-file
- Save compiled bytecode to out-file, defaults to source-file
name with ".bc" (".bc.dump" if -S option is
enabled) suffix, or STDOUT if the source file is read from
STDIN.
- --add-prefix[=prefix-string]
- Add prefix-string to the beginning of out-file. Defaults to
"#!/usr/bin/env u6a\n".
- -O[optimization-level]
- Compile-time optimization level. -O0: Turn off optimization.
-O1(default): Turn on basic optimizations, including constant
folding & propagation, dead code elimination, etc.
- --syntax-only
- Only check for lexical and syntactic correctness of the source file, and
skips bytecode generation.
- -S
- Produce mnemonic pseudo-instructions instead of bytecode.
- -v, --verbose
- Print extra debug messages to STDOUT. When this option is enabled,
out-file should not be STDOUT.
- -H, --help
- Prints help message, then exit.
- -V, --version
- Prints version number, then exit.
- Language features:
- All features of Unlambda 2.0 are supported, including I/O functions,
continuations and promises.
- Comments:
- Text in line comments is not restricted to ASCII only. UTF-8 format is
also supported.
- Function names:
- Charactor X in functions .X and ?X must be printable ASCII
or "\n" (beware if you are using Windows-style newlines), and
are case-sensitive. Other builtin function names are
case-insensitive.
Unlambda code size should not be larger than 4MiB (not counting comments and
whitespaces). You may change this limit in defs.h and rebuild U6a for
larger code to compile.
Copyright (c) 2020 CismonX <admin@cismon.net>
Copying and distribution of this file, with or without
modification, are permitted in any medium without royalty, provided the
copyright notice and this notice are preserved. This file is offered as-is,
without any warranty.