Re: [Rd] as(, "dgTMatrix")' is deprecated.

2023-10-04 Thread Koenker, Roger W
Thanks, Ivan, I should have had the initiative to do this myself.  I’ve now 
written to the Mosek folks in the hope that they will update this in Rmosek.

Best
Roger

> On Oct 3, 2023, at 8:47 PM, Ivan Krylov  wrote:
> 
> On Tue, 3 Oct 2023 16:50:55 +
> "Koenker, Roger W"  wrote:
> 
>> I thought it might come from Rmosek, but mosek folks don’t think so.
> 
> I downloaded the Rmosek source package using
> 
> download.packages(
> 'Rmosek', '.',
> repos='https://urldefense.com/v3/__https://download.mosek.com/R/10.1__;!!DZ3fjg!-J68cgVdf_vRXm7yhSxSNzoDv6i6681nySXG9qhE808C3UTKTWGNCfZEWchGfsh2FZbBpQJuWa8Tr8_mo3f2xFo$
>  '
> )
> 
> ...and there are the deprecated calls:
> 
> 
> Rmosek/R$ grep -C2 -r as\(.*dgT
> toCSCMatrix.R-  }
> toCSCMatrix.R-  else if (is(obj,"dgCMatrix")) {
> toCSCMatrix.R:obj <- as(obj,"dgTMatrix")
> toCSCMatrix.R-  }
> toCSCMatrix.R-  else if (is(obj,"list") && 
> setequal(names(obj),c("i","j","v","ncol","nrow"))) {
> --
> toCSCMatrix.R- x=obj[['v']],
> toCSCMatrix.R- dims=c(obj[['nrow']], obj[['ncol']]) )
> toCSCMatrix.R:obj <- as(tmp, "dgTMatrix")
> toCSCMatrix.R-  }
> toCSCMatrix.R-  else if (canCoerce(obj,"dgTMatrix")) {
> toCSCMatrix.R-# Assume coercion is meaningful, and that
> toCSCMatrix.R-# users are aware of computational overhead.
> toCSCMatrix.R:obj <- as(obj,"dgTMatrix")
> toCSCMatrix.R-  }
> toCSCMatrix.R-  else {
> 
> 
> -- 
> Best regards,
> Ivan

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] as(, "dgTMatrix")' is deprecated.

2023-10-04 Thread Mikael Jagan
> 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 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  to   because  the size of
> >  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(, "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

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] as(, "dgTMatrix")' is deprecated.

2023-10-04 Thread Koenker, Roger W
thanks, good to know, although at my age this is the sort of knowledge that has 
a very short half-life. ;-)

R


> On Oct 4, 2023, at 9:57 AM, Mikael Jagan  wrote:
> 
> > 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  > > 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  to   because  the size of
> > >  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(, "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

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] as(, "dgTMatrix")' is deprecated.

2023-10-04 Thread Hervé Pagès
Hi Martin,

On 10/3/23 10:17, Martin Maechler 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://groups.google.com/g/mosek/c/yEwXmMfHBbg/m/l_mkeM4vAAAJ
>
>  > 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  to   because  the size of
>  is here about 200, and we don't want to have to provide
> 200^2 = 40'000  coercion methods.

40,000 coercion methods sounds indeed crazy. But have you considered 
having 200 coercions from ANY to ?

For example the coercion from ANY to dgTMatrix would do as(as(as(from, 
"dMatrix"), "generalMatrix"), "TsparseMatrix").

Maybe the ANY->xyzMatrix methods could even be generated programmatically?

Best,

H.

>
> 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(, "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
>
> __
> R-devel@r-project.org  mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

-- 
Hervé Pagès

Bioconductor Core Team
hpages.on.git...@gmail.com

[[alternative HTML version deleted]]

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] [R-pkg-devel] Problem with "compacting" pdf files.

2023-10-04 Thread Kurt Hornik
> Ivan Krylov writes:

Thanks: committed now.

Best
-k

> Dear Rolf,
> (Moving this one to R-devel...)

> On Sun,  1 Oct 2023 21:01:13 +
> Rolf Turner  wrote:

>> I *really* think that the instructions from CRAN could have been
>> clearer!  Without your guidance I'd have been at a total loss.

> Since the CRAN e-mails quote the R CMD check messages verbatim, would
> it have been enough if R CMD check suggested using --compact-vignettes?

> Index: src/library/tools/R/check.R
> ===
> --- src/library/tools/R/check.R   (revision 85249)
> +++ src/library/tools/R/check.R   (working copy)
> @@ -3079,7 +3079,8 @@
>   "  'qpdf' made some significant size reductions:\n",
>   paste("  ", res, collapse = "\n"),
>   "\n",
> - "  consider running tools::compactPDF() on these 
> files\n")
> + "  consider running tools::compactPDF() on these 
> files,\n",
> + "  or build the source package with 
> --compact-vignettes\n")
>  }
>  if (R_check_doc_sizes2) {
>  gs_cmd <- find_gs_cmd()
> @@ -3093,7 +3094,8 @@
>   "  'gs+qpdf' made some significant size 
> reductions:\n",
>   paste("  ", res, collapse = "\n"),
>   "\n",
> - '  consider running 
> tools::compactPDF(gs_quality = "ebook") on these files\n')
> + '  consider running 
> tools::compactPDF(gs_quality = "ebook") on these files,\n',
> + '  or build the source package with 
> --compact-vignettes=both\n')
>  }
>  } else {
>  if (!any) noteLog(Log)

> Or is there anything else you would prefer to be reworded? Should the
> message link to Writing R Extensions, section 1.4? Recently there was a
> project to improve the R CMD check messages [*], but I managed to miss
> almost all of it.

> -- 
> Best regards,
> Ivan

> [*] https://github.com/r-devel/r-project-sprint-2023/issues/55

> __
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel