40 mzlib/sandbox

▼ |  | Mz Lib: Legacy Racket Libraries

1 | mzlib/ a-signature
2 | mzlib/ a-unit
3 | mzlib/ async-channel
4 | mzlib/ awk
5 | mzlib/ class
6 | mzlib/ class100
7 | mzlib/ cm
8 | mzlib/ cm-accomplice
9 | mzlib/ cmdline
10 | mzlib/ cml
11 | mzlib/ compat
12 | mzlib/ compile
13 | mzlib/ contract
14 | mzlib/ control
15 | mzlib/ date
16 | mzlib/ deflate
17 | mzlib/ defmacro
18 | mzlib/ etc
19 | mzlib/ file
20 | mzlib/ for
21 | mzlib/ foreign
22 | mzlib/ include
23 | mzlib/ inflate
24 | mzlib/ integer-set
25 | mzlib/ kw
26 | mzlib/ list
27 | mzlib/ match
28 | mzlib/ math
29 | mzlib/ md5
30 | mzlib/ os
31 | mzlib/ pconvert
32 | mzlib/ pconvert-prop
33 | mzlib/ plt-match
34 | mzlib/ port
35 | mzlib/ pregexp
36 | mzlib/ pretty
37 | mzlib/ process
38 | mzlib/ restart
39 | mzlib/ runtime-path
40 | mzlib/ sandbox
41 | mzlib/ sendevent
42 | mzlib/ serialize
43 | mzlib/ shared
44 | mzlib/ string
45 | mzlib/ struct
46 | mzlib/ stxparam
47 | mzlib/ surrogate
48 | mzlib/ tar
49 | mzlib/ thread
50 | mzlib/ trace
51 | mzlib/ traceld
52 | mzlib/ trait
53 | mzlib/ transcr
54 | mzlib/ unit
55 | mzlib/ unit-exptime
56 | mzlib/ unit200
57 | mzlib/ unitsig200
58 | mzlib/ zip
| Bibliography
| Index

On this page:

make-evaluator

top← prev up next →

( require mzlib/sandbox)

The mzlib/sandbox library mostly re-exports scheme/sandbox, but it provides a slightly different make-evaluator function.

The library re-exports the following bindings:

sandbox-init-hook
sandbox-reader
sandbox-input
sandbox-output
sandbox-error-output
sandbox-propagate-breaks
sandbox-coverage-enabled
sandbox-namespace-specs
sandbox-override-collection-paths
sandbox-security-guard
sandbox-path-permissions
sandbox-network-guard
sandbox-make-inspector
sandbox-eval-limits
kill-evaluator
break-evaluator
set-eval-limits
put-input
get-output
get-error-output
get-uncovered-expressions
call-with-limits
with-limits
exn:fail:resource?
exn:fail:resource-resource

( make-evaluator |  | language |  |  |  |
|  | requires |  |  |  |
|  | input-program ...) |  | → |  | (any/c . -> . any)

language

:

(or/c module-path?
(one-of/c 'r5rs 'beginner 'beginner-abbr
'intermediate 'intermediate-lambda 'advanced)
(list/c (one-of/c 'special) symbol?)
(list/c (one-of/c 'special) symbol?)
(cons/c (one-of/c 'begin) list?))

requires

:

(or/c (cons/c 'begin list?)
(listof (or/c module-path? path?)))

input-program : any/c
( make-evaluator module-decl) → (any/c . -> . any)
module-decl : (or/c syntax? pair?)

Like make-evaluator or make-module-evaluator, but with several differences:

- The language argument can be one of a fixed set of symbols: 'r5rs, etc. They are converted by adding a ( list 'special ....) wrapper.

- If requires starts with 'begin, then each element in the remainder of the list is effectively evaluated as a prefix to the program. Otherwise, it corresponds to the #:requires argument of make-evaluator.

- For each of language and requires that starts with 'begin, the expressions are inspected to find top-level require forms (using symbolic equality to detect require), and the required modules are added to the #:allow list for make-evaluator.

top← prev up next →