Dan Tenenbaum
2012-Jun-05 23:22 UTC
[Rd] 7 arguments passed to .Internal(identical) which requires 6
I know this has come up before on R-help
(http://r.789695.n4.nabble.com/7-arguments-passed-to-Internal-identical-which-requires-6-td4548460.html)
but I have a concise reproducible case that I wanted to share.
Also, please note the Bioconductor scenario which is potentially
seriously impacted by this.
The issue arises when a binary version of a package (like my example
package below) is built under R 2.15.0 Patched but then installed
under R 2.15.0. Our package AnnotationDbi (which hundreds of other
packages depend on) is impacted by this issue to the extent that
calling virtually any function in it will return something like this:
Error in ls(2) :
7 arguments passed to .Internal(identical) which requires 6
My concern is that when R 2.15.1 is released and Bioconductor starts
building all its packages under it, that R 2.15.0 users will start to
experience this problem. We can ask all users to upgrade to R 2.15.1
if we have to, but it's not usually the case that a minor point
release MUST be installed in order to run packages built under it
(please correct me if I'm wrong). We would much prefer a workaround or
fix to make an upgrade unnecessary.
Here is a minimal package called 'bad':
DESCRIPTION:
Package: bad
Title: test package
Description: test package
Version: 0.0.1
Author: Bad
Maintainer: Bioconductor Package Maintainer <maintainer at
bioconductor.org>
License: Artistic-2.0
NAMESPACE:
exportMethods(ls)
exportClass(A)
R/code.R:
setClass("A", "numeric")
setMethod("ls", "A", function(name, pos, envir, all.names,
pattern) {
"here I am" })
If under R 2.15.0 Patched I create a binary package:
R CMD INSTALL --build bad
And then under R 2.15.0 I install it:
R CMD INSTALL bad_0.0.1.tgz
Then, in R-2.15.0 (started with --vanilla):> library(bad)
> ls(2)
Error in ls(2) :
7 arguments passed to .Internal(identical) which requires 6
This is on a Mac, but per the link above this occurs on Windows as well.
Any help would be very much appreciated!
Thanks,
Dan
~~~
sessionInfo() for R 2.15.0> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
sessionInfo() for R 2.15.0 Patched:> sessionInfo()
R version 2.15.0 Patched (2012-06-03 r59505)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Matthew Dowle
2012-Jun-06 18:19 UTC
[Rd] 7 arguments passed to .Internal(identical) which requires 6
Dan Tenenbaum <dtenenba <at> fhcrc.org> writes:> > I know this has come up before on R-help > (http://r.789695.n4.nabble.com/7-arguments-passed-to-Internal-identical-which-requires-6-td4548460.html)> but I have a concise reproducible case that I wanted to share. > > Also, please note the Bioconductor scenario which is potentially > seriously impacted by this. > The issue arises when a binary version of a package (like my example > package below) is built under R 2.15.0 Patched but then installed > under R 2.15.0. Our package AnnotationDbi (which hundreds of other > packages depend on) is impacted by this issue to the extent that > calling virtually any function in it will return something like this: > Error in ls(2) : > 7 arguments passed to .Internal(identical) which requires 6 > > My concern is that when R 2.15.1 is released and Bioconductor starts > building all its packages under it, that R 2.15.0 users will start to > experience this problem. We can ask all users to upgrade to R 2.15.1 > if we have to, but it's not usually the case that a minor point > release MUST be installed in order to run packages built under it > (please correct me if I'm wrong). We would much prefer a workaround or > fix to make an upgrade unnecessary. >I'm seeing the same issue. Installing the latest R-Forge .zip of data.table built using 2.15.0 patched, on R 2.15.0 (or 2.14.1 same issue), then running data.table(a=1:3) produces the "7 arguments passed to .Internal(identical) which requires 6" error. traceback() and debugger() just display the top level call. debug(data.table) and stepping through reveals it is a call to identical () but just a regular one. No .Internal() call in the package, let alone passing 6 or 7 arguments to .Internal. Not sure how else to debug or trace it. R-Forge is byte compiling data.table using R 2.15.0 patched (iiuc), would that make a difference when the byte code is loaded into 2.15.0 which doesn't have the new argument in identical()? Matthew