id = "mit-scheme"
name = "MIT/GNU Scheme"
homepage = "https://www.gnu.org/software/mit-scheme/"
description = "An implementation of the Scheme programming language."
executables = ["scheme"]
[dotfiles]
paths = ["~/.scheme.init", "~/.edwin"]
secret = []
side_effect = false
[commands]
format = 1
label = "Run Scheme"
description = "Start the MIT/GNU Scheme REPL with an optional heap size, init-file skip, and files or expressions to load. Other microcode options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "manual"
kind = "manual"
url = "https://www.gnu.org/software/mit-scheme/documentation/stable/mit-scheme-user/Command_002dLine-Options.html"
revision = "MIT/GNU Scheme 12.1"
evidence = """
--heap blocks
Specifies the size of the heap in 1024-word blocks.
--no-init-file
This option causes Scheme to ignore the ${HOME}/.scheme.init
--eval expression …
--load file …
"""
[[commands.field]]
id = "heap"
label = "Heap size (1024-word blocks)"
type = "integer"
option = ["--heap"]
sources = ["manual"]
[[commands.field]]
id = "no_init_file"
label = "Skip ~/.scheme.init"
type = "boolean"
option = ["--no-init-file"]
sources = ["manual"]
[[commands.field]]
id = "load"
label = "Load file"
type = "path"
path = { kind = "file", role = "input" }
option = ["--load"]
multiple = true
sources = ["manual"]
[[commands.field]]
id = "eval"
label = "Evaluate expression"
type = "string"
option = ["--eval"]
multiple = true
sources = ["manual"]
[[commands.task]]
id = "repl"
label = "Open REPL"
fields = ["heap", "no_init_file"]
[[commands.task]]
id = "load"
label = "Load a file"
fields = ["load", "no_init_file"]
required = ["load"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["load", "eval", "no_init_file", "heap"]