From deepayan at stat.wisc.edu  Thu Aug 12 17:47:45 2004
From: deepayan at stat.wisc.edu (Deepayan Sarkar)
Date: Thu Aug 12 17:48:04 2004
Subject: [Rd] The Depends: field of a package is now used by library()
In-Reply-To: <Pine.LNX.4.44.0408121614320.20697-100000@gannet.stats>
References: <Pine.LNX.4.44.0408121614320.20697-100000@gannet.stats>
Message-ID: <200408121047.45862.deepayan@stat.wisc.edu>

On Thursday 12 August 2004 10:19, Prof Brian Ripley wrote:
> On Thu, 12 Aug 2004, Deepayan Sarkar wrote:
> > On Thursday 12 August 2004 07:34, Prof Brian Ripley wrote:
> > > In R-devel, the Depends: field in the DESCRIPTION file is now
> > > used by library() to load the named packages before the current
> > > package, and also to set up the environment to save images and
> > > prepare for lazy loading.
> >
> > How would this relate to namespaces? For instance, lattice imports
> > grid (and a few things from stats and graphics). If I keep grid in
> > the depends field, loading lattice does a require(grid), which
> > defeats one of the purposes of having namespaces. If I leave it
> > out, nothing bad seems to happen as long as grid is installed, but
> > there should be some indication in the DESCRIPTION that that grid
> > is a requirement. None of the other fields seem appropriate.
>
> It's a grey area.  As all copies of R that you are using will have
> grid, leave it out of Depends: for lattice.
> 
> Perhaps we need to invent another field such as UsesNamespaces?

That should work. 

Writing R Extensions says that 

`Packages that are necessary to successfully load the package using 
library(pkgname) must be listed in the Depends field.'

which no longer remains true. Ideally, it probably would have been 
better to keep the old behaviour of Depends, and add the new 
functionality in a new field, but I guess this way the majority of 
packages can remain unchanged while being able to avail the new 
features.

Deepayan


[Rd] The Depends: field of a package is now used by library()
Deepayan Sarkar