[plt-scheme] On PLaneT packages and compatible upgrades

From: Richard Cobbe (cobbe at ccs.neu.edu)
Date: Wed May 10 07:16:38 EDT 2006

On Wed, May 10, 2006 at 05:04:11AM -0600, Matthew Flatt wrote:
> What if we had a way to make exports version-specific?
> 
> For example, suppose my original module is
> 
>  (module m mzscheme
>    (define x ...)
>    (define y ...)
>    (define z ...)
>    (provide x y z))
> 
> For version 1.1, I add `w' and `q':
> 
>  (module m mzscheme
>    (define x ...)
>    (define y ...)
>    (define z ...)
>    (define w ...)
>    (define q ...)
>    (provide x y z)
>    (provide-version (1 1) w q))
> 
> Then imports of "version 1.0 or higher" or the module would only import
> `x', `y', and `z', while imports of "version 1.2 or higher" would also
> get `w' and `q'.
> 
> Would that help solve the problem?

It looks promising, certainly.  Based on my recent experience, it's
possible (if not probable) that this would have unforeseen consequences,
but I think it's worth exploring.

However, it does proceed from the assumption that adding functionality
should be a compatible upgrade.  I'm wondering if we should continue to
hold to that assumption.

Richard


Posted on the users mailing list.