Peter Simons
2018-Apr-23 10:33 UTC
[Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
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: | 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
Dirk Eddelbuettel
2018-Apr-23 11:33 UTC
[Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
On 23 April 2018 at 12:33, 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: The flag instructs R not to build new 'recommended packages'; however the tests you run later need them. This release has a binary change so you actually need to rebuild dependent packages -- in other words I think you can expect (some of) these tests to fail until these recommended packages are rebuilt.>From the doc/NEWS file, lines 395 and on:* The object header layout has been changed to support merging the ALTREP branch. This requires re-installing packages that use compiled code. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
Duncan Murdoch
2018-Apr-23 11:35 UTC
[Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
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 >
Ricardo Wurmus
2018-Apr-23 12:11 UTC
[Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
Hi Dirk,> On 23 April 2018 at 12:33, 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: > > The flag instructs R not to build new 'recommended packages'; however the > tests you run later need them.Is there a way to disable only those tests that depend on the recommended packages? Would it make sense to disable these tests by default when ?--without-recommended-packages? is passed?> This release has a binary change so you > actually need to rebuild dependent packages -- in other words I think you can > expect (some of) these tests to fail until these recommended packages are > rebuilt.I?ve hit the same problem as Peter in upgrading R for Guix. We build the recommended packages as separate packages later, so that we can offer a minimal R package. At the time when R itself is built the environment does not contain any R packages, so there is nothing to be rebuilt. Another problem with building the recommended packages as part of the R build process is that it?s more difficult to make them build bit-reproducibly. Building them as separate packages simplifies that and enables us to prevent e.g. the embedding of timestamps. -- Ricardo
Peter Simons
2018-Apr-23 13:14 UTC
[Rd] R 3.5.0 fails its regression test suite on Linux/x86_64
Duncan Murdoch <murdoch.duncan at gmail.com> writes: > You can likely get rid of most of them by building with the recommended > packages. unfortunately, this is not an option for us. For various reasons, our build process requires that we build those packages separately. Ricardo appears to be in a similar situation and he has outlined some of those reasons already in his message. Anyway, it would be FAR better for us if "make check" would simply succeed in the configuration we're using. We'd be perfectly happy to have those tests disabled that cannot be executed without the recommended packages available. Is there a way to accomplish that? Best regards, Peter