1FENNEL(1) General Commands Manual FENNEL(1)
2
3
4
6 fennel - a lisp programming language that runs on Lua
7
9 fennel [--repl] | [--compile filename] | [--eval source] | [filename]
10 [args ...]
11
12
14 This manual page documents briefly the fennel command.
15
16 fennel is the main entry point for Fennel, a lisp programming language
17 that runs on Lua runtimes. With no options or arguments, it runs an in‐
18 teractive Read-Eval-Print loop (REPL).
19
20 Given a filename as its first argument, it runs that file and passes it
21 the subsequent arguments. Ahead-of-time compilation can be invoked with
22 the --compile flag, while short snippets can be evaluated with the
23 --eval argument.
24
25
27 A summary of options is included below.
28
29 --repl Start an interactive repl session. This is the default when
30 given no arguments.
31
32 --compile filename
33 Perform ahead-of-time compilation on the provided file and write
34 the Lua output to stdout.
35
36 --eval source
37 Evaluate a piece of source code and print the result.
38
39 --no-searcher
40 When running a repl or a file, fennel.searcher is installed by
41 default so that the require function can load Fennel files in
42 addition to Lua files. This flag disables that behavior. Has no
43 effect for ahead-of-time compilation.
44
45 --add-package-path path
46 Add the given path to package.path so that the require function
47 will know to look there when searching for Lua modules.
48
49 --add-fennel-path path
50 Same as above, but for Fennel's path used when searching for
51 Fennel modules.
52
53 --globals VAR1[,VAR2...]
54 Allow VAR1, VAR2, etc as globals in addition to the standard set
55 of globals. This enables strict global checking even in ahead-
56 of-time compilation where it otherwise would be disabled. Use
57 "*" to disable globals checking.
58
59 --globals-only VAR1[,VAR2...]
60 Same as above, but without the inclusion of the standard set of
61 globals.
62
63 --require-as-include
64 Instead of loading required modules at runtime, compile them in‐
65 line into the main file being compiled. Only useful during
66 ahead-of-time compilation.
67
68 --use-bit-lib
69 Compile bitwise operations to use LuaJIT's bitop library instead
70 of Lua 5.3+ bitwise operators.
71
72 --load FILE
73 Load the specified file before any command is run.
74
75 --compile-binary FILE OUT LUA_LIB LUA_DIR
76 Compile FILE to a standalone binary OUT using LUA_LIB and the
77 Lua header files in LUA_DIR. See --compile-binary --help for de‐
78 tails.
79
80 --no-compiler-sandbox
81 Do not limit compiler environment (used in macros) to minimal
82 sandbox.
83
84 -h, --help
85 Print a help message and exit
86
87 -v, --version
88 Print the version number and exit
89
90 Use the NO_COLOR environment variable to disable escape codes in error
91 messages.
92
93
95 See https://fennel-lang.org/tutorial and https://fennel-lang.org/refer‐
96 ence for documentation on Fennel. The syntax is based on the lisp fam‐
97 ily of languages while the semantics are very close to Lua, so Lua's
98 reference manual is also helpful.
99
100
102 The mailing list is at https://lists.sr.ht/~technomancy/fennel while
103 the issue tracker is at https://todo.sr.ht/~technomancy/fennel. Most
104 discussion happens on the #fennel channel of Libera chat.
105
106
108 Calvin Rose and Phil Hagelberg and contributors:
109 https://github.com/bakpakin/Fennel/graphs/contributors
110
111
113 Copyright © 2016-2023, Released under the MIT/X11 license
114
115
116
117 FENNEL(1)