Requiring Libraries and Files: refer.ss

Next: Restarting MzScheme with Arguments: Up: MzLib Libraries Previous: Pretty Printing: pretty.ss

## Requiring Libraries and Files: `refer.ss`

Files: `refer.ss`
Requires: `spidey.ss`

This library provides syntactic forms that are needed to perform multi-file analysis with MrSpidey, DrScheme's static debugger.

`(begin-construction-time expr)` SYNTAX

Like `begin-elaboration-time`, this macro expands to the result of evaluating expr. This form is treated specially by `compile-file` (see section 15.2.5).

`(reference-file filename)` SYNTAX

Loads filename with `load/use-compiled`. The difference between `reference-file` and `load/use-compiled` is that `reference-file` is a syntactic form where filename must be a syntactic string constant. Also, when `reference-file` is used in a program analyzed by MrSpidey, the referenced file is syntactically included for analysis purposes.

`(require-library-unit filename collection )` SYNTAX

Like `require-unit`, but `require-library/proc` is used instead of `load/use-compiled`. This form is not useful in MzLib since all MzLib libraries use signed units.

`(require-library-unit/sig filename collection )` SYNTAX

Like `require-unit/sig`, but `require-library/proc` is used instead of `load/use-compiled`.

`(require-relative-library-unit filename collection )` SYNTAX

Like `require-unit`, but `require-relative-library/proc` is used instead of `load/use-compiled`.

`(require-relative-library-unit/sig filename collection )` SYNTAX

Like `require-unit/sig`, but `require-relative-library/proc` is used instead of `load/use-compiled`.

`(require-unit filename)` SYNTAX

Loads filename with `load/use-compiled` and checks that the result is a unit value; otherwise, the `exn:unit` exception is raised. The result of loading the file is the result of the `require-unit` expression. The filename must be a syntactic string constant.

MrSpidey expects filename to contain a single expression. MrSpidey will only accept the program if the the expression in filename is closed except for MzScheme built-in names. MrSpidey must also be able to deduce that the value of the expression is a unit.

`(require-unit/sig filename)` SYNTAX

Like `require-unit`, except that the value returned by `load/use-compiled` must be a sighed unit; otherwise, the `exn:unit` exception is raised.

MrSpidey will accept this form only when it is able to deduce that the value of the expression in filename is a signed unit.

Next: Restarting MzScheme with Arguments: Up: MzLib Libraries Previous: Pretty Printing: pretty.ss