>>>>> renozao >>>>> on Wed, 8 Apr 2020 16:19:59 +0000 writes:
> 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 Thank you, Renaud, and Bill Dunlap. There is obviously a bit of a problem there, but it may well be "only" a problem in error handling. As Bill's trace(get, ..) shows, R tries to get "#HAS_DUPLICATE_CLASS_NAMES" which is indeed an indication of the problem: You are trying to *RE*define a class union that already exists *identically* in the Matrix package: In the R-forge development version of 'Matrix', it is line 717 of Matrix/R/AllClass.R (and that will be close also in the CRAN version of Matrix). So at least for you, Renaud, the solution to the problem is easy: Just don't do what you should not do: What you want is already part of Matrix.... and after searching: It's been part of Matrix since ca. July 2012 ... -- But yes, there's a buglet in the 'methods' package currently, which leads to a misleading error message (It's arguable if it *should* give an error which it did not previously; I think it would be quite a good idea to give at least a warning as you are masking class definition of the Matrix package which is in your search() path or at least among the loaded namespaces at this time). Best, Martin > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ > On Wednesday, April 8, 2020 11:19 AM, William Dunlap <wdun...@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 <wdun...@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 <maech...@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@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-package-devel > [[alternative HTML version deleted]] > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel