>>>>> Morgan, Martin <[email protected]>
>>>>> on Fri, 4 Mar 2016 12:36:25 +0000 writes:
> I see as below, where getGeneric and getMethod imply a different
signature; the signature is mode="any" for both cases in R version 3.2.3
Patched (2016-01-28 r70038)I don't know how to reproduce Jeff's error, though.
>> library(Matrix)
>> as.vector
> function (x, mode = "any")
> .Internal(as.vector(x, mode))
> <bytecode: 0xe79f88>
> <environment: namespace:base>
so note, that even though Matrix is loaded, as.vector did not
have to change to a standardGeneric(.).
"The" reason is list among the NEWS for R-devel :
o S4 dispatch works within calls to .Internal(). This means explicit
S4 generics are no longer needed for unlist and as.vector.
so this change was very much on purpose and has had the goal to
keep as.vector() "as fast as possible".
*BUT* indeed, the "signature mismatch" you observe has been
an bogous side effect of the change, and it may even be the
reason why versions of Matrix built in different versions of R
(3.2.x vs 3.3.x) are problematic.
I'll commit a fix for this buglet {which also affects 'unlist' !}
in a moment.
So after all, I'm very glad for this thread!
Martin
>> getGeneric("as.vector")
> standardGeneric for "as.vector" defined from package "base"
> function (x, mode)
> standardGeneric("as.vector")
> <bytecode: 0x29a6bd0>
> <environment: 0x299f988>
> Methods may be defined for arguments: x
> Use showMethods("as.vector") for currently available ones.
>> selectMethod("as.vector", "ANY")
> Method Definition (Class "internalDispatchMethod"):
> function (x, mode)
> .Internal(as.vector(x, mode))
> <environment: base>
> Signatures:
> x
> target "ANY"
> defined "ANY"
>> sessionInfo()
> R Under development (unstable) (2016-02-27 r70232)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Ubuntu 14.04.4 LTS
> locale:
> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
> [9] LC_ADDRESS=C LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
> other attached packages:
> [1] Matrix_1.2-4
> loaded via a namespace (and not attached):
> [1] grid_3.3.0 lattice_0.20-33
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel