<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 17, 2013 at 8:30 AM, Eli Barzilay <span dir="ltr">&lt;<a href="mailto:eli@barzilay.org" target="_blank">eli@barzilay.org</a>&gt;</span> wrote: <br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
</div>A sandbox can be relatively expensive, but it should definitely be<br>
much cheaper than a new process.<br></blockquote><div><br></div><div>In terms of time, I guess so, but in terms of memory, since the old process <br>dies, the only real cost is restarting time (which should be rare enough in<br>

</div><div>my case).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Also, bear in mind that the code snippet that Tony showed is very<br>
partial: Racket has lots of OS-like features that need to be done to<br>
get a more complete separation of the sandboxed environment, and his<br>
code only some of that.  The sandbox library is, roughly speaking, a<br>
place to put all of the required features together.  And if you&#39;re<br>
worried about size -- one thing that you can do with namespaces is<br>
share module instantiations so that you only get &quot;billed&quot; for them<br>
once, and you can do that for both modules that you require, and for<br>
your own modules if there is no harm in sharing state between<br>
different sandboxes.  (Setting up such sharing can be a little tricky,<br>
but with the sandbox library you can easily do that with the<br>
`sandbox-namespace-specs&#39; parameter.)<br></blockquote><div><br></div><div>Thanks for the information, I think I&#39;ll stick to the reload process for now, <br>but I keep that in a corner of my mind.<br><br>Laurent<br>

</div></div><br></div></div>