fennel - a lisp programming language that runs on Lua
fennel [--repl] | [--compile filename]
| [--eval source] | [filename] [args ...]
This manual page documents briefly the fennel command.
fennel is the main entry point for Fennel, a lisp
programming language that runs on Lua runtimes. With no options or
arguments, it runs an interactive Read-Eval-Print loop (REPL).
Given a filename as its first argument, it runs that file and
passes it the subsequent arguments. Ahead-of-time compilation can be invoked
with the --compile flag, while short snippets can be evaluated with
the --eval argument.
A summary of options is included below.
- --repl
- Start an interactive repl session. This is the default when given no
arguments.
- --compile
filename
- Perform ahead-of-time compilation on the provided file and write the Lua
output to standard out.
- --eval
source
- Evaluate a given piece of source code and print the result.
- --no-searcher
- When running a repl or a file, fennel.searcher is installed by
default so that the require function can load Fennel files in
addition to Lua files. This flag disables that behavior. Has no effect for
ahead-of-time compilation.
- --add-package-path
path
- Add the given path to package.path so that the require
function will know to look there when searching for Lua modules.
- --add-fennel-path
path
- Same as above, but for Fennel's path used when searching for Fennel
modules.
- --globals
VAR1[,VAR2...]
- Allow VAR1, VAR2, etc as globals in addition to the standard set of
globals. This enables strict global checking even in ahead-of-time
compilation where it otherwise would be disabled. Use "*" to
disable globals checking.
- --globals-only
VAR1[,VAR2...]
- Same as above, but without the inclusion of the standard set of
globals.
- --require-as-include
- Instead of loading required modules at runtime, compile them inline into
the main file being compiled. Only useful during ahead-of-time
compilation.
- --assert-as-repl
- Calls to the built-in function assert from Fennel will be replaced
with calls to assert-repl so that when the assertion fails, a REPL
will be started in which you can interactively debug.
- --use-bit-lib
- Compile bitwise operations to use LuaJIT's bitop library instead of Lua
5.3+ bitwise operators.
- --load
FILE
- Load the specified file before any command is run.
- --compile-binary
FILE OUT LUA_LIB LUA_DIR
- Compile FILE to a standalone binary OUT using LUA_LIB and the Lua header
files in LUA_DIR. See --compile-binary --help for details.
- --no-compiler-sandbox
- Do not limit compiler environment (used in macros) to minimal
sandbox.
- --keywords
KEYWORD1[,KEYWORD2...]
- Treat these symbols as reserved Lua keywords.
- -h, --help
- Print a help message and exit
- -v, --version
- Print the version number and exit
Use the NO_COLOR environment variable to disable escape codes in
error messages.
The semantics are very close to Lua, so Lua's reference manual is
also helpful.
The mailing list is at https://lists.sr.ht/~technomancy/fennel
while the issue tracker is at https://todo.sr.ht/~technomancy/fennel. Most
discussion happens on the #fennel channel of Libera chat.
Calvin Rose and Phil Hagelberg and contributors:
https://github.com/bakpakin/Fennel/graphs/contributors
Copyright © 2016-2024, Released under the MIT/X11
license