[racket] My PLT->Racket porting experience

From: Drew Hess (drew.hess at gmail.com)
Date: Thu Mar 3 12:09:38 EST 2011

OK, folks, here is a small package that demonstrates all of the play-sound
issues I'm having, in one go:


Install both of the teachpacks. The -no-runtime-path version of the
teachpack is nearly identical to the version I used with PLT
Scheme 4.2.5, and in fact will probably compile in PLT if you replace
the racket/* requires with plt/* or whatever the namespace was in
the PLT days. The other version is the one I whipped up to fix the
relative pathname issues. (Please don't judge the quality of the code
in those changes! I wrote them hastily at the end of a very frustrating
debugging session :)

Load the drew-game.ss game. It uses the "fixed" version of the teachpack.
It should work fine, except for the fact that, on Mac OS X, the game
will pause when a sound is played. This demonstrates the inverted-ness
of the play-sound async flag on that platform. (The Windows version will
not pause when the sound is played; however, while we're on the subject,
it is annoying that play-sound on Windows cannot dynmically mix sounds
like the Mac version does; it just stops playing any sound that it was
already playing and starts playing the new one.)

Load the drew-game-no-runtime-path.rkt game in Racket 5.1. This version
uses the -no-runtime-path version of the teachpack, i.e., the version
of the teachpack that worked fine in DrScheme 4.2.5. You will see that,
when a sound should be played, e.g., when there is a collision, the game
freezes, and, on the Mac, at least, no error message is displayed in the
Interactive window. (It should be trivial to port the -no-runtime-path
teachpack to DrScheme 4.2.5 and run this version of the game in that
environment to demonstrate that it works fine there.)


Posted on the users mailing list.