[plt-scheme] Why is Planet better than PLT archives?

From: Jacob Matthews (jacobm at cs.uchicago.edu)
Date: Thu Dec 29 11:52:21 EST 2005

On Dec 29, 2005, at 10:36 AM, Hans Oesterholt-Dijkema wrote:

> Now I've got a question too.
>
> Why must one use (require (planet ...)). Why not make
> a more intelligent mechanism, using (require (lib ...))?

It's an issue of namespaces. Requiring using the planet form means to  
select from a package using planet's namespace, whereas using the lib  
form means to use the standard collections namespaces. The main  
reason for this division is that the collections are considered to be  
more monolithic; there's no namespace collision, we assume that users  
trust the entire library, and if a new version of a collection comes  
out then a new version of DrScheme comes out with it. The PLaneT  
namespace, on the other hand, is much more anarchic (though by no  
means as anarchic as it can get): individual contributors can pick  
any name they'd like for their directory names, files, and package  
names without central coordination, we do not assume that people  
necessarily trust packages implicitly (though unfortunately at the  
moment you do have to apply your trust transitively when you make a  
planet require), and not only do we not want to have to release a new  
version of DrScheme whenever someone upgrades a planet package, we  
even want users to be able to have multiple different planet packages  
installed on the same system system at the same time. These are  
different worlds that require different ways of naming things,  
installing things, et cetera.

(That said, I think it would be possible to arrange things slightly  
differently so that all library-type requirements would be handled  
the same way --- but that way would have to be something more like  
that planet way than the current library way.)

> I also noticed that a plt package for --all-users, when
> installed with 'planet --file ...' will get installed in the
> plt scheme system collects directories.

That's correct. The planet tools are designed to work only with  
themselves; you'll get surprising results if you try to mix the  
planet tools with .plt files created in other ways.

> And, what, if there's no internet connection? At my
> work I noticed that (require (planet ...)) will yield
> an unrecoverable error when not connected to the
> internet, which I think cannot be acceptable.

PLaneT only goes out to the internet if the package the user requires  
isn't locally available. If you ask for a package that isn't on your  
local system and you have no internet connection with which to get  
it, that seems like a perfectly legitimate situation in which to  
yield an unrecoverable error.

-jacob


Posted on the users mailing list.