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 (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 > (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