When I add a step "2b" to save the file, then I get the correct behavior (using a git build from today). Do you see that?
Robby On Tue, Aug 30, 2011 at 9:54 AM, David Mitchell <d...@fallingcanbedeadly.com> wrote: > Steps: > 1. Open DrRacket > 2. In the definitions window, paste in > > #lang racket > (define (super-simple) > (define p > (place ch > (place-channel-put ch 5))) > (place-channel-get p)) > > 3. Click the "Run" button in the toolbar > 4. In the REPL, type "(super-simple)" > 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) > — Dave > > On Tue, Aug 30, 2011 at 7:19 AM, Robby Findler <ro...@eecs.northwestern.edu> > wrote: >> >> 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. >> >> Robby >> >> On Tuesday, August 30, 2011, David Mitchell <d...@fallingcanbedeadly.com> >> wrote: >> > 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. >> > >> > -- Dave (on the iPhone) >> > >> > On Aug 30, 2011, at 4:44 AM, Robby Findler <ro...@eecs.northwestern.edu> >> > wrote: >> > >> >> I'm sorry; I was wrong. >> >> >> >> I don't see the behavior you're seeing, tho. If I add parens around >> >> 'all-defined-out', and save the file in tmp.rkt, then this is the >> >> behavior I see at the command-line racket: >> >> >> >> Welcome to Racket v5.1.3.6. >> >>> (require "tmp.rkt") >> >>> (super-simple) >> >> 5 >> >> >> >> and I see similar behavior in DrRacket: >> >> >> >> Welcome to DrRacket, version 5.1.3.6--2011-08-25(7bb8c6c4/d) [3m]. >> >> Language: racket; memory limit: 128 MB. >> >>> (super-simple) >> >> 5 >> >>> >> >> >> >> FWIW, in 5.1.3, I get an error that's surprising to me, as I don't see >> >> how the sandbox gets involved in this program, but here it is: >> >> >> >> car: expects argument of type <pair>; given '#((module program >> >> racket/base)) >> >> >> >> === context === >> >> /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:572:17: ns >> >> /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:584:20 >> >> /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:334:0: >> >> call-with-limits >> >> /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:564:0: >> >> evaluate-program >> >> /Applications/Racket >> >> v5.1.3/collects/racket/private/more-scheme.rkt:151:2: >> >> call-with-break-parameterization >> >> /Applications/Racket v5.1.3/collects/racket/sandbox.rkt:704:2: >> >> user-process >> >> /Applications/Racket >> >> v5.1.3/collects/mred/private/wx/common/queue.rkt:430:6 >> >> /Applications/Racket >> >> v5.1.3/collects/mred/private/wx/common/queue.rkt:470:32 >> >> >> >> Robby >> >> >> >> On Mon, Aug 29, 2011 at 8:55 PM, David Mitchell >> >> <d...@fallingcanbedeadly.com> wrote: >> >>> 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? >> >>> >> >>> -- Dave (on the iPhone) >> >>> >> >>> On Aug 29, 2011, at 6:32 PM, Robby Findler >> >>> <ro...@eecs.northwestern.edu> wrote: >> >>> >> >>>> I think what's happening is that you're creating a place whose first >> >>>> action is to create that same place again (over and over). >> >>>> >> >>>> Robby >> >>>> >> >>>> On Mon, Aug 29, 2011 at 8:17 PM, David Mitchell >> >>>> <d...@fallingcanbedeadly.com> wrote: >> >>>>> 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 >> >>>>> http://www.cs.utah.edu/plt/publications/dls11-tsffd.pdf >> >>>>> that looks like this: >> >>>>> >> >>>>> #lang racket >> >>>>> (provide all-defined-out) >> >>>>> (define (fib n) >> >>>>> (define (fib-inner n-remaining i i+1) >> >>>>> (if (= n-remaining 1) >> >>>>> i+1 >> >>>>> (fib-inner (- n-remaining 1) i+1 (+ i i+1)))) >> >>>>> (if (<= n 0) >> >>>>> 0 >> >>>>> (fib-inner n 0 1))) >> >>>>> (define (start-fib n) >> >>>>> (define p >> >>>>> (place ch >> >>>>> (define n (place-channel-get ch)) >> >>>>> (place-channel-put ch (fib n)))) >> >>>>> (place-channel-put p n) >> >>>>> p) >> >>>>> (define (super-simple) >> >>>>> (define p >> >>>>> (place ch >> >>>>> (place-channel-put ch 5))) >> >>>>> (place-channel-get p)) >> >>>>> >> >>>>> 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 >> >>>>> rec > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users