[Rd] Writing a package in which files must be sourced in a specific order
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Feb 23 00:46:33 CET 2007
What 'alphabetical order' is depends on the locale. In en_NZ g < G, in C
G < g. So it is a rather slippery concept (and gets worse in non-English
locales: 'aa' sorts after z in Danish).
You don't tell us quite what you are doing, but R CMD INSTALL is
working in C when concatenating the files in the R directory to ensure
consistency across R installations.
My guess is that you need to give a collation order in the DESCRIPTION
file (see 'Writing R Extensions'), if I am interpolating your
comments correctly.
On Thu, 22 Feb 2007, hadley wickham wrote:
> Dear all,
>
> I have been using the proto package to create objects with mutable
> state for my ggplot package. This has been very successful so far,
> but I have run into a problem when building/installing the package,
> because the source files need to be loaded in a specific order so that
> dependencies are initialised correctly.
'loaded'? Do you mean sourced during INSTALL?
> I have named the files so that dependencies are loaded before they are
> needed, so that
>
> lapply(dir("~/documents/ggplot/ggplot/R", full.name=T), source)
>
> runs without error, but when installing the package I get an error
> than indicates that the files aren't being loaded in alphabetical
> order:
>
> Error in proto(Geom, { : object "Geom" not found
> Error: unable to load R code in package 'ggplot'
> Error: package/namespace load failed for 'ggplot'
>
> Can anyone suggest how I could get around this?
>
> Regards,
>
> Hadley
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
--
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