The short answer is that there are no known (i.e. documented) differences, and no examples on CRAN which do not work with lazy-loading (except party, which loads the saved image in a test). And that includes examples of packages which share S4 classes. But my question was to tease things like this out.
You do need either SaveImage or LazyLoad in a package that defines S4 classes and methods, since SetClass etc break the `rules' for R files in packages in `Writing R Extensions'. When I have time I will take a closer look at this example. On Fri, 3 Feb 2006, Martin Maechler wrote: >>>>>> "Seth" == Seth Falcon <[EMAIL PROTECTED]> >>>>>> on Thu, 02 Feb 2006 11:32:42 -0800 writes: > > Seth> Thanks for the explaination of LazyLoad, that's very helpful. > Seth> On 1 Feb 2006, [EMAIL PROTECTED] wrote: > >> There is no intention to withdraw SaveImage: yes. Rather, if > >> lazy-loading is not doing a complete job, we could see if it could > >> be improved. > > Seth> It seems to me that LazyLoad does something different with respect to > Seth> packages listed in Depends and/or how it interacts with namespaces. > > Seth> I'm testing using the Bioconductor package graph and find that if I > Seth> change SaveImage to LazyLoad I get the following: > > Interesting. > > I had also the vague feeling that saveImage was said to be > important when using S4 classes and methods; particularly when > some methods are for generics from a different package/Namespace > and other methods for `base' classes (or other classes defined > elsewhere). > This is the case of 'Matrix', my primary experience here. > OTOH, we now only use 'LazyLoad: yes' , not (any more?) > 'SaveImage: yes' -- and honestly I don't know / remember why. > > Martin > > > Seth> ** preparing package for lazy loading > Seth> Error in makeClassRepresentation(Class, properties, superClasses, > prototype, : > Seth> couldn't find function "getuuid" > > Seth> Looking at the NAMESPACE for the graph package, it looks like it is > Seth> missing some imports. I added lines: > Seth> import(Ruuid) > Seth> exportClasses(Ruuid) > > Seth> Aside: am I correct in my reading of the extension manual that if one > Seth> uses S4 classes from another package with a namespace, one > Seth> must import the classes and *also* export them? > > Seth> Now I see this: > > Seth> ** preparing package for lazy loading > Seth> Error in getClass("Ruuid") : "Ruuid" is not a defined class > Seth> Error: unable to load R code in package 'graph' > Seth> Execution halted > > Seth> But Ruuid _is_ defined and exported in the Ruuid package. > > Seth> Is there a known difference in how dependencies and imports are > Seth> handled with LazyLoad as opposed to SaveImage? > > Seth> Thanks, > > Seth> + seth > > -- Brian D. Ripley, [EMAIL PROTECTED] 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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel