U6A(1) U6a User Manual U6A(1)

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.

u6a(1)

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.

January 30, 2020 0.1.1