[racket] Tricking PLaneT out of eagerly installing dependencies

From: Michael W (mwilber at uccs.edu)
Date: Fri Jan 27 20:47:15 EST 2012

Hello everyone!

I'm making an Ogg Vorbis library for racket, and it's convenient
to also be able to convert Ogg files to rsounds for (planet
clements/rsound). To this end, I have an rsound-compat module in
my package.

Not everyone who uses my package will want to pull down (planet
clements/rsound) as a dependency when they install my package,
but they might want it when they use rsound-compat.

Is there a way of asking a planet _not_ to pull down that
dependency when users install this package, but _do_ install that
dependency when they try to use rsound-compat? Or should I just
bite the bullet and split rsound-compat into its own mini-planet
package?

As a workaround, I have this at the top of my rsound-compat
module, which is just enough to trick raco make but I feel icky
after typing it:

(define mono-signal->rsound (dynamic-require '(planet clements/rsound) 'mono-signal->rsound))
(define signals->rsound (dynamic-require '(planet clements/rsound) 'signals->rsound))
(define s16max/i (dynamic-require '(planet clements/rsound)
                                  's16max/i))
(define default-sample-rate (dynamic-require
                             '(planet clements/rsound)
                             'default-sample-rate))
;; And whatever other bindings I need

Is this the preferred way of doing it? Am I missing something
obvious? Does such abuse go against PLaneT's philosophy or
something?

-- 
Reclined in a defunct and truly obese satellite dish,
    _mike

Posted on the users mailing list.