Michael,<br><br>I don't think there's anything about your library that suggests a dynamic dependency; as a user, I would be more surprised by a long pause for a planet install during operation than by a slightly longer installation when I first download the package. I suggest you require the rsound package directly, and either split your package in two to reduce dependencies or just live with a possibly unnecessary dependency. I guess it depends on whether clements/rsound is significantly bigger or slower to install than your package or not. Personally, as a Planet user, if I downloaded an Ogg Vorbis library, I would not begrudge it a dependency on an extra sound library for potential conversions.<br>
<br clear="all">Carl Eastlund<br>
<br><div class="gmail_quote">On Fri, Jan 27, 2012 at 8:47 PM, Michael W <span dir="ltr"><<a href="mailto:mwilber@uccs.edu">mwilber@uccs.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello everyone!<br>
<br>
I'm making an Ogg Vorbis library for racket, and it's convenient<br>
to also be able to convert Ogg files to rsounds for (planet<br>
clements/rsound). To this end, I have an rsound-compat module in<br>
my package.<br>
<br>
Not everyone who uses my package will want to pull down (planet<br>
clements/rsound) as a dependency when they install my package,<br>
but they might want it when they use rsound-compat.<br>
<br>
Is there a way of asking a planet _not_ to pull down that<br>
dependency when users install this package, but _do_ install that<br>
dependency when they try to use rsound-compat? Or should I just<br>
bite the bullet and split rsound-compat into its own mini-planet<br>
package?<br>
<br>
As a workaround, I have this at the top of my rsound-compat<br>
module, which is just enough to trick raco make but I feel icky<br>
after typing it:<br>
<br>
(define mono-signal->rsound (dynamic-require '(planet clements/rsound) 'mono-signal->rsound))<br>
(define signals->rsound (dynamic-require '(planet clements/rsound) 'signals->rsound))<br>
(define s16max/i (dynamic-require '(planet clements/rsound)<br>
's16max/i))<br>
(define default-sample-rate (dynamic-require<br>
'(planet clements/rsound)<br>
'default-sample-rate))<br>
;; And whatever other bindings I need<br>
<br>
Is this the preferred way of doing it? Am I missing something<br>
obvious? Does such abuse go against PLaneT's philosophy or<br>
something?<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Reclined in a defunct and truly obese satellite dish,<br>
_mike<br>
____________________<br>
Racket Users list:<br>
<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br>
</font></span></blockquote></div><br>