.\" dummy line .TH MZSCHEME 1 "August 2002" .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 \ expr .TP .BI \--eval \ expr Evaluates .I expr after .I MzScheme starts. .TP .BI \-f \ file .TP .BI \--load \ file Loads .I file after .I MzScheme starts. .TP .BI \-d \ file .TP .BI \--load-cd \ file Load/cds .I file after .I MzScheme starts. .TP .BI \-t \ file .TP .BI \--require \ file Requires .I file after .I MzScheme starts. .TP .B \-F .TP .B \--Load .br Loads all remaining arguments after .I MzScheme starts. .TP .B \-D .TP .B \--Load-cd .br Load/cds all remaining arguments after .I MzScheme starts. .TP .B \-T .TP .B \--Require .br Requires all remaining arguments after .I MzScheme starts. .TP .BI \-l \ file .TP .BI \--mzlib \ file Same as .BR -e \ '(require\ (lib\ "\|\c .I file\|\c "))'. .TP .BI \-L \ file \ coll Same as .BR -e \ '(require\ (lib\ "\|\c .I file\|\c " "\|\c .I coll\|\c "))'. .TP .BI \-M \ coll Same as .BR -e \ '(require\ (lib\ "\|\c .I coll\|\c \|.ss" "\|\c .I coll\|\c "))'. .TP .B \-r .TP .B \--script Script mode: use as last flag for scripts. Same as .BR -fmv- . .TP .B \-i .TP .B \--script-cd Like -r, but also sets the directory. Same as .BR -dmv- . .TP .B \-u .TP .B --require-script Like -r, but requires a module. Same as .BR -tmv- . .TP .B \-i .TP .B \-w .TP .B \--awk Same as .B -l .BR awk.ss . .TP .BI \-k \ n \ m Load executable-embedded code from file offset .I n to .IR m . .TP .B \-C .TP .B \--main Call `main' with a list of argument strings, but only if there have been no uncaught exceptions from previous file loads or evaluations. .PP .SH INITIALIZATION OPTIONS .TP .B \-x .TP .B \--no-lib-path Skips trying to set current-library-collection-paths. .TP .B \-q .TP .B \--no-init-file Skips trying to load "~/.mzschemerc". .TP .B \-A .TP .B \--no-argv Skips defining `argv' and `program'. .PP .SH LANGUAGE SETTING OPTIONS .TP .B \-g .TP .B \--case-sens Identifiers and symbols are initially case-sensitive. .B \-s .TP .B \--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 .TP .B \--persistent Catches AIX SIGDANGER (low page space) signal. (AIX only) .TP .B \-m .TP .B \--mute-banner Suppresses the startup banner. .TP .B \-v .TP .B \--version Suppresses the read-eval-print loop. .TP .B \-h .TP .B \--help Shows help for command-line arguments. .TP .BI \-R file .TP .BI \--restore \ file Restores an image; must be the only switch. (Special versions only) .SH OPTION CONVENTIONS Multiple single-letter switches can be collapsed, with arguments placed after the collapsed switches; the first collapsed switch cannot be .BR -- . E.g.: .B -vfme file expr is the same as .B -v -f file -m -e .BR expr . .PP Extra arguments following the last switch 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 Extra arguments after a .B --restore file are returned as a vector of strings to the continuation of the `write-image-to-file' call that created the image. .PP Expressions/files are evaluated/loaded in order as provided. .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 switch 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 -qAerC '(require (lib "init.ss" "script-lang" "\|\c .I dialect\|\c "))' so that the first actual command-line argument is the name of a file to load; the file should define `main', which is called with the remaining arguments in a list. .SH FILES The file "~/.mzschemerc" is loaded before any provided expressions/files are evaluated/loaded, unless the .B -q or .B --no-init-file switch is used. .PP The library collections search path is read from the PLTCOLLECTS environment variable (as a colon-separated list of paths). Wherever the empty path appears appears in PLTCOLLECTS, it is replaced with the default collections directory. If PLTCOLLECTS is not defined, the default collections directory is used as the only element in the search path. .PP .I MzScheme looks for the default collections directory as one of the following (tried in order): .IP The path in the environment variable PLTHOME is checked for a "collects" subdirectory. .IP If .I MzScheme was invoked with an absolute pathname, the directory of the invoked executable is checked. If the executable is a link, the directory of the referenced file is also checked, recursively following links. The parent directories and the parent's parent directories are also checked (in case .I MzScheme is in a "bin" directory or a ".bin/\c .I platform\|\c " directory). .IP If .I MzScheme is invoked with a relative pathname, the directories in the PATH environment variable containing a file with the name of the program as invoked (usually "mzscheme") are checked. Links and parent directories are followed as in the first case. .IP The "/usr/pkg/lib/plt/collects" directory is tried. .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@cs.utah.edu). 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 help-desk(1), .BR drscheme(1), .BR mred(1)