[Rd] Top-level code in package files is not a good idea
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu Jul 1 10:19:46 CEST 2004
It is not a good idea to have executable code other than assignments in R
code files in packages. (The most common example is to require() some
other package.) Doing so presumes that the R code will be sourced when
the package is loaded, and this is not true when saved images are used or
with the databases of saved objects that we are testing for R 2.0.0.
The following packages fail under tests of an experimental version of R
because of top-level require()s
DCluster SASmixed agce cramer forward gridBase hier.part its multidim
pcurve phyloarray sandwich
Please put code that should be executed when the package is loaded in a
.First.lib function, or for package with a namespace in a .onLoad function
(or import another namespace in the namespace). And if you are using
require(), you should test its value and act appropriately if the package
is not available (even if it is a standard package, as we do sometimes
rename those).
This is not urgent (the databases of saved objects are not expected to be
released until October, and then will be optional for packages and
probably not the default), but please bear this in mind.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list