<div>I've been trying to experiment with racket/place, but it seems to have significant incompatibilities with DrRacket. I've defined a module based on a code snippet in <a href="http://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf">http://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf</a> that looks like this:</div>
<div><br></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div>#lang racket</div></div><div><div><br></div></div><div><div>(provide all-defined-out)</div></div>
<div><div><br></div></div><div><div>(define (fib n)</div></div><div><div> (define (fib-inner n-remaining i i+1)</div></div><div><div> (if (= n-remaining 1)</div></div><div><div> i+1</div></div><div><div> (fib-inner (- n-remaining 1) i+1 (+ i i+1))))</div>
</div><div><div> (if (<= n 0)</div></div><div><div> 0</div></div><div><div> (fib-inner n 0 1)))</div></div><div><div><br></div></div><div><div>(define (start-fib n)</div></div><div><div> (define p</div></div>
<div><div> (place ch</div></div><div><div> (define n (place-channel-get ch))</div></div><div><div> (place-channel-put ch (fib n))))</div></div><div><div> (place-channel-put p n)</div></div><div><div>
p)</div></div><div><div><br></div></div><div><div>(define (super-simple)</div></div><div><div> (define p</div></div><div><div> (place ch</div></div><div><div> (place-channel-put ch 5)))</div></div><div><div>
(place-channel-get p))</div></div></blockquote><div><br></div><div>If I run racket in my Terminal and load this module, I'm able to use start-fib and super-simple as expected. However, if I define this module in the DrRacket editor and access the functions through the repl, attempts to receive data from either place appear to hang. I'm running OS X Lion, and I've tried both the 64-bit and 32-bit versions of 5.1.3, as well as the 64-bit version of the latest nightly build (5.1.3.6--2011-08-28(46a0fe9/a)). I posted a question about this to the IRC channel last night, and one other user (jonrafkind) indicated that that the issue could be reproduced on 32-bit Linux, so it seems unlikely to be a platform issue. This user also indicated, "it seems places keeps reloading the current module." (Unfortunately, I am quite new to racket, so I have only a vague idea what this means, and no idea at all as to how one would go about discovering such a thing)</div>
<div><br></div><div>Does anyone have any insight as to why this might be failing and/or how I might work around it (without abandoning the GUI)?</div>