On 12-10-04 5:50 PM, Martin Morgan wrote:
On 10/04/2012 02:23 PM, Duncan Murdoch wrote:
On 12-10-04 4:57 PM, Martin Morgan wrote:
> setClass("A", "integer")
> isS4(new("A"))
[1] TRUE
> identical(isS4(new("A")), TRUE)
[1] FALSE
> sessionInfo()
R Under development (unstable) (2012-10-04 r60876)
Platform: x86_64-unknown-linux-gnu (64-bit)
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=C 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
I can confirm this in R-devel, but it doesn't happen in R-patched. In R-devel,
isS4 is returning a vector marked as LGLSXP, but containing the value 16, not
the usual 1 for TRUE.
> .Internal(inspect(isS4(new("A"))))
@4bfbed8 10 LGLSXP g0c1 [] (len=1, tl=0) 16
I'm not going to have time to track this down and fix it.
The bit is set at src/include/Rinternals.h:278
39103 jmc #define IS_S4_OBJECT(x) ((x)->sxpinfo.gp & S4_OBJECT_MASK)
but it's identical that has changed; it looks as though there are other similar
operations in that header and probably elsewhere.
In R-patched, it returned the value 1 for TRUE, so I'm not sure
identical() has changed.
Duncan Murdoch
Martin
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel