Next: Sharing: shared.ss
Up: MzLib Libraries
Previous: Requiring Libraries and Files:
Files: restart.ss, restartu.ss, restartr.ss, restarts.ss
Requires: cmdlines.ss
Opened form requires: cmdlineu.ss
Signature: mzlib:restart^
Unit: mzlib:restart@, imports mzlib:command-line^
(restart-mzscheme init-argv adjust-flag-table argv init-namespace) PROCEDURE
Simulates starting the stand-alone version of MzScheme with the vector
of command-line strings argv. The init-argv,
adjust-flag-table, and init-namespace arguments are used
to modify the default settings for command-line flags, adjust the
parsing of command-line flags, and customize the initial namespace,
respectively.
The vector of strings init-argv is read first with the standard
MzScheme command-line parsing. Flags that load files or evaluate
expressions (e.g., -f and -e) are ignored, but flags that
set MzScheme's modes (e.g., -g or -m) effectively set the
default mode before argv is parsed.
Before argv is parsed, the procedure adjust-flag-table is
called with a command-line flag table as accepted by
parse-command-line (see section 15.2.3). The return
value must also be a table of command-line flags, and this table is
used to parse argv. The intent is to allow
adjust-flag-table to add or remove flags from the standard set.
After argv is parsed, a new thread and a namespace are created
for the ``restarted'' MzScheme. (The new namespace is installed as
the current namespace in the new thread.) In the new thread,
restarting performs the following actions:
- The init-namespace procedure is called with no arguments.
The return value is ignored.
- Expressions and files specified by argv are evaluated and
loaded. If an error occurs, the remaining expressions and files are
ignored, and the return value for restart-mzscheme is set to
#f.
- The read-eval-print-loop procedure is called, unless a
flag in init-argv or argv disables it. When
read-eval-print-loop returns, the return value for
restart-mzscheme is set to #t.
Before evaluating command-line arguments, an exit handler is installed
that immediately returns from restart-mzscheme with the value
supplied to the handler. This exit handler remains in effect when
read-eval-print-loop is called (unless a command-line argument
changes it). If restart-mzscheme returns normally, the return
value is determined as described above. (Note that an error in a
command-line expression followed by read-eval-print-loop
produces a #t result. This is consistent with MzScheme's
stand-alone behavior.)
Next: Sharing: shared.ss
Up: MzLib Libraries
Previous: Requiring Libraries and Files:
PLT