racket/man/man1/mzscheme.1
2007-12-18 18:57:33 +00:00

269 lines
5.8 KiB
Groff

.\" dummy line
.TH MZSCHEME 1 "November 2007"
.UC 4
.SH NAME
mzscheme \- The PLT Scheme implementation
.SH SYNOPSIS
.B mzscheme
[
.I option ...
] [
.I argument ...
]
.SH DESCRIPTION
.I MzScheme
is the PLT
Scheme implementation. It implements the language as
described in the
.I Revised^5 Report on
.I the Algorithmic Language Scheme
and adds numerous extensions.
.PP
.I MrEd
embeds and extends MzScheme with a graphical user interface (GUI) toolbox.
.PP
.I DrScheme
is the graphical development environment for creating
.I MzScheme
and
.I MrEd
applications.
.SH STARTUP FILE AND EXPRESSION OPTIONS
.TP
.BI \-e \ exprs\fR,\ \fP \-\^\-eval \ exprs
Evaluates
.I exprs
and prints each result.
.TP
.BI \-f \ file\fR,\ \fP \-\^\-load \ file
Loads
.I file
and prints the last result from the file.
.TP
.BI \-t \ file\fR,\ \fP \-\^\-require \ file
Requires
.I file
.TP
.BI \-l \ path\fR,\ \fP \-\^\-lib \ path
Same as
.BR -e \ '(require\ (lib\ "\|\c
.I path\|\c
"))'.
.TP
.BI \-p \ file \ user \ package
Same as
.BR -e \ '(require\ (planet\ "\|\c
.I file\|\c
\|" "\|\c
.I user\|\c
\|" "\|\c
.I package\|\c
"))'.
.TP
.TP
.B \-r\fR,\fP \-\^\-script
Script mode; same as
.BR -f- .
.TP
.B \-u\fR,\fP \-\^\-require-script
Module script mode; same as
.BR -t- .
.TP
.BI \-k \ n \ m\
Load executable-embedded code from file offset
.I n
to
.IR m .
.TP
.B \-m\fR,\fP \-\^\-main
Calls `main' with command-line arguments.
.PP
.SH INITIALIZATION OPTIONS
.TP
.BI \-X \ dir\fR,\ \fP \-\^\-collects \ dir
Sets
.I dir
as the location of the main "collects" directory. If
.I dir
is relative, it is relative to the executable.
.TP
.BI \-S \ dir
.TP
.BI \-\^\-search \ dir
Adds
.I dir
to the search path for library collections. If
.I dir
is relative, it is relative to the executable.
.TP
.B \-U\fR,\fP \-\^\-no-user-path
Ignores PLTHOME, and omits the user-specific "collects" directory
from the search path for library collections.
.TP
.B \-x\fR,\fP \-\^\-no-lib-path
Skips trying to set current-library-collection-paths.
.TP
.B \-q\fR,\fP \-\^\-no-init-file
Skips trying to load "~/.mzschemerc".
.TP
.BI \-N \ file\fR,\ \fP \-\^\-name \ file
Sets the program name to
.IR name .
.TP
.B \-A\fR,\fP \-\^\-no-argv
Skips defining `argv' and `program'.
.PP
.SH LANGUAGE SETTING OPTIONS
.TP
.B \-Q\fR,\fP \-\^\-prim
Assume primitive bindings at top level by initializing the environment with
`(require mzscheme)'.
.TP
.B \-g\fR,\fP \-\^\-case-sens
Identifiers and symbols are initially case-sensitive (the default).
.TP
.B \-G\fR,\fP \-\^\-case-insens
Identifiers and symbols are initially case-insensitive.
.TP
.B \-s\fR,\fP \-\^\-set-undef
Set! works on undefined identifiers.
.PP
.SH MISCELLANEOUS OPTIONS
.TP
.B \-\^\-
.br
No argument following this switch is used as a switch.
.TP
.B \-p\fR,\fP \-\^\-persistent
Catches AIX SIGDANGER (low page space) signal. (AIX only)
.TP
.B \-m\fR,\fP \-\^\-mute-banner
Suppresses the startup banner.
.TP
.B \-v\fR,\fP \-\^\-version
Suppresses the read-eval-print loop.
.TP
.B \-h\fR,\fP \-\^\-help
Shows help for command-line arguments.
.SH COMMAND-LINE CONVENTIONS
Multiple single-letter switches can be collapsed, with arguments placed
after the collapsed swicthes; the first collapsed switch cannot be
.BR -- .
E.g.:
.B -vfme
.I file
.I expr
is the same as
.B -v -f
.I file
.B -m -e
.IR expr .
.PP
Extra arguments following the last option are put into the Scheme global
variable `argv' as a vector of strings. The name used to start
.I MzScheme
is put into the global variable `program' as a string.
.PP
Expressions/files are evaluated/loaded in order as provided, including
calls to
.B main
implied by
.BR --main ,
embedded segments loaded by
.BR -k ,
and so on. An uncaught exception during an evaluation/load causes later
evaluations/loads to be skipped.
.PP
The current-library-collections-paths parameter is automatically set before any
expressions/files are evaluated/loaded, unless the
.B -x
or
.B --no-lib-path
option is used.
.SH EXECUTABLE NAME
If the executable name has the form scheme-\|\c
.I dialect\|\c
, then the command line is effectively prefixed with
.ce 1
-qAeC '(require (lib "init.ss" "script-lang" "\|\c
.I dialect\|\c
"))'
The first actual command-line argument thus serves as the name of a file
to load. The file should define
.BR main ,
which is called with the command-line arguments---starting with the
loaded file name---as a list of immutable strings.
.SH FILES
The file "~/.mzschemerc" is loaded before any provided
expressions/files are evaluated/loaded, unless the
.B -q
or
.B --no-init-file
option is used.
.PP
Unless the
.B -U
or
.B --no-user-path
option is provided, the library collections search
path is read from the PLTCOLLECTS environment variable
(as a colon-separated list of paths). Where the empty path
appears in PLTCOLLECTS, it is replaced with the default
collections directory search path.
.SH EXECUTABLE SCRIPTS
The most flexible way to create an executable script file is to
trampoline through /bin/sh, using a #| ... |# block-comment trick to make the first few lines
parseable by both /bin/sh and mzscheme. Here's an example:
.PP
.PD 0
.PP
#! /bin/sh
.PP
#|
.PP
exec mzscheme -qr "$0" ${1+"$@"}
.PP
|#
.PP
(display "Hello, world!")
.PP
(newline)
.PD
.SH MORE INFORMATION
For further information on
.IR MzScheme ,
please consult the on-line
documentation and other information available at
.PP
.ce 1
http://www.plt-scheme.org/software/mzscheme/
.SH BUGS
Submit bug reports via
.ce 1
http://bugs.plt-scheme.org/ (encouraged)
or by e-mail to
.ce 1
bugs@plt-scheme.org (discouraged)
.SH AUTHOR
.I MzScheme
was implemented by Matthew Flatt (mflatt@plt-scheme.org).
It uses the conservative garbage collector implemented by Hans
Boehm and extended by John Ellis. MzScheme was originally based
on libscheme, written by Brent Benson.
.SH SEE ALSO
.BR plt-help(1),
.BR drscheme(1),
.BR mred(1)