[Rcpp-devel] [ANN] Matrix package bug fix release RcppArmadillo 0.10.1.2.1 on drat

Martin Maechler maechler at stat.math.ethz.ch
Fri Jan 1 12:32:33 CET 2021


Dirk Eddelbuettel <edd at debian.org> on Thu, 31 Dec 2020 08:52 wrote

> Binxiang and I indepedently noticed (and independently fixed, my bad for not
> committing earlier) that the very recent Matrix 1.3.0 (on CRAN) breaks one
> our (optional) unit tests related to sparse matrix conversion.

> So I made a fix release 0.10.1.2.1 which is now in the usual Rcpp drat repo
> from where you can install it e.g. via

>   install.packages("RcppArmadillo", repos="https:://rcppcore.github.io/drat")

> or by using one of the drat helper functions to set or update repos.

> Once CRAN reopens, I will likely submit this.  The breakage is a little
> unusual in that CRAN normally does better than this, or communicates. In a
> fuller reverse dependency backtest of Rcpp several packages had related
> hickups.  When reverse-dependency testing RcppArmadillo itself, four packages
> came up.  I am sure package Matrix had good reasons for the change, I am just
> a little surprised by the shrapnel.

This is mostly my fault (as 'Matrix' package maintainer), as
indeed, you are right that the CRAN would handle this with more
care.
This was from a coincidence of two different mistakes by myself (one
of my own R-devel changes [all.equal.function()] breaking one
example check in Matrix, easily correctable but not noticed in
due time), and then a new bug in Matrix 1.3-0 ((but that's not
the RcppArmadillo error I hope !! -- but rather the change below ?)),
then upcoming holidays for everybody and then the usual well
deserved CRAN end-of-year vacation.

I'm really sorry for that, and apologize here.
I had wanted to send e-mail to all Matrix reverse dependent
packages affected,  as one of the changes indeed was very much
on purpose and listed among the (very rare!!) user visible NEWS
of Matrix:

   ---------------------------------------------------------------------------------
    * Significant User-Visible Change

    Matrix(*, doDiag=TRUE) where doDiag=TRUE has always been the default is now 
    obeyed also in the sparse case, as all "diagonalMatrix" are also "sparseMatrix".

    Matrix(0, 3,3) returns a "ddiMatrix" instead of a "dsCMatrix" previously.
    The latter is still returned from Matrix(0, 3,3, doDiag=FALSE), and
    e.g., .symDiagonal(3,pi).

    Also a triangular matrix, e.g., "dtrMatrix" is detected now in cases with NAs.

    This is both a bug fix and an API change which breaks code that assumes
    Matrix(.) to return a "CsparseMatrix" in cases where it now returns a
    "diagonalMatrix" (which does extend "sparseMatrix").
   ---------------------------------------------------------------------------------

With the very best wishes for a safe and good New Year 2021,
Martin

Martin Maechler
ETH Zurich  and  R Core team


> Anyway, small stuff -- and 2020 is almost over here, and already is in some
> places such as Auckland and Sidney which already live in the future so with
> that a very happy and hopefully calmer 2021 to all!

> Dirk

> -- 
> https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org

> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


More information about the Rcpp-devel mailing list