On Fri, 15 Jan 2010, Seth Falcon wrote:

There is a real need (of some kind) here.  Not all packages work on all
platforms.  For example, the multicore package provides a mechanism for
running parallel computations on a multi-cpu box, but it is not
available on Windows.  A package that _is_ available on all platforms
should be able to optionally make use of multicore on non-Windows.  I
don't think there is a way to do that now and pass check without
resorting to "tricks" as above.  These tricks are bad as they make it
harder to programmatically determine the true "suggests".

And NAMESPACE brings up another issue in that being able to do
conditional imports would be very useful for these cases, otherwise you
simply can't make proper use of name spaces for any optional functionality.

I'm willing to help work on and test a solution if we can arrive at some
consensus as to what the solution looks like.


Seth,

In the case of multicore it seems to work to put it in 'Suggests' and to use 
require() to load it. That's what I did with the survey package, and it didn't 
cause problems on CRAN.  I didn't run CMD check on Windows myself, only on Mac 
and Linux.

A more difficult issue is providing methods for a generic in another package 
that might not be available.  I wanted to provide methods on survey objects for 
generics in odfWeave, and I couldn't find out how to do that without making it 
required.   I ended up creating a new odfWeave.survey package that depends on 
odfWeave and survey, but this seems like the sort of thing that should be able 
to be done with Enhances or Suggests.

    -thomas


Thomas Lumley                   Assoc. Professor, Biostatistics
tlum...@u.washington.edu        University of Washington, Seattle

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to