From sfalcon at fhcrc.org  Wed Aug 30 20:25:03 2006
From: sfalcon at fhcrc.org (Seth Falcon)
Date: Wed, 30 Aug 2006 11:25:03 -0700
Subject: [Rd] S4 Methods dispatch
In-Reply-To: <59d7961d0608301042u6762eb3ckc5aad1a2e51f0a1b@mail.gmail.com>
	(Henrik Bengtsson's message of "Wed, 30 Aug 2006 10:42:49 -0700")
References: <44F591C7.7070900@r-project.org>
	<59d7961d0608300957s109b2533t7949c3a83928149d@mail.gmail.com>
	<Pine.LNX.4.64.0608301801350.3574@gannet.stats.ox.ac.uk>
	<59d7961d0608301042u6762eb3ckc5aad1a2e51f0a1b@mail.gmail.com>
Message-ID: <m23bbe3wu8.fsf@ziti.fhcrc.org>

"Henrik Bengtsson" <hb at stat.berkeley.edu> writes:
> I think it's more complicated than this.  First of all, is it
> mandatory for a package to be explicit about 'methods'?  Second, there
> are many packages that imports 'methods' implicitly via dependency of
> other S4 packages, .e.g see many Bioconductor packages.  Thus, for
> this to work we have to build the dependency graph, and it have to
> work across repositories.

[As I already posted, I don't think this is worth the effort, better
to just reinstall.]

But this coincides with work I've been doing on tools for package
dependency graphs.  If you're curious, read on...


allDeps <- makeDepGraph(biocReposList(), type="source", 
                        keep.builtin=TRUE, dosize=FALSE)

allDepsOnMe <- reverseEdgeDirections(allDeps)

needsMethods <- dijkstra.sp(allDepsOnMe, start="methods")

needsMethods <- needsMethods$distance[is.finite(needsMethods$distance)]

length(needsMethods)
[1] 514

table(needsMethods)
needsMethods
  0   1   2   3 
  1 130 118 265 

I won't spam the mailing list with the package names, but am happy to
make them available if anyone would really find it useful.

Bw,

+ seth




[Rd] S4 Methods dispatch
Seth Falcon