[plt-scheme] On PLaneT packages and compatible upgrades
> 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))
This is exactly the solution proposed by Waldemar Horwat for JavaScript
2.0, using the proposed "namespaces" facility:
http://ll1.ai.mit.edu/horwat.ppt
I wasn't crazy about it in his proposal, because it starts irrevocably
polluting the code with a spaghetti of version information, but at least
in your proposal, you only accumulate this version information until the
next major release. Once you bump the major version, you can clear out
all the provide-versions.
Dave