<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 9.00.8112.16434"></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial>May be the following observation helps:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial>when running without saving the definitions I get an 
error.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial>when running after saving all goes well.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial>Windows 7, DrRacket, version 5.1.3.6--2011-08-28(c97b314/a) 
[3m]</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=699260216-30082011><FONT color=#0000ff 
size=2 face=Arial>Jos</FONT></SPAN></DIV><BR>
<DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> users-bounces@racket-lang.org 
[mailto:users-bounces@racket-lang.org] <B>On Behalf Of </B>David 
Mitchell<BR><B>Sent:</B> martes, 30 de agosto de 2011 16:55<BR><B>To:</B> 
users@racket-lang.org<BR><B>Subject:</B> Re: [racket] racket/place seems to be 
incompatible with DrRacket<BR></FONT><BR></DIV>
<DIV></DIV>Steps:
<DIV><BR></DIV>
<DIV>1. Open DrRacket</DIV>
<DIV>2. In the definitions window, paste in</DIV>
<BLOCKQUOTE 
style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 40px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0px" 
class=webkit-indent-blockquote>
  <DIV>
  <DIV>
  <DIV>#lang racket</DIV>
  <DIV><BR></DIV>
  <DIV>(define (super-simple)</DIV>
  <DIV>&nbsp; (define p</DIV>
  <DIV>&nbsp; &nbsp; (place ch</DIV>
  <DIV>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(place-channel-put ch 5)))</DIV>
  <DIV>&nbsp; (place-channel-get p))</DIV></DIV></DIV></BLOCKQUOTE>3. Click the 
"Run" button in the toolbar
<DIV>4. In the REPL, type "(super-simple)"</DIV>
<DIV><BR></DIV>
<DIV>The call to provide is necessary when loading code in the Terminal, but it 
doesn'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'm new enough to Racket to not put much stock in my 
intuitions)</DIV>
<DIV>
<DIV><BR></DIV></DIV>
<DIV>&#8212; 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 
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
class=gmail_quote>I'm not seeing bad behavior so probably I'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'm happy to try them on my machine and 
  maybe that'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'd really like to know more about what'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'm sorry; I was wrong.<BR>&gt;&gt;<BR>&gt;&gt; I don't see the behavior 
  you're seeing, tho. If I add parens around<BR>&gt;&gt; 'all-defined-out', 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 "tmp.rkt")<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's surprising to me, as I don'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 '#((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't see how that'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's happening is that 
  you'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've been trying to experiment with 
  racket/place, but it seems to have<BR>&gt;&gt;&gt;&gt;&gt; significant 
  incompatibilities with DrRacket. I'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; &nbsp; (define (fib-inner n-remaining i 
  i+1)<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; (if (= n-remaining 
  1)<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; 
  i+1<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; (fib-inner (- 
  n-remaining 1) i+1 (+ i i+1))))<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; (if (&lt;= n 
  0)<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; 0<BR>&gt;&gt;&gt;&gt;&gt; 
  &nbsp; &nbsp; &nbsp; (fib-inner n 0 1)))<BR>&gt;&gt;&gt;&gt;&gt; (define 
  (start-fib n)<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; (define p<BR>&gt;&gt;&gt;&gt;&gt; 
  &nbsp; &nbsp; (place ch<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp;(define n (place-channel-get ch))<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(place-channel-put ch (fib 
  n))))<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; (place-channel-put p 
  n)<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; p)<BR>&gt;&gt;&gt;&gt;&gt; (define 
  (super-simple)<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; (define 
  p<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; (place ch<BR>&gt;&gt;&gt;&gt;&gt; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(place-channel-put ch 
  5)))<BR>&gt;&gt;&gt;&gt;&gt; &nbsp; (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'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></BODY></HTML>