[Rd] as(<dgCMatrix>, "dgTMatrix")' is deprecated.
Mikael Jagan
j@g@nmn2 @end|ng |rom gm@||@com
Wed Oct 4 10:57:00 CEST 2023
> There is a call to mosek and I assumed that this wasn’t going to be helpful
for most R-devel recipients. I tried Duncan’s very reasonable suggestion about
options() but it didn’t produce the desired error, so perhaps this isn’t really
a warning but something else???
>
The details are described in news(package="Matrix") under "Changes in version
1.5-0" and implemented in Matrix:::Matrix.DeprecatedCoerce. That version was
released in Sep 2022.
At the time, it was too disruptive to signal a proper deprecation warning
with every as(., "d(g.|.C)Matrix") call, for every reverse dependency of
Matrix, so we decided that in those most common cases we would use message()
instead of warning(). A corollary was that options(warn=n) would not have
the usual effect, so we advertised an alternative to affected maintainers:
in R:
options(Matrix.warnDeprecatedCoerce=n)
on the command line:
R_MATRIX_WARN_DEPRECATED_COERCE=n R CMD check *.tar.gz
But maybe it is time to begin signaling warnings unconditionally ...
Mikael
> For those who might have rmosek installed, I’m doing:
>
> library(REBayes)
> demo(GLmix1)
>
> Thanks,
> Roger
>
>
> > On Oct 3, 2023, at 6:17 PM, Martin Maechler <maechler using
stat.math.ethz.ch> wrote:
> >
> >>>>>> Duncan Murdoch
> >>>>>> on Tue, 3 Oct 2023 12:59:10 -0400 writes:
> >
> >> On 03/10/2023 12:50 p.m., Koenker, Roger W wrote:
> >>> I’ve been getting this warning for a while now (about
> >>> five years if memory serves) and I’m finally tired of it,
> >>> but also too tired to track it down in Matrix. As far as
> >>> I can grep I have no reference to either deprecated
> >>> object, only the apparently innocuous Matrix::Matrix(A,
> >>> sparse = TRUE). Can someone advise, Martin perhaps? I
> >>> thought it might come from Rmosek, but mosek folks don’t
> >>> think so.
> >>>
https://urldefense.com/v3/__https://groups.google.com/g/mosek/c/yEwXmMfHBbg/m/l_mkeM4vAAAJ__;!!DZ3fjg!71re8ipw9fFStkMab0wGuPNSzSaAhPI5vwxd1BCQ7a55mYiRpAq2prn9-wREqKL_G2uBYboXISQfxZYCZ9AFxCnwxdzqTw$
> >
> >> A quick scan of that discussion didn't turn up anything
> >> relevant, e.g. a script to produce the warning. Could you
> >> be more specific, or just post the script here?
> >
> >> In general, a good way to locate the source of a warning
> >> is to set options(warn=2) to turn it into an error, and
> >> then trigger it. The traceback from the error will
> >> include a bunch of junk from the code that catches the
> >> warning, but it will also include the context where it was
> >> triggered.
> >
> >> Duncan Murdoch
> >
> > Indeed.
> >
> > But Roger is right that it in the end, (almost surely) it is
> > from our {Matrix} package.
> >
> > Indeed for several years now, we have tried to make the setup
> > leaner (and hence faster) by not explicitly define coercion
> > from <everything> to <everything> because the size of
> > <everything> is here about 200, and we don't want to have to provide
> > 200^2 = 40'000 coercion methods.
> >
> > Rather, Matrix package users should use to high level abstract Matrix
> > classes such as "sparseMatrix" or "CsparseMatrix" or
> > "TsparseMatrix" or "dMatrix", "symmetricMatrix".
> >
> > In the case of as(<dgCMatrix>, "dgTMatrix") , if you
> > replace "dgTMatrix" by "TsparseMatrix"
> > the result will be the same but also work in the future when the
> > deprecation may have been turned into a defunctation ...
> >
> > Martin
More information about the R-devel
mailing list