<div dir="ltr">I think the issue you&#39;re seeing is that you&#39;ve instantiated two copies of slideshow/pict (as in the example program below), one inside the sandbox and one outside so the functions on picts from the outside don&#39;t work on picts that are produced by code inside.<div>
<br></div><div style>I think that probably the right fix is to add some code to expressions that are evaluated that does the translation inside the sandbox (so very big picts turn into out of memory errors inside the sandbox instead of outside, for example). </div>
<div style><br></div><div style>Robby</div><div style><br></div><div style><div>#lang racket</div><div>(require racket/sandbox)</div><div>(define evaluator</div><div>  (parameterize ([sandbox-output &#39;string]</div><div>
                 [sandbox-error-output &#39;string]</div><div>                 [sandbox-path-permissions &#39;((exists #rx#&quot;&quot;)</div><div>                                             (read #rx#&quot;&quot;))])</div>
<div>    (call-with-limits #f #f</div><div>                      (lambda () (make-evaluator &#39;slideshow)))))</div><div><br></div><div><br></div><div>(define (run-code ev str)</div><div>  (define res (ev str))</div><div>
  (define out (get-output ev))</div><div>  (define err (get-error-output ev))</div><div>  (list res out err))</div><div><br></div><div>(require slideshow/pict)</div><div><br></div><div>(define not-an-outside-pict (run-code evaluator (format &quot;~s&quot; &#39;(circle 10))))</div>
<div>(pict? not-an-outside-pict)</div><div><br></div><div>(run-code evaluator (format &quot;~s&quot; &#39;(pict? (circle 10))))</div><div><br></div></div><div style><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Apr 21, 2013 at 8:26 PM, manu d <span dir="ltr">&lt;<a href="mailto:th3rac25@gmail.com" target="_blank">th3rac25@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hello<div><br></div><div>I am trying to port TryClojure (<a href="https://github.com/Raynes/tryclojure" target="_blank">https://github.com/Raynes/tryclojure</a>), a web-based REPL, to Racket.</div><div><br>
I would like the tutorial part to be based on Racket&#39;s &#39;Quick&#39; tutorial (<a href="http://docs.racket-lang.org/quick/" target="_blank">http://docs.racket-lang.org/quick/</a>)<br>
</div><div><br></div><div>To do that, I need to evaluate pict expressions, like (circle 10), to a string I can return to the browser for rendering.</div><div><div><br></div><div>Right now, I evaluate the strings coming from the browser with the following code:</div>

<div><br></div><div><div>;;--------------------------------</div><div><br></div></div><div><div><div>(define evaluator</div><div>    (parameterize ([sandbox-output &#39;string]</div><div>                          [sandbox-error-output &#39;string] ...)</div>

<div>      (call-with-limits #f #f</div><div>                        (lambda () (make-evaluator &#39;slideshow)))))</div></div><div><br></div><div><br></div><div>(define (run-code ev str)</div><div>  (define res (ev str))</div>

<div>  (define out (get-output ev))</div><div>  (define err (get-error-output ev))</div><div>  (list res out err))</div></div><div><br></div><div>;;--------------------------------</div><div><br></div><div>I know I can convert a pict structure like this: (convert a-pict &#39;png-bytes)</div>

<div>but (evaluator &quot;(circle 10)&quot;) does not evaluate to a pict structure, so I can&#39;t use convert here.</div><div><br></div><div>I also cannot see how to use bitmap% save-file method here, because I cannot get my hands on the bitmap object<br>

</div></div><div><br></div><div>Is there a way to parameterize how picts are rendered so I can end up with a PNG bytestring ?</div><div><br></div><div>Thank you</div><span class="HOEnZb"><font color="#888888"><div><br></div>
<div>Manu</div>
<div><br></div><div><br></div><div><br></div></font></span></div>
<br>____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div>