[racket] big-bang bug when creating racket distribution executable?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Aug 19 10:37:59 EDT 2014

I have fixed the bug, thanks to a thorough code review with Robby. The next release of DrRacket will create executables for big-bang (and universe) programs whose window remains open after stop-when (or equivalent action) halt the execution. 

If you are eager to test this, you may wish to try it in one of the nightly builds from NWU or Utah tomorrow. 

Thanks for reporting -- Matthias







On Aug 4, 2014, at 12:31 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:

> 
> I can confirm the behavior, which is visible under both *SL and Racket and all methods for creating executable. 
> 
> For a workaround, use this for now: 
> 
> #lang racket/gui
> 
> (require 2htdp/universe 2htdp/image)
> 
> (define (render ws) ws)
> 
> (define (halt ws) #t)
> 
> (big-bang (rectangle 600 400 'solid 'gold)
>          (to-draw render)
>          (stop-when halt render))
> 
> (yield (make-semaphore))
> 
> -- Matthias
> 
> 
> 
> 
> On Aug 4, 2014, at 11:39 AM, Kevin Forchione <lysseus at gmail.com> wrote:
> 
>> When you run big-bang in Dr Racket and the stop-when evaluates true the window remains open to display the final image (when specified) and must be manually closed by the user. However, running the racket executable created for distribution closes the window and returns you to terminal as soon as stop-when is returns true, thus bringing the execution to a jarring halt without adequately displaying the final image (it’s hard to tell whether it displays because the action is so quick). This appears to be the case for both Windows and Mac installers. Is this a bug or how the process is designed to work?
>> 
>> Below is a link to some very basic racket code and a mac installer to demonstrate the effect:
>> 
>> https://dl.dropboxusercontent.com/u/4859392/test5.rkt
>> 
>> https://dl.dropboxusercontent.com/u/4859392/test5.dmg
>> 
>> If this is how it’s designed to work, then stop-when, for executable distribution is probably not a desired handler for what I’m intending, as I seldom want the window to close automatically when big-bang terminates, but would prefer the user to close the window manually. I can probably achieve this with some finagling of the world state, but the two different behaviors between Dr Racket and distribution was surprising.
>> 
>> —Kevin
>> ____________________
>> Racket Users list:
>> http://lists.racket-lang.org/users
> 



Posted on the users mailing list.