[R-pkg-devel] Error creating union class: object ‘.__C__compMatrix’ not found
Thank you William for the reproducible example.
Currently I using the following (same as in William's example):
setClassUnion("mMatrix", c("Matrix", "matrix"))
Martin, are the changes made in the union class handling affecting the way we should declare them?
Thank you.
Bests,
Renaud
??????? Original Message ???????
On Wednesday, April 8, 2020 11:19 AM, William Dunlap <wdunlap at tibco.com> wrote:
Use trace() to get a bit more detail - .__C_compMatrix is looked for in the wrong environment with inherits=FALSE.
setClassUnion("mMatrix", c("Matrix", "matrix"))
Tracing get(name, envir = env) on entry
x=".AllMTable", envir="<environment: 0x21dcf10>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(name, envir = env) on entry
x=".MTable", envir="<environment: 0x2238cf0>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(name, envir = env) on entry
x=".AllMTable", envir="<environment: 0x21dcf10>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get("#HAS_DUPLICATE_CLASS_NAMES", envir = .classTable) on entry
x="#HAS_DUPLICATE_CLASS_NAMES", envir="<environment: 0x2787710>", topenv="<environment: base>", inherits=TRUE
Tracing get(name, envir = env) on entry
x=".AllMTable", envir="<environment: 0x21dcf10>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(name, envir = env) on entry
x=".MTable", envir="<environment: 0x2238cf0>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(name, envir = env) on entry
x=".MTable", envir="<environment: 0x21dcf10>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(".SigLength", envir = env) on entry
x=".SigLength", envir="<environment: 0x21dcf10>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(".SigLength", envir = env) on entry
x=".SigLength", envir="<environment: 0x21dcf10>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(name, envir = env) on entry
x=".MTable", envir="<environment: 0x2238cf0>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(".SigLength", envir = env) on entry
x=".SigLength", envir="<environment: 0x2238cf0>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(".SigLength", envir = env) on entry
x=".SigLength", envir="<environment: 0x2238cf0>", topenv="<environment: namespace:methods>", inherits=TRUE
Tracing get(cname, envir = cwhere, inherits = FALSE) on entry
x=".__C__compMatrix", envir="<environment: R_GlobalEnv>", topenv="<environment: R_GlobalEnv>", inherits=FALSE
Error in get(cname, envir = cwhere, inherits = FALSE) :
object '.__C__compMatrix' not found
...
Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Wed, Apr 8, 2020 at 7:52 AM William Dunlap <wdunlap at tibco.com> wrote:
% R-devel --vanilla --quiet
library(Matrix)
setClassUnion("mMatrix", c("Matrix", "matrix"))
Error in get(cname, envir = cwhere, inherits = FALSE) :
object '.__C__compMatrix' not found
Error in setClassUnion("mMatrix", c("Matrix", "matrix")) :
unable to create union class: could not set members "Matrix"
sessionInfo()
R Under development (unstable) (2020-04-07 r78175) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 16.04.6 LTS Matrix products: default BLAS/LAPACK: /usr/lib/libopenblasp-r0.2.18.so 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-18 loaded via a namespace (and not attached): [1] compiler_4.1.0 grid_4.1.0 lattice_0.20-41 Bill Dunlap TIBCO Software wdunlap tibco.com On Wed, Apr 8, 2020 at 7:35 AM Martin Maechler <maechler at stat.math.ethz.ch> wrote:
renozao
on Mon, 30 Mar 2020 21:20:43 +0000 writes:
> Hi,
> when R CMD check is run under R-devel (2020-03-29 r78108) I get the following error at installation:
> Error in get(cname, envir = cwhere, inherits = FALSE) :
> object ?.__C__compMatrix? not found
> Error in setClassUnion("mMatrix", c("Matrix", "matrix")) :
> unable to create union class: could not set members "Matrix"
> This does not happen on R 3.6.3.
> I tried with Matrix listed in Depends but I still get the same error.
> Is this linked to some changes in union classes or the Matrix package?
> Thank you.
> Bests,
> Renaud
Hi Renaud,
One reason you got no response here, is because we don't even
know about which package you are talking.
So there's nothing, anybody can reproduce from your posting.
There have been changes in R's dealing with class unions etc,
notably even *relating* to an earlier bug report on class unions
exactly for such a case which was *triggered* when people built
on such Matrix classes.
But we would really want to be able to reproduce what you are seeing..
Best regards,
Martin Maechler
ETH Zurich, R Core Team *and* maintainer("Matrix")
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel