On this page:
restart-mzscheme
Version: 4.1

 (require mzlib/restart)

See scheme/sandbox for a more general way to simulate running a new PLT Scheme process.

(restart-mzscheme

 

init-argv

 

 

 

 

 

 

adjust-flag-table

 

 

 

 

 

 

argv

 

 

 

 

 

 

init-namespace)

 

 

boolean?

  init-argv : (vectorof string?)

  adjust-flag-table : (any/c . -> . any/c)

  argv : (vectorof string?)

  init-namespace : (-> any)

Simulates starting 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., -c or -j) 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. 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:

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.