FENNEL(1) General Commands Manual FENNEL(1)

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.

Start an interactive repl session. This is the default when given no arguments.
Perform ahead-of-time compilation on the provided file and write the Lua output to standard out.
Evaluate a given piece of source code and print the result.
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 the given path to package.path so that the require function will know to look there when searching for Lua modules.
Same as above, but for Fennel's path used when searching for Fennel modules.
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.
Same as above, but without the inclusion of the standard set of globals.
Instead of loading required modules at runtime, compile them inline into the main file being compiled. Only useful during ahead-of-time compilation.
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.
Compile bitwise operations to use LuaJIT's bitop library instead of Lua 5.3+ bitwise operators.
Load the specified file before any command is run.
Compile FILE to a standalone binary OUT using LUA_LIB and the Lua header files in LUA_DIR. See --compile-binary --help for details.
Do not limit compiler environment (used in macros) to minimal sandbox.
Print a help message and exit
Print the version number and exit

Use the NO_COLOR environment variable to disable escape codes in error messages.

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-2023, Released under the MIT/X11 license