<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Well, I think you have to use module, not module+, and for some reason the quoted module name doesn’t work, and the (submod “.” some-lang) doesn’t work, but (submod “Untitled.rkt” some-lang) does:</div><div><div><br></div><div><font face="Courier New">#lang racket</font></div><div><font face="Courier New">(require racket/sandbox</font></div><div><font face="Courier New">         scribble/eval)</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(require rackunit)</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(module some-lang racket</font></div><div><font face="Courier New"> (provide (all-defined-out))</font></div><div><font face="Courier New"> (define (#%top-interaction f x y) (f x y))</font></div><div><font face="Courier New"> (define #%module-begin '...))</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(define ev</font></div><div><font face="Courier New"> (call-with-trusted-sandbox-configuration</font></div><div><font face="Courier New">  (lambda ()</font></div><div><font face="Courier New">    (parameterize ([sandbox-output 'string]</font></div><div><font face="Courier New">                   [sandbox-error-output 'string])</font></div><div><font face="Courier New">      (let ([the-eval (make-base-eval)])</font></div><div><font face="Courier New">        (the-eval `(require (submod "Untitled.rkt" some-lang)))</font></div><div><font face="Courier New">        the-eval)))))</font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">(check-equal? (ev '(+ 1 2)) 3)</font></div></div><br><div><div>On May 14, 2014, at 9:41 AM, David Van Horn <<a href="mailto:dvanhorn@cs.umd.edu">dvanhorn@cs.umd.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">-----BEGIN PGP SIGNED MESSAGE-----<br>Hash: SHA1<br><br>I'd like to create a sandbox evaluator that uses a language created in<br>a submodule.  So something like this:<br><br>#lang racket<br>(require racket/sandbox<br>         scribble/eval)<br><br>(module+ some-lang<br>  (provide (all-defined-out))<br>  (define #%top-interaction '...)<br>  (define #%module-begin '...))<br><br>(define ev<br>  (call-with-trusted-sandbox-configuration<br>   (lambda ()<br>     (parameterize ([sandbox-output 'string]<br>                    [sandbox-error-output 'string])<br>       (let ([the-eval (make-base-eval)])<br>         (the-eval `(require ???????))<br>         the-eval)))))<br><br>But I'm lost figuring out what to put for ??????? to make this work<br>out.  Is there a way to make this work?<br><br>Thanks,<br>David<br>-----BEGIN PGP SIGNATURE-----<br>Version: GnuPG/MacGPG2 v2.0.22 (Darwin)<br><br>iQIcBAEBAgAGBQJTc3KaAAoJEIVEqZR2RxA8MDQP/jSDd+PXgvXVp4PgH7ZGpOFy<br>sUijCZXk8CmqNfTB7gLRn/1B66yKCib3w5l/3gwGnfMixKN0Zk7IstJAWYAM8IeA<br>Hc57VD80mef/H+pwJvFI6Eac9q39TiD+JjT0EblM0b3M9LvrxVBnmBr7s+uO0RyB<br>g+wOLFXwFVAJkTJjFmyHL3YI7y5nMFeKSa95XapiMK4oS/6mVfV7n6RIgLkpwTFF<br>ylxxMRgWRyHe41HmgzObfjD0NXBvqKOxgkC4vRq+eR6EYWndN1Re56wePGl7Dx8N<br>QcQDlGMWtWW4Eed9RmjoUMtrmjln0JtxyX5yZK9X9snKVrRfQ0MwXNKNvoC90b0w<br>uzQzS7Ow1gT8adwYl0bmElZTL3AaIRrPl086NV3xH5xyA9WVWHlrMZORsqb+ZDCc<br>FQMEV+bNUwBLcSv4hpfVfPk/VOlfQM9Q61RGFcSYAWNg7aXzEgz37pYb5wAZ7uYg<br>KdUMbAqLnUcZySowIYv5iKTNjG7dy/XmboPlBXrp0bZwxdV3Rz1UDMAJPO/b1GIO<br>7zKVUTVL6U2S9qJ0a8rpCGpN1hcqZYlqQjf6Dpp9mvjljp+Mr3Bvnncco/wrgk4B<br>p7fXE5KlcGO4A4IAtjpZTL4Uj/YqFh0PfMNRhLP472RoH2nGWI6SKqp/ODAAh71V<br>9t47ns+G/SJi1e7XtIne<br>=Ndma<br>-----END PGP SIGNATURE-----<br>____________________<br>  Racket Users list:<br>  <a href="http://lists.racket-lang.org/users">http://lists.racket-lang.org/users</a><br></blockquote></div><br></body></html>