From jmc at research.bell-labs.com  Fri Sep  5 10:00:42 2003
From: jmc at research.bell-labs.com (John Chambers)
Date: Fri Sep  5 15:01:03 2003
Subject: [Rd] S4 Method Collisions with "[" (PR#4075)
References: <200309050955.h859t4JH016010@pubhealth.ku.dk>
Message-ID: <3F5888FA.DE1C9A29@research.bell-labs.com>

colin@colinsmith.org wrote:
> 
> Full_Name: Colin A. Smith
> Version: 1.8.0
> OS: Mac OS X 10.2.6
> Submission from: (NULL) (216.102.90.18)
> 
> Both Biobase and my package annaffy use S4 classes to define methods for "[".
> Both packages use the save image method of installation. (See annaffy 1.0.3 in
> BioC CVS.)
> 
> Depending on how both packages are loaded, the Biobase definitions seem to be
> getting masked out:
> 
> > library(Biobase)
> > library(annaffy)
> > showMethods("[")
> 
> Function "[":
> x = "ANY"
> x = "container"
> x = "phenoData"
> x = "exprSet"
> x = "aafList"
> x = "aafTable"
> 
> > library(annaffy)
> (annaffy loads Biobase in .First.lib)

I'm not sure exactly what's happening, but with (or without) saved
images you should put a require(Biobase) _in the main source_ for the
library (in order to guarantee that it's there when setMethod(), etc.
calls are evaluated).  There is then no need to load it separately in
.First.lib.  I'm a little surprised this worked at all.

(We're trying to arrange that the source code for the package looks the
same as  it would if source'd directly into the global environment.)

> > showMethods("[")
> 
> Function "[":
> x = "ANY"
> x = "aafList"
> x = "aafTable"
> 
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

-- 
John M. Chambers                  jmc@bell-labs.com
Bell Labs, Lucent Technologies    office: (908)582-2681
700 Mountain Avenue, Room 2C-282  fax:    (908)582-3340
Murray Hill, NJ  07974            web: http://www.cs.bell-labs.com/~jmc


[Rd] S4 Method Collisions with "[" (PR#4075)
John Chambers