[Rd] S4 changes - sp fails

Roger Bivand Roger.Bivand at nhh.no
Fri Sep 1 10:23:04 CEST 2006


On Fri, 1 Sep 2006, Prof Brian Ripley wrote:

> Roger,
> 
> I had managed to run R CMD check on sp successfully on r39021 and r39043 
> (current) in my nightly checks.  (There are a couple of tests where the 
> show/print method is not being invoked, but that is not new.)
> 
> All I can suggest is to install R from scratch (make distclean), and then 
> reinstall all relevant packages.  At a guess, your interactive use and R 
> CMD check are picking up different libraries.

Brian,

I added .libPaths() and sessionInfo() to the offending example, and tried
with a fresh svn checkout built in a fresh directory and installed in a
fresh directory (no sp or methods in /home/rsb/topics/r_libs, which was
set with export R_LIBS=):

> data(state)
> .libPaths()
[1] "/home/rsb/topics/packages/sp-bundle/sp.Rcheck"
[2] "/home/rsb/topics/r_libs"                      
[3] "/home/rsb/topics/Rtobe240/lib/R/library"      
> sessionInfo()
R version 2.4.0 Under development (unstable) (2006-08-31 r39045) 
i686-pc-linux-gnu 

locale:
LC_CTYPE=en_GB;LC_NUMERIC=C;LC_TIME=en_GB;LC_COLLATE=en_GB;LC_MONETARY=en_GB;LC_
MESSAGES=en_GB;LC_PAPER=en_GB;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREME
NT=en_GB;LC_IDENTIFICATION=C

attached base packages:
[1] "methods"   "stats"     "graphics"  "grDevices" "utils"     "datasets" 
[7] "base"     

other attached packages:
      sp 
"0.8-19" 
> dd2dms(state.center$x)
Error in function (classes, fdef, mtable)  : 
        unable to find an inherited method for function "initialize", for 
signature "integer"
Execution halted

I also tried to replicate the problem by making a new, very small, package 
with just the apparently offending files:

spS4:
DESCRIPTION  man/  NAMESPACE  R/

spS4/man:
char2dms.Rd  DMS-class.Rd

spS4/R:
AAA.R  dms.R

and edited DESCRIPTION, NAMESPACE, and AAA.R to suit. In this setting 
there was no problem. I'll carry on looking. None of these files has 
changed between released 0.8-18 and CVS 0.8-19. 

Roger

> 
> There are around a dozen S4-using packages on CRAN that are currently 
> failing their checks: some look like newly-discovered bugs but some look 
> like problems in S4 dispatch (even of S3 dispatch for S3 generics turned 
> into S4 generics).  More are producing apparently incorrect warnings.
> 
> Brian
> 
> 
> On Thu, 31 Aug 2006, Roger Bivand wrote:
> 
> > Under R version 2.4.0 (2006-08-30 r39024), sp fails CMD check following
> > the latest changes in methods.
> > 
> > The failures are in running examples and occur in CMD check:
> > 
> > > data(state)
> > > dd2dms(state.center$x)
> > Error in function (classes, fdef, mtable)  : 
> >         unable to find an inherited method for function "initialize", for 
> > signature "integer"
> > 
> > Offending code:
> > 
> > 	deg <- as(floor(dd), "integer") 
> > 
> > After replacing by as.integer(floor(dd)), it fails on the local class 
> > definition:
> > 
> > > dd2dms(state.center$x)
> > Error in function (classes, fdef, mtable)  : 
> >         unable to find an inherited method for function "initialize", for 
> > signature "DMS"
> > 
> > Installing sp, example("DMS-class") runs successfully interactively 
> > (other examples do too).
> > 
> > The methods package is declared as Depends: in DESCRIPTION, and
> > import(methods) in NAMESPACE; 
> > 
> > .onLoad <- function(lib, pkg) require(methods) is in the first R source 
> > file in Collate: order.
> > 
> > Should the methods package be being invoked in some other way, is there a 
> > reason why the installed package appears to run examples successfully that 
> > fail under CMD check?
> > 
> > Roger
> > 
> > 
> 
> 

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no




More information about the R-devel mailing list