So I can't use neither use the the class mMatrix form Matrix in my package, neither define an internal union class of ("Matrix", "matrix"). If I define a union class with a different name, then I have to import the class "Matrix" from Matrix or I get a check error. But then I need to add Matrix as Depends (or I get an error, which makes sense). The issue is that if I add Matrix as Depends I get the error that the package "Matrix" is not found, when checking if the package can be installed. This error does not happen when installing with R CMD INSTALL.
I eventually managed to reproduce the error: as soon as I add ggplot2 in Imports I get the error. A DESCRIPTION file with this breaks: Depends: Matrix Imports: ggplot2 I have Matrix 1.2.18 and ggplot2 3.3.0 Sent with ProtonMail Secure Email. ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Monday, May 18, 2020 2:31 PM, Duncan Murdoch <murdoch.dun...@gmail.com> wrote: > On 29/04/2020 1:16 p.m., renozao wrote: > > > Thank you Martin, > > Looks like the mMatrix class defined in Matrix is not exported in 3.6.3, > > maybe it is now exported in the current R-devel. > > Matrix doesn't have the same versions as R: it's a recommended package, > not a base package. It can be updated independently of R. The current > version on CRAN is 1.2-18, but the R-forge version is 1.3-0. Neither > one exports mMatrix. > > Duncan Murdoch > > > In this case I'd rather use a conditional import and definition. > > I'll try that route. > > Bests, > > Renaud > > Sent with ProtonMail Secure Email. > > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ > > On Saturday, April 18, 2020 12:36 PM, Martin Maechler > > maech...@stat.math.ethz.ch wrote: > > > > > > > > > > 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 REdefine 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 ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel