id = "sbcl" name = "SBCL" homepage = "https://www.sbcl.org" description = "Steel Bank Common Lisp (SBCL) is a high performance Common Lisp compiler." executables = ["sbcl"] [dotfiles] # sbcl(1), FILES: the system init file is "sbclrc" in $SBCL_HOME and then /etc, # "unless overridden by the --sysinit command line option", and the user init # file is ".sbclrc" in "the user's home directory, or as specified by # --userinit". The manual lists the same set — $SBCL_HOME/sbclrc, /etc/sbclrc, # $HOME/.sbclrc, ~/.sbclrc — and only the last is per user. On Windows the home # spelling is %USERPROFILE%\.sbclrc, which resolves to the same path as # ~/.sbclrc. paths = ["~/.sbclrc"] exclude = [] # No credential of its own. A Quicklisp dist that needs authentication keeps its # own file under ~/quicklisp, which is not this entry. secret = [] # Read once when an image starts and not held open afterwards, so rewriting it # under a running REPL is harmless — the next `sbcl` picks it up. side_effect = false # No machine_lines: an .sbclrc is require forms, reader tweaks and debugger # settings, which is what a user wants everywhere. The Quicklisp block it # usually starts with names a path under the home directory, so it is the same # string on every machine. [commands] format = 1 label = "Run Lisp" description = "Start SBCL, evaluate expressions or load files, or run a script. Core selection, memory sizing and the less common runtime switches are partly covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://github.com/sbcl/sbcl/blob/master/doc/sbcl.1" revision = "2026-10-27" evidence = """ --dynamic-space-size --noinform Suppress the printing of any banner or other informational message at startup. --eval --load --no-userinit --no-sysinit --noprint --disable-debugger --non-interactive --script """ [[commands.field]] id = "script" label = "Script file" description = "Load this file and exit instead of entering the REPL." type = "path" option = ["--script"] path = { kind = "file", role = "input" } sources = ["man"] [[commands.field]] id = "eval" label = "Expression to evaluate" description = "Evaluated before the REPL starts. Repeat for several." type = "string" option = ["--eval"] multiple = true sources = ["man"] [[commands.field]] id = "load" label = "File to load" type = "path" option = ["--load"] multiple = true path = { kind = "file", role = "input" } sources = ["man"] [[commands.field]] id = "non_interactive" label = "Non-interactive" description = "Disable the debugger and exit after processing the options." type = "boolean" option = ["--non-interactive"] sources = ["man"] [[commands.field]] id = "noinform" label = "No banner" type = "boolean" option = ["--noinform"] sources = ["man"] [[commands.field]] id = "noprint" label = "No prompt or result echo" type = "boolean" option = ["--noprint"] sources = ["man"] [[commands.field]] id = "disable_debugger" label = "Disable debugger" type = "boolean" option = ["--disable-debugger"] sources = ["man"] [[commands.field]] id = "no_userinit" label = "Skip user init file" type = "boolean" option = ["--no-userinit"] sources = ["man"] [[commands.field]] id = "no_sysinit" label = "Skip system init file" type = "boolean" option = ["--no-sysinit"] sources = ["man"] [[commands.field]] id = "dynamic_space_size" label = "Dynamic space size" description = "Units kb, MB, GB or TB; the default unit is megabytes." type = "string" option = ["--dynamic-space-size"] suggestions = [{ value = "2GB", label = "2 GB" }, { value = "8GB", label = "8 GB" }] sources = ["man"] [[commands.task]] id = "run-script" label = "Run a script" fields = ["script", "dynamic_space_size"] required = ["script"] [[commands.task]] id = "batch-eval" label = "Evaluate expressions and exit" set = { non_interactive = [true], noinform = [true] } lock = ["non_interactive"] fields = ["eval", "load", "non_interactive", "noinform", "no_userinit"] required = ["eval"] [[commands.task]] id = "repl-load" label = "REPL with files loaded" fields = ["load", "eval", "noinform", "no_userinit"] required = ["load"] [[commands.group]] id = "basic" label = "Basic" fields = ["script", "eval", "load", "non_interactive", "noinform"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["noprint", "disable_debugger", "no_userinit", "no_sysinit", "dynamic_space_size"]