[plt-scheme] On PLaneT packages and compatible upgrades

From: Felix Klock's PLT scheme proxy (pltscheme at pnkfx.org)
Date: Tue May 9 18:11:29 EDT 2006

On May 9, 2006, at 6:04 PM, Richard Cobbe wrote:

> I'm not real sure how to solve this problem.  One strategy is that
> PLaneT clients should specify exactly what minor version number they
> want, as in
>     (require (planet "foo.ss" ("cobbe" "foo.plt" 1 (= 0))))
> That way, the application authors know that they'll always get the  
> same
> version of the library -- they don't get an upgrade unless they
> explicitly ask for it, at which point they're presumably able to deal
> with the consequences.  The drawback, of course, is that PLaneT  
> clients
> don't get automatic bugfixes.

Wouldn't a better solution on the client side be for the client to  
say explicitly which names they wish to require from the module, and  
then only get that subset?  Then the client would be free to define  
g, h, and whatever else, because they'd know that they were only  
asking for f from the module they're fetching from planet.

Unfortunately, last time I looked, the require form only allowed this  
usage by doing:
(require (rename MOD f1 f1) (rename MOD f2 f2) (rename MOD f3  
f3) ...).  Yucko.

But one would think some macro-wizardry would allow one to extend the  
set of require forms, to introduce something like:

(require (not-all-but-instead-only MOD f1 f2 f3 ...))

Or maybe this example would provide a motivation for PLT to add such  
a form to the set of require specifications.

-Felix



Posted on the users mailing list.