gosh - a Scheme script interpreter
gosh [-bhiqV] [-I path ] [-A path ] [-u
module ] [-l file ] [-L file ] [-e expr ] [-E
expr ] [-m module ] [-f flag ] [-F feature ] [-p
type ] [-r standard ] [--] [ script argument ... ]
Gosh is a stand-alone Scheme interpreter built on top of
the Gauche Scheme script engine.
When script is given, gosh loads the script, evaluating
Scheme code in it. Then, if the script defines a procedure named
main, gosh calls it with a single argument which is a list of the
script name and subsequent arguments. When main returns an integer
value, gosh exits with it as an exit code. If main returns
non-integer value, or an error is signaled during evaluation, gosh exits
with exit code 70 (EX_SOFTWARE). See SRFI-22
(http://srfi.schemers.org/srfi-22/srfi-22.html) for details. If there's no
main procedure defined in the script, gosh exits with code 0 after
loading the script file.
If no script file is given, gosh goes into an interactive mode. By
default, gosh prompts the user to enter a Scheme expression, read and
evaluates it, then prints the result, until EOF is read. If the standard
input is not a terminal, however, gosh doesn't print a prompt; it allows a
user to use gosh as a filter program. This behavior can be controlled by -i
or -b option; see below.
Command line options are processed before loading the script file
or entering the interactive mode.
The options -I, -A, -u, -l, -L, -e and -E are processed in the
order of appearance. For example, adding a load path by -I option affects
the -l options after it, but not the ones before it.
- -V
- Prints gosh version and exits.
- -b
- Batch mode. Doesn't print prompt even the standard input is a terminal.
Supersedes -i.
- -h
- Print help message to stdout and exit with 0.
- -i
- Interactive mode. Forces to print prompt, even the standard input is not a
terminal.
- -q
- Prevents reading the default initialization file.
- -Ipath
- Adds path in front of the load path list.
- -Apath
- Appends path to the tail of the load path list.
- -umodule
- Loads and imports module, as if "(use module )" is
specified in the code.
- -lfile
- Loads a Scheme file file.
- -Lfile
- Like -l, but doesn't complain if file doesn't exist.
- -eexpr
- Evaluates a Scheme expression expr.
- -Eexpr
- Same as -e, except that the expr is read as if it is surrounded by
parenthesis.
- -mmodule
- When the script file is given, this option specifies the name of the
module in which the "main" procedure is defined. The default is
"user".
- -ptype
- Turns on the profiler. Type can be either 'time' or 'load'.
- -rstandard
- Starts gosh with the default environment defined in RnRS, where n is
determined by standard. Currently, only 7 is the valid value of
standard.
- -vversion
- If version is not the running Gauche's version, but the specified
verision is installed in the system, execute taht version's gosh instead.
This is useful when you want to invoke a specific version of Gauche. The
version must be 0.9.6 or later.
- -fflag
- Sets various flags.
case-fold use case-insensitive reader (as in R5RS)
load-verbose report while loading files
include-verbose report while including files
no-inline don't inline primitive procedures and constants
(combined no-inline-globals, no-inline-locals,
no-inline-constants and no-inline-setters.)
no-inline-globals don't inline global procedures.
no-inline-locals don't inline local procedures.
no-inline-constants don't inline constants.
no-inline-setters don't inline setters.
no-post-inline-pass don't run post-inline optimization pass.
no-lambda-lifting-pass don't run lambda lifting optimization pass.
no-post-inline-pass don't run post-inline optimization pass.
no-source-info don't retain source information.
read-edit enable input editing mode, if terminal supports it.
no-read-edit disable input editing mode.
safe-string-cursors performs extra validation for use of string cursors.
warn-legacy-syntax print warning when legacy Gauche syntax
is encountered.
test assume being run in the build tree; tries to
load files from the current build instead of
installation directories. Useful to test
the build without installation.
- -Ffeature
- Makes feature available in cond-expand forms.
- --
- Specifies that there are no more options. If there are more arguments
after this, they are taken as script file name and its arguments.
- GAUCHE_LOAD_PATH
- A colon separated list of the load paths.
- The paths are appended before the system default load paths.
- GAUCHE_DYNLOAD_PATH
- A colon separated list of the load paths for dynamically loaded
- objects. The paths are appended before the system default load paths.
Shiro Kawai (shiro @ acm . org)
gauche-config(1)
Gauche Scheme script engine:
https://practical-scheme.net/gauche/
For the information about Scheme language, see
https://www.schemers.org/