GOSH(1)

NAME
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/