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.
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 stdout.
- --eval source
- Evaluate a 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.
- --indent val
- When compiling, use the given string as indentation for the compiler
output. This should consist of whitespace.
- --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 addition 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.
- --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.
- -h, --help
- Print a help message and exit
- -v, --version
- Print the version number and exit
See https://fennel-lang.org/tutorial and https://fennel-lang.org/reference for
documentation on Fennel. The syntax is based on the lisp family of languages
while 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-2021, Released under the MIT/X11 license