Steps:<div><br></div><div>1. Open DrRacket</div><div>2. In the definitions window, paste in</div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div><div>#lang racket</div>
<div><br></div><div>(define (super-simple)</div><div> (define p</div><div>  (place ch</div><div>     (place-channel-put ch 5)))</div><div> (place-channel-get p))</div></div></div></blockquote>3. Click the &quot;Run&quot; button in the toolbar<div>
4. In the REPL, type &quot;(super-simple)&quot;</div><div><br></div><div>The call to provide is necessary when loading code in the Terminal, but it doesn&#39;t seem necessary with DrRacket. In fact, based on the comment I saw in IRC about DrRacket reloading the module, I wonder if that has something to do with it. (although I&#39;m new enough to Racket to not put much stock in my intuitions)</div>
<div><div><br></div></div><div> Dave<br><div><br><div class="gmail_quote">On Tue, Aug 30, 2011 at 7:19 AM, Robby Findler <span dir="ltr">&lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I&#39;m not seeing bad behavior so probably I&#39;m doing something slightly differently than you, which is making the difference. If you have the energy to send a precise set of steps I&#39;m happy to try them on my machine and maybe that&#39;ll help us sort it out.<br>
<font color="#888888">
<br>Robby</font><div><div></div><div class="h5"><br><br>On Tuesday, August 30, 2011, David Mitchell &lt;<a href="mailto:dave@fallingcanbedeadly.com" target="_blank">dave@fallingcanbedeadly.com</a>&gt; wrote:<br>&gt; I tried saving the module and putting a require in the DrRacket window, and that works correctly. I think this will be an acceptable workaround for the time being, but I&#39;d really like to know more about what&#39;s going on.<br>

&gt;<br>&gt; -- Dave (on the iPhone)<br>&gt;<br>&gt; On Aug 30, 2011, at 4:44 AM, Robby Findler &lt;<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>&gt; wrote:<br>&gt;<br>&gt;&gt; I&#39;m sorry; I was wrong.<br>

&gt;&gt;<br>&gt;&gt; I don&#39;t see the behavior you&#39;re seeing, tho. If I add parens around<br>&gt;&gt; &#39;all-defined-out&#39;, and save the file in tmp.rkt, then this is the<br>&gt;&gt; behavior I see at the command-line racket:<br>

&gt;&gt;<br>&gt;&gt; Welcome to Racket v5.1.3.6.<br>&gt;&gt;&gt; (require &quot;tmp.rkt&quot;)<br>&gt;&gt;&gt; (super-simple)<br>&gt;&gt; 5<br>&gt;&gt;<br>&gt;&gt; and I see similar behavior in DrRacket:<br>&gt;&gt;<br>&gt;&gt; Welcome to DrRacket, version 5.1.3.6--2011-08-25(7bb8c6c4/d) [3m].<br>

&gt;&gt; Language: racket; memory limit: 128 MB.<br>&gt;&gt;&gt; (super-simple)<br>&gt;&gt; 5<br>&gt;&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; FWIW, in 5.1.3, I get an error that&#39;s surprising to me, as I don&#39;t see<br>&gt;&gt; how the sandbox gets involved in this program, but here it is:<br>

&gt;&gt;<br>&gt;&gt; car: expects argument of type &lt;pair&gt;; given &#39;#((module program racket/base))<br>&gt;&gt;<br>&gt;&gt; === context ===<br>&gt;&gt; /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:572:17: ns<br>

&gt;&gt; /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:584:20<br>&gt;&gt; /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:334:0: call-with-limits<br>&gt;&gt; /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:564:0: evaluate-program<br>

&gt;&gt; /Applications/Racket<br>&gt;&gt; v5.1.3/collects/racket/private/more-scheme.rkt:151:2:<br>&gt;&gt; call-with-break-parameterization<br>&gt;&gt; /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:704:2: user-process<br>

&gt;&gt; /Applications/Racket v5.1.3/collects/mred/private/wx/common/queue.rkt:430:6<br>&gt;&gt; /Applications/Racket v5.1.3/collects/mred/private/wx/common/queue.rkt:470:32<br>&gt;&gt;<br>&gt;&gt; Robby<br>&gt;&gt;<br>&gt;&gt; On Mon, Aug 29, 2011 at 8:55 PM, David Mitchell<br>

&gt;&gt; &lt;<a href="mailto:dave@fallingcanbedeadly.com" target="_blank">dave@fallingcanbedeadly.com</a>&gt; wrote:<br>&gt;&gt;&gt; You might have to unpack that a little bit more for me, as I don&#39;t see how that&#39;s the case. Additionally, why would it work from Terminal and not DrRacket?<br>

&gt;&gt;&gt;<br>&gt;&gt;&gt; -- Dave (on the iPhone)<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; On Aug 29, 2011, at 6:32 PM, Robby Findler &lt;<a href="mailto:robby@eecs.northwestern.edu" target="_blank">robby@eecs.northwestern.edu</a>&gt; wrote:<br>

&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; I think what&#39;s happening is that you&#39;re creating a place whose first<br>&gt;&gt;&gt;&gt; action is to create that same place again (over and over).<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; Robby<br>

&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt; On Mon, Aug 29, 2011 at 8:17 PM, David Mitchell<br>&gt;&gt;&gt;&gt; &lt;<a href="mailto:dave@fallingcanbedeadly.com" target="_blank">dave@fallingcanbedeadly.com</a>&gt; wrote:<br>&gt;&gt;&gt;&gt;&gt; I&#39;ve been trying to experiment with racket/place, but it seems to have<br>

&gt;&gt;&gt;&gt;&gt; significant incompatibilities with DrRacket. I&#39;ve defined a module based on<br>&gt;&gt;&gt;&gt;&gt; a code snippet in <a href="http://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf" target="_blank">http://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf</a><br>

&gt;&gt;&gt;&gt;&gt; that looks like this:<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt; #lang racket<br>&gt;&gt;&gt;&gt;&gt; (provide all-defined-out)<br>&gt;&gt;&gt;&gt;&gt; (define (fib n)<br>&gt;&gt;&gt;&gt;&gt;  (define (fib-inner n-remaining i i+1)<br>

&gt;&gt;&gt;&gt;&gt;   (if (= n-remaining 1)<br>&gt;&gt;&gt;&gt;&gt;     i+1<br>&gt;&gt;&gt;&gt;&gt;     (fib-inner (- n-remaining 1) i+1 (+ i i+1))))<br>&gt;&gt;&gt;&gt;&gt;  (if (&lt;= n 0)<br>&gt;&gt;&gt;&gt;&gt;    0<br>

&gt;&gt;&gt;&gt;&gt;    (fib-inner n 0 1)))<br>&gt;&gt;&gt;&gt;&gt; (define (start-fib n)<br>&gt;&gt;&gt;&gt;&gt;  (define p<br>&gt;&gt;&gt;&gt;&gt;   (place ch<br>&gt;&gt;&gt;&gt;&gt;      (define n (place-channel-get ch))<br>

&gt;&gt;&gt;&gt;&gt;      (place-channel-put ch (fib n))))<br>&gt;&gt;&gt;&gt;&gt;  (place-channel-put p n)<br>&gt;&gt;&gt;&gt;&gt;  p)<br>&gt;&gt;&gt;&gt;&gt; (define (super-simple)<br>&gt;&gt;&gt;&gt;&gt;  (define p<br>

&gt;&gt;&gt;&gt;&gt;   (place ch<br>&gt;&gt;&gt;&gt;&gt;      (place-channel-put ch 5)))<br>&gt;&gt;&gt;&gt;&gt;  (place-channel-get p))<br>&gt;&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;&gt; If I run racket in my Terminal and load this module, I&#39;m able to use<br>

&gt;&gt;&gt;&gt;&gt; start-fib and super-simple as expected. However, if I define this module in<br>&gt;&gt;&gt;&gt;&gt; the DrRacket editor and access the functions through the repl, attempts to<br>&gt;&gt;&gt;&gt;&gt; rec
</div></div></blockquote></div><br></div></div>