[R-pkg-devel] Error creating union class: object ‘.__C__compMatrix’ not found
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 <maechler at 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 <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
> [[alternative HTML version deleted]]
______________________________________________
> R-package-devel at r-project.org mailing list
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel