id = "ecl"
name = "Embeddable Common-Lisp"
homepage = "https://ecl.common-lisp.dev/"
description = "Embeddable Common Lisp is an implementation of the Common-Lisp language."
executables = ["ecl"]
[dotfiles]
paths = ["~/.ecl", "~/.eclrc"]
secret = []
[commands]
format = 1
label = "Run Lisp or compile"
description = "Run a Lisp script, load files or evaluate before the REPL, or compile a file to a native program. Linking, encodings and stack/heap sizing are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "manpage"
kind = "manual"
url = "https://manpages.debian.org/unstable/ecl/ecl.1.en.html"
revision = "2026-10-27"
evidence = """
-?, --help
-v, --version,
--norc
--load file
--shell file
--eval file
-o file
-q
--compile file
Evaluate the file before loading the .rc file and starting
--shell file
Executes the given file and exits, without providing a
--compile file
Translates file to C and invokes the local C compiler to produce a
-o file
Provide the output target file for compilation.
-q
Short for quiet -- produce less notes.
"""
[[commands.field]]
id = "shell"
label = "Run script and exit"
type = "path"
option = ["--shell"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["manpage"]
[[commands.field]]
id = "load"
label = "Load file first"
type = "path"
option = ["--load"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["manpage"]
[[commands.field]]
id = "eval"
label = "Evaluate expression"
description = "The manual calls the value a file; ECL evaluates it before the REPL starts."
type = "string"
option = ["--eval"]
sources = ["manpage"]
[[commands.field]]
id = "norc"
label = "Skip configuration files"
type = "boolean"
option = ["--norc"]
sources = ["manpage"]
[[commands.field]]
id = "compile"
label = "Compile file to native program"
type = "path"
option = ["--compile"]
path = { kind = "file", role = "input", must_exist = true }
sources = ["manpage"]
[[commands.field]]
id = "output"
label = "Compile output file"
type = "path"
option = ["-o"]
path = { kind = "file", role = "output", must_exist = false }
effect = "overwrite"
sources = ["manpage"]
[[commands.field]]
id = "quiet"
label = "Quiet compile"
type = "boolean"
option = ["-q"]
sources = ["manpage"]
[[commands.task]]
id = "script"
label = "Run a script"
fields = ["shell", "norc"]
required = ["shell"]
[[commands.task]]
id = "compile"
label = "Compile a file"
fields = ["compile", "output", "quiet"]
required = ["compile"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["shell", "load", "eval", "compile", "output"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["norc", "quiet"]