gosh - a Scheme script interpreter
SYNOPSIS
gosh
[-biqV]
[-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 ...
]
DESCRIPTION
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.
OPTIONS
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.
- -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.
- -ptype
-
Turns on the profiler.
Type
can be either 'time' or 'load'.
- -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".
- -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.
- -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-source-info don't retain source information.
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.
ENVIRONMENT
- 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.
AUTHORS
Shiro Kawai (shiro @ acm . org)
SEE ALSO
gauche-config(1)
Gauche Scheme script engine:
https://practical-scheme.net/gauche/
For the information about Scheme language, see
https://www.schemers.org/
Markup created by unroff 1.0sc, March 04, 2023.