From murdoch.duncan at gmail.com  Mon Apr 23 13:35:44 2018
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Mon, 23 Apr 2018 07:35:44 -0400
Subject: [Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
In-Reply-To: <874lk2dxgf.fsf@write-only.cryp.to>
References: <874lk2dxgf.fsf@write-only.cryp.to>
Message-ID: <1aecf60e-715d-1395-a6b7-dc18dd950de9@gmail.com>

On 23/04/2018 6:33 AM, Peter Simons wrote:
> Hi,
> 
> I just tried to upgrade Nixpkgs to R 3.5.0, but unfortunately the new
> version fails its regression test suite. We configure the build using
> the flags "--without-recommended-packages", in case that's relevant. You
> can see a complete build log with all relevant information at [1].
> Anyway, the test failures look like this:

I haven't read the full script below, but a lot of it has to do with 
tests of Matrix, which is a recommended package.  Since you built 
without it, they should be expected to fail.

You can likely get rid of most of them by building with the recommended 
packages.

Duncan Murdoch

> 
>   | make[3]: Entering directory '/build/R-3.5.0/tests/Examples'
>   | Testing examples for package 'base'
>   | Testing examples for package 'tools'
>   |   comparing 'tools-Ex.Rout' to 'tools-Ex.Rout.save' ... OK
>   | Testing examples for package 'utils'
>   | Testing examples for package 'grDevices'
>   |   comparing 'grDevices-Ex.Rout' to 'grDevices-Ex.Rout.save' ... OK
>   | Testing examples for package 'graphics'
>   |   comparing 'graphics-Ex.Rout' to 'graphics-Ex.Rout.save' ... OK
>   | Testing examples for package 'stats'
>   |   comparing 'stats-Ex.Rout' to 'stats-Ex.Rout.save' ... NOTE
>   |   6599c6599
>   |   < Grand Mean: 291.5937
>   |   ---
>   |   > Grand Mean: 291.5938
>   |   15124c15124
>   |   < Grand Mean: 291.5937
>   |   ---
>   |   > Grand Mean: 291.5938
>   |   17444c17444
>   |   < assertCondition: caught "error"
>   |   ---
>   |   > assertCondition: caught 'error'
>   | Testing examples for package 'datasets'
>   |   comparing 'datasets-Ex.Rout' to 'datasets-Ex.Rout.save' ... OK
>   | Testing examples for package 'methods'
>   | Testing examples for package 'grid'
>   |   comparing 'grid-Ex.Rout' to 'grid-Ex.Rout.save' ... OK
>   | Testing examples for package 'splines'
>   |   comparing 'splines-Ex.Rout' to 'splines-Ex.Rout.save' ... OK
>   | Testing examples for package 'stats4'
>   |   comparing 'stats4-Ex.Rout' to 'stats4-Ex.Rout.save' ... OK
>   | Testing examples for package 'tcltk'
>   | Testing examples for package 'compiler'
>   | Testing examples for package 'parallel'
>   | make[3]: Leaving directory '/build/R-3.5.0/tests/Examples'
>   | make[2]: Leaving directory '/build/R-3.5.0/tests'
>   | make[2]: Entering directory '/build/R-3.5.0/tests'
>   | make[2]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
>   | running strict specific tests
>   | make[3]: Entering directory '/build/R-3.5.0/tests'
>   | running code in 'eval-etc.R' ... OK
>   |   comparing 'eval-etc.Rout' to './eval-etc.Rout.save' ...414,416c414,548
>   | < Warning message:
>   | < In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
>   | <   there is no package called 'Matrix'
>   | ---
>   | > Trying some Matrix objects, too
>   | >
>   | > Matrix> Matrix(0, 3, 2)             # 3 by 2 matrix of zeros -> sparse
>   | > 3 x 2 sparse Matrix of class "dgCMatrix"
>   | >
>   | > [1,] . .
>   | > [2,] . .
>   | > [3,] . .
>   | >
>   | > Matrix> Matrix(0, 3, 2, sparse=FALSE)# -> 'dense'
>   | > 3 x 2 Matrix of class "dgeMatrix"
>   | >      [,1] [,2]
>   | > [1,]    0    0
>   | > [2,]    0    0
>   | > [3,]    0    0
>   | >
>   | > Matrix> Matrix(0, 2, 2, sparse=FALSE)# diagonal !
>   | > 2 x 2 diagonal matrix of class "ddiMatrix"
>   | >      [,1] [,2]
>   | > [1,]    0    .
>   | > [2,]    .    0
>   | >
>   | > Matrix> Matrix(0, 2, 2, sparse=FALSE, doDiag=FALSE)# -> dense
>   | > 2 x 2 Matrix of class "dsyMatrix"
>   | >      [,1] [,2]
>   | > [1,]    0    0
>   | > [2,]    0    0
>   | >
>   | > Matrix> Matrix(1:6, 3, 2)           # a 3 by 2 matrix (+ integer warning)
>   | > 3 x 2 Matrix of class "dgeMatrix"
>   | >      [,1] [,2]
>   | > [1,]    1    4
>   | > [2,]    2    5
>   | > [3,]    3    6
>   | >
>   | > Matrix> Matrix(1:6 + 1, nrow=3)
>   | > 3 x 2 Matrix of class "dgeMatrix"
>   | >      [,1] [,2]
>   | > [1,]    2    5
>   | > [2,]    3    6
>   | > [3,]    4    7
>   | >
>   | > Matrix> ## logical ones:
>   | > Matrix> Matrix(diag(4) >  0)# -> "ldiMatrix" with diag = "U"
>   | > 4 x 4 diagonal matrix of class "ldiMatrix"
>   | >      [,1] [,2] [,3] [,4]
>   | > [1,] TRUE    .    .    .
>   | > [2,]    . TRUE    .    .
>   | > [3,]    .    . TRUE    .
>   | > [4,]    .    .    . TRUE
>   | >
>   | > Matrix> Matrix(diag(4) >  0, sparse=TRUE)# -> sparse...
>   | > 4 x 4 sparse Matrix of class "lsCMatrix"
>   | >
>   | > [1,] | . . .
>   | > [2,] . | . .
>   | > [3,] . . | .
>   | > [4,] . . . |
>   | >
>   | > Matrix> Matrix(diag(4) >= 0)# -> "lsyMatrix" (of all 'TRUE')
>   | > 4 x 4 Matrix of class "lsyMatrix"
>   | >      [,1] [,2] [,3] [,4]
>   | > [1,] TRUE TRUE TRUE TRUE
>   | > [2,] TRUE TRUE TRUE TRUE
>   | > [3,] TRUE TRUE TRUE TRUE
>   | > [4,] TRUE TRUE TRUE TRUE
>   | >
>   | > Matrix> ## triangular
>   | > Matrix> l3 <- upper.tri(matrix(,3,3))
>   | >
>   | > Matrix> (M <- Matrix(l3))  # -> "ltCMatrix"
>   | > 3 x 3 sparse Matrix of class "ltCMatrix"
>   | >
>   | > [1,] . | |
>   | > [2,] . . |
>   | > [3,] . . .
>   | >
>   | > Matrix> Matrix(! l3)# -> "ltrMatrix"
>   | > 3 x 3 Matrix of class "ltrMatrix"
>   | >      [,1]  [,2]  [,3]
>   | > [1,]  TRUE     .     .
>   | > [2,]  TRUE  TRUE     .
>   | > [3,]  TRUE  TRUE  TRUE
>   | >
>   | > Matrix> as(l3, "CsparseMatrix")
>   | > 3 x 3 sparse Matrix of class "lgCMatrix"
>   | >
>   | > [1,] . | |
>   | > [2,] . . |
>   | > [3,] . . .
>   | >
>   | > Matrix> Matrix(1:9, nrow=3,
>   | > Matrix+        dimnames = list(c("a", "b", "c"), c("A", "B", "C")))
>   | > 3 x 3 Matrix of class "dgeMatrix"
>   | >   A B C
>   | > a 1 4 7
>   | > b 2 5 8
>   | > c 3 6 9
>   | >
>   | > Matrix> (I3 <- Matrix(diag(3)))# identity, i.e., unit "diagonalMatrix"
>   | > 3 x 3 diagonal matrix of class "ddiMatrix"
>   | >      [,1] [,2] [,3]
>   | > [1,]    1    .    .
>   | > [2,]    .    1    .
>   | > [3,]    .    .    1
>   | >
>   | > Matrix> str(I3) # note the empty 'x' slot
>   | > Formal class 'ddiMatrix' [package "Matrix"] with 4 slots
>   | >   ..@ diag    : chr "U"
>   | >   ..@ Dim     : int [1:2] 3 3
>   | >   ..@ Dimnames:List of 2
>   | >   .. ..$ : NULL
>   | >   .. ..$ : NULL
>   | >   ..@ x       : num(0)
>   | >
>   | > Matrix> (A <- cbind(a=c(2,1), b=1:2))# symmetric *apart* from dimnames
>   | >      a b
>   | > [1,] 2 1
>   | > [2,] 1 2
>   | >
>   | > Matrix> Matrix(A)                    # hence 'dgeMatrix'
>   | > 2 x 2 Matrix of class "dgeMatrix"
>   | >      a b
>   | > [1,] 2 1
>   | > [2,] 1 2
>   | >
>   | > Matrix> (As <- Matrix(A, dimnames = list(NULL,NULL)))# -> symmetric
>   | > 2 x 2 Matrix of class "dsyMatrix"
>   | >      [,1] [,2]
>   | > [1,]    2    1
>   | > [2,]    1    2
>   | >
>   | > Matrix> stopifnot(is(As, "symmetricMatrix"),
>   | > Matrix+           is(Matrix(0, 3,3), "sparseMatrix"),
>   | > Matrix+           is(Matrix(FALSE, 1,1), "sparseMatrix"))
>   | 430,436c562,564
>   | < A: function (x, y, ...)
>   | < {
>   | <     B <- function(a, b, ...) {
>   | <         match.call()
>   | <     }
>   | <     B(x + y, ...)
>   | < }
>   | ---
>   | > A: new("dgCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(8L, 10L), Dimnames = list(
>   | >     NULL, NULL), x = c(7, 21, 28, 35, 14, 42, 49), factors = list())
>   | 438,444c566,589
>   | < checking body(.):
>   | < quote({
>   | <     B <- function(a, b, ...) {
>   | <         match.call()
>   | <     }
>   | <     B(x + y, ...)
>   | < })
>   | ---
>   | > --=--=--=--=--
>   | > A.: new("dgCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(8L, 10L), Dimnames = list(
>   | >     NULL, NULL), x = c(2, 21, 28, 35, 14, 42, 49), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > A1: new("dgCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(8L, 10L), Dimnames = list(
>   | >     NULL, NULL), x = c(7, 21, 28, 35, 14, 42, 49), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > AA: new("dgCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
>   | > 7L, 7L, 7L, 7L), Dim = c(10L, 20L), Dimnames = list(NULL, NULL),
>   | >     x = c(7, 21, 28, 35, 14, 42, 49), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > Aa: new("dgCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(8L, 10L), Dimnames = list(
>   | >     NULL, NULL), x = c(9, 21, 28, 35, 14, 42, 49), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > As: new("dsyMatrix", x = c(2, 1, 1, 2), Dim = c(2L, 2L), Dimnames = list(
>   | >     NULL, NULL), uplo = "U", factors = list())
>   | 446,448d590
>   | < checking formals(.):
>   | < as.pairlist(alist(x = , y = , ... = ))
>   | < __ not parse()able __: hasMissObj(.) is true
>   | 551a694,701
>   | > D5.: new("ddiMatrix", diag = "N", Dim = c(5L, 5L), Dimnames = list(
>   | >     NULL, NULL), x = c(5, 4, 3, 2, 1))
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > D5N: new("ddiMatrix", diag = "N", Dim = c(5L, 5L), Dimnames = list(
>   | >     NULL, NULL), x = c(5, 4, 3, 2, NA))
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 564a715,718
>   | > I3: new("ddiMatrix", diag = "U", Dim = c(3L, 3L), Dimnames = list(
>   | >     NULL, NULL), x = numeric(0))
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 588a743,747
>   | > M: new("ltCMatrix", i = c(0L, 0L, 1L), p = c(0L, 0L, 1L, 3L), Dim = c(3L,
>   | > 3L), Dimnames = list(NULL, NULL), x = c(TRUE, TRUE, TRUE), uplo = "U",
>   | >     diag = "N")
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 612a772,776
>   | > args: structure(list(i = c(1, 3, 4, 5, 6, 7, 8, 1), j = c(2, 9, 6,
>   | > 7, 8, 9, 10, 2), x = c(7, 14, 21, 28, 35, 42, 49, 2)), class = "data.frame", row.names = c(NA,
>   | > -8L))
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 732,733c896,901
>   | < e: <environment>
>   | < __ not parse()able __: environment
>   | ---
>   | > dn: list(c("A", "B", "C"), c("a", "b", "c", "d", "e"))
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > e: new("ngCMatrix", i = integer(0), p = c(0L, 0L, 0L, 0L, 0L, 0L,
>   | > 0L), Dim = c(4L, 6L), Dimnames = list(NULL, NULL), factors = list())
>   | >  --> checking list(*): Ok
>   | 844a1013,1015
>   | > i: c(1, 3, 4, 5, 6, 7, 8)
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 876a1048,1050
>   | > j: c(2, 9, 6, 7, 8, 9, 10)
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 886a1061,1064
>   | > l3: structure(c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE,
>   | > FALSE), .Dim = c(3L, 3L))
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 891a1070,1074
>   | > m: new("dgCMatrix", i = c(2L, 0L, 1L, 2L, 0L, 1L), p = c(0L, 1L,
>   | > 2L, 4L, 4L, 6L), Dim = c(3L, 5L), Dimnames = list(c("A", "B",
>   | > "C"), c("a", "b", "c", "d", "e")), x = c(1, 2, 4, 3, 6, 5), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 944a1128,1136
>   | > n: new("ngCMatrix", i = 5:0, p = c(0L, 0L, 1L, 2L, 3L, 4L, 5L, 6L
>   | > ), Dim = 6:7, Dimnames = list(NULL, NULL), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | > nA: new("ngCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(8L, 10L), Dimnames = list(
>   | >     NULL, NULL), factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 961a1154,1156
>   | > perm: c(2L, 3L, 6L, 4L, 1L, 7L, 5L)
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 1010a1206,1211
>   | > sA: new("dsCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(10L, 10L), Dimnames = list(
>   | >     NULL, NULL), x = c(7, 21, 28, 35, 14, 42, 49), uplo = "U",
>   | >     factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 1014a1216,1220
>   | > sy: new("dsCMatrix", i = c(1L, 3L, 4L, 2L, 3L), p = c(0L, 0L, 0L,
>   | > 0L, 1L, 3L, 4L, 5L), Dim = c(7L, 7L), Dimnames = list(NULL, NULL),
>   | >     x = c(1, 4, 5, 3, 2), uplo = "U", factors = list())
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 1018a1225,1230
>   | > tA: new("dtCMatrix", i = c(0L, 3L, 4L, 5L, 2L, 6L, 7L), p = c(0L,
>   | > 0L, 1L, 1L, 1L, 1L, 2L, 3L, 4L, 6L, 7L), Dim = c(10L, 10L), Dimnames = list(
>   | >     NULL, NULL), x = c(7, 21, 28, 35, 14, 42, 49), uplo = "U",
>   | >     diag = "N")
>   | >  --> checking list(*): Ok
>   | > --=--=--=--=--
>   | 1048c1260,1261
>   | < 2: In dput(x, control = control) : deparse may be incomplete
>   | ---
>   | > 2: In deparse(expr, backtick = backtick, control = control, ...) :
>   | >   deparse may be incomplete
>   | 1051c1264,1265
>   | < 4: In deparse(expr, backtick = backtick, control = control, ...) :
>   | ---
>   | > 4: In dput(x, control = control) : deparse may be incomplete
>   | > 5: In deparse(expr, backtick = backtick, control = control, ...) :
>   | 1053d1266
>   | < 5: In dput(x, control = control) : deparse may be incomplete
>   | 1056c1269,1270
>   | < 7: In deparse(expr, backtick = backtick, control = control, ...) :
>   | ---
>   | > 7: In dput(x, control = control) : deparse may be incomplete
>   | > 8: In deparse(expr, backtick = backtick, control = control, ...) :
>   | 1058d1271
>   | < 8: In dput(x, control = control) : deparse may be incomplete
>   | 1061,1062d1273
>   | < 10: In deparse(expr, backtick = backtick, control = control, ...) :
>   | <   deparse may be incomplete
>   | 1064c1275
>   | < Summary of (a total of 10) warning messages:
>   | ---
>   | > Summary of (a total of 9) warning messages:
>   | 1066c1277
>   | < 4x : In deparse(expr, backtick = backtick, control = control,  ... :
>   | ---
>   | > 3x : In deparse(expr, backtick = backtick, control = control,  ... :
>   | make[3]: *** [Makefile.common:106: eval-etc.Rout] Error 1
> 
> Now, I'm not quite sure how to interpret that output. Some of these
> issues seem harmless, really, and not indicative of a serious problem in
> R. Still, I reckon that it would be nice if the test suite would pass
> and for all I know other people might run into the same issue as we did,
> so I felt I should report it to the devs.
> 
> If there is any advice how to remedy this issues, then I'd very much
> appreciate it.
> 
> Best regards,
> Peter
> 
> [1] https://hydra.nixos.org/build/73154582/nixlog/3
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
Duncan Murdoch