kent@darwin.eeb.uconn.edu
2005-Jun-29 17:55 UTC
[Rd] Failed "make check" under Fedora Core 4 (PR#7979)
I downloaded R v2.1.1 earlier this morning to compile under Fedora Core 4. It compiled without incident, but 'make check' failed. Below is the relevant part of its report. Is this a known problem? I used a locally compiled version of GCC v4.0.0 that reports [kent at d89h102 R-2.1.1]$ gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc-4.0.0/configure --enable-languages=c,c++,f95,java Thread model: posix gcc version 4.0.0 [kent at d89h102 R-2.1.1]$ Kent Holsinger kent at darwin.eeb.uconn.edu make[3]: Entering directory `/home/kent/source-arc/R-2.1.1/tests' running code in 'eval-etc.R' ... OK comparing 'eval-etc.Rout' to './eval-etc.Rout.save' ...2a3,157 > > #### eval / parse / deparse / substitute etc > > > > ##- From: Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk> > > ##- Subject: Re: source() / eval() bug ??? (PR#96) > > ##- Date: 20 Jan 1999 14:56:24 +0100 > > e1 <- parse(text='c(F=(f <- .3), "Tail area" = 2 * if(f < 1) 30 else 90)')[[1]] > > e1 > c(F = (f <- 0.3), "Tail area" = 2 * if (f < 1) 30 else 90) > > str(eval(e1)) > Named num [1:2] 0.3 60 > - attr(*, "names")= chr [1:2] "F" "Tail area" > > mode(e1) > [1] "call" > > > > ( e2 <- quote(c(a=1,b=2)) ) > c(a = 1, b = 2) > > names(e2)[2] <- "a b c" > > e2 > c("a b c" = 1, b = 2) > > parse(text=deparse(e2)) > expression(c("a b c" = 1, b = 2)) > > > > ##- From: Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk> > > ##- Date: 22 Jan 1999 11:47 > > > > ( e3 <- quote(c(F=1,"tail area"=pf(1,1,1))) ) > c(F = 1, "tail area" = pf(1, 1, 1)) > > eval(e3) > F tail area > 1.0 0.5 > > names(e3) > [1] "" "F" "tail area" > > > > names(e3)[2] <- "Variance ratio" > > e3 > c("Variance ratio" = 1, "tail area" = pf(1, 1, 1)) > > eval(e3) > Variance ratio tail area > 1.0 0.5 > > > > > > ##- From: Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk> > > ##- Date: 2 Sep 1999 > > > > ## The first failed in 0.65.0 : > > attach(list(x=1)) > > evalq(dim(x) <- 1,as.environment(2)) > > dput(get("x", env=as.environment(2)), control="all") > structure(1, .Dim = as.integer(1)) > > > > e <- local({x <- 1;environment()}) > > evalq(dim(x) <- 1,e) > > dput(get("x",env=e), control="all") > structure(1, .Dim = as.integer(1)) > > > > ### Substitute, Eval, Parse, etc > > > > ## PR#3 : "..." matching > > ## Revised March 7 2001 -pd > > A <- function(x, y, ...) { > + B <- function(a, b, ...) { match.call() } > + B(x+y, ...) > + } > > (aa <- A(1,2,3)) > B(a = x + y, b = 3) > > all.equal(as.list(aa), > + list(as.name("B"), a = expression(x+y)[[1]], b = 3)) > [1] TRUE > > (a2 <- A(1,2, named = 3)) #A(1,2, named = 3) > B(a = x + y, named = 3) > > all.equal(as.list(a2), > + list(as.name("B"), a = expression(x+y)[[1]], named = 3)) > [1] TRUE > > > > CC <- function(...) match.call() > > DD <- function(...) CC(...) > > a3 <- DD(1,2,3) > > all.equal(as.list(a3), > + list(as.name("CC"), 1, 2, 3)) > [1] TRUE > > > > ## More dots issues: March 19 2001 -pd > > ## Didn't work up to and including 1.2.2 > > > > f <- function(...) { > + val <- match.call(expand.dots=F)$... > + x <- val[[1]] > + eval.parent(substitute(missing(x))) > + } > > g <- function(...) h(f(...)) > > h <- function(...) list(...) > > k <- function(...) g(...) > > X <- k(a=) > > all.equal(X, list(TRUE)) > [1] TRUE > > > > ## Bug PR#24 > > f <- function(x,...) substitute(list(x,...)) > > deparse(f(a, b)) == "list(a, b)" && > + deparse(f(b, a)) == "list(b, a)" && > + deparse(f(x, y)) == "list(x, y)" && > + deparse(f(y, x)) == "list(y, x)" > [1] TRUE > > > > tt <- function(x) { is.vector(x); deparse(substitute(x)) } > > a <- list(b=3); tt(a$b) == "a$b" # tends to break when ... > [1] TRUE > > > > > > ## Parser: > > 1 < > + 2 > [1] TRUE > > 2 < > + 3 > [1] TRUE > > 4 > > + 3 > [1] TRUE > > 3 > > + 2 > [1] TRUE > > 2 = > + 2 > [1] TRUE > > ## bug till ... > > 1 ! > + 3 > [1] TRUE > > > > all(NULL == NULL) > [1] TRUE > > > > ## PR #656 (related) > > u <- runif(1); length(find(".Random.seed")) == 1 > [1] TRUE > > > > MyVaR <<- "val";length(find("MyVaR")) == 1 > [1] TRUE > > rm(MyVaR); length(find("MyVaR")) == 0 > [1] TRUE > > > > > > ## Martin Maechler: rare bad bug in sys.function() {or match.arg()} (PR#1409) > > callme <- function(a = 1, mm = c("Abc", "Bde")) { > + mm <- match.arg(mm); cat("mm = "); str(mm) ; invisible() > + } > > ## The first two were as desired: > > callme() > mm = chr "Abc" > > callme(mm="B") > mm = chr "Bde" > > mycaller <- function(x = 1, callme = pi) { callme(x) } > > mycaller()## wrongly gave `mm = NULL' now = "Abc" > mm = chr "Abc" make[3]: *** [eval-etc.Rout] Error 1 make[3]: Leaving directory `/home/kent/source-arc/R-2.1.1/tests' make[2]: *** [test-Specific] Error 2 make[2]: Leaving directory `/home/kent/source-arc/R-2.1.1/tests' make[1]: *** [test-all-basics] Error 1 make[1]: Leaving directory `/home/kent/source-arc/R-2.1.1/tests' make: *** [check] Error 2 <<insert bug report here>> --please do not edit the information below-- Version: platform = i686-pc-linux-gnu arch = i686 os = linux-gnu system = i686, linux-gnu status major = 2 minor = 1.1 year = 2005 month = 06 day = 20 language = R Locale: LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C Search Path: .GlobalEnv, package:methods, package:stats, package:graphics, package:grDevices, package:utils, package:datasets, Autoloads, package:base
Martyn Plummer
2005-Jun-30 09:39 UTC
[Rd] Failed "make check" under Fedora Core 4 (PR#7979)
On Wed, 2005-06-29 at 19:55 +0200, kent at darwin.eeb.uconn.edu wrote:> I downloaded R v2.1.1 earlier this morning to compile under Fedora Core > 4. It compiled without incident, but 'make check' failed. Below is the > relevant part of its report. Is this a known problem?It is known that gcc 4.0.0 is buggy. The current recommendation, from Brian Ripley, is to use gcc 3.4.4 instead. We are awaiting the bug-fix release gcc 4.0.1. R compiled with the gcc 4.0.0 provided on FC4 does pass "make check- all". My guess is that your locally compiled version does not have the patches applied by Red Hat. Martyn> I used a locally compiled version of GCC v4.0.0 that reports > > [kent at d89h102 R-2.1.1]$ gcc -v > Using built-in specs. > Target: i686-pc-linux-gnu > Configured with: ../gcc-4.0.0/configure --enable-languages=c,c++,f95,java > Thread model: posix > gcc version 4.0.0 > [kent at d89h102 R-2.1.1]$ > > Kent Holsinger > kent at darwin.eeb.uconn.edu > > make[3]: Entering directory `/home/kent/source-arc/R-2.1.1/tests' > running code in 'eval-etc.R' ... OK > comparing 'eval-etc.Rout' to './eval-etc.Rout.save' ...2a3,157 > > > #### eval / parse / deparse / substitute etc > > > > > > ##- From: Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk> > > > ##- Subject: Re: source() / eval() bug ??? (PR#96) > > > ##- Date: 20 Jan 1999 14:56:24 +0100 > > > e1 <- parse(text='c(F=(f <- .3), "Tail area" = 2 * if(f < 1) 30 > else 90)')[[1]] > > > e1 > > c(F = (f <- 0.3), "Tail area" = 2 * if (f < 1) 30 else 90) > > > str(eval(e1)) > > Named num [1:2] 0.3 60 > > - attr(*, "names")= chr [1:2] "F" "Tail area" > > > mode(e1) > > [1] "call" > > > > > > ( e2 <- quote(c(a=1,b=2)) ) > > c(a = 1, b = 2) > > > names(e2)[2] <- "a b c" > > > e2 > > c("a b c" = 1, b = 2) > > > parse(text=deparse(e2)) > > expression(c("a b c" = 1, b = 2)) > > > > > > ##- From: Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk> > > > ##- Date: 22 Jan 1999 11:47 > > > > > > ( e3 <- quote(c(F=1,"tail area"=pf(1,1,1))) ) > > c(F = 1, "tail area" = pf(1, 1, 1)) > > > eval(e3) > > F tail area > > 1.0 0.5 > > > names(e3) > > [1] "" "F" "tail area" > > > > > > names(e3)[2] <- "Variance ratio" > > > e3 > > c("Variance ratio" = 1, "tail area" = pf(1, 1, 1)) > > > eval(e3) > > Variance ratio tail area > > 1.0 0.5 > > > > > > > > > ##- From: Peter Dalgaard BSA <p.dalgaard at biostat.ku.dk> > > > ##- Date: 2 Sep 1999 > > > > > > ## The first failed in 0.65.0 : > > > attach(list(x=1)) > > > evalq(dim(x) <- 1,as.environment(2)) > > > dput(get("x", env=as.environment(2)), control="all") > > structure(1, .Dim = as.integer(1)) > > > > > > e <- local({x <- 1;environment()}) > > > evalq(dim(x) <- 1,e) > > > dput(get("x",env=e), control="all") > > structure(1, .Dim = as.integer(1)) > > > > > > ### Substitute, Eval, Parse, etc > > > > > > ## PR#3 : "..." matching > > > ## Revised March 7 2001 -pd > > > A <- function(x, y, ...) { > > + B <- function(a, b, ...) { match.call() } > > + B(x+y, ...) > > + } > > > (aa <- A(1,2,3)) > > B(a = x + y, b = 3) > > > all.equal(as.list(aa), > > + list(as.name("B"), a = expression(x+y)[[1]], b = 3)) > > [1] TRUE > > > (a2 <- A(1,2, named = 3)) #A(1,2, named = 3) > > B(a = x + y, named = 3) > > > all.equal(as.list(a2), > > + list(as.name("B"), a = expression(x+y)[[1]], named = 3)) > > [1] TRUE > > > > > > CC <- function(...) match.call() > > > DD <- function(...) CC(...) > > > a3 <- DD(1,2,3) > > > all.equal(as.list(a3), > > + list(as.name("CC"), 1, 2, 3)) > > [1] TRUE > > > > > > ## More dots issues: March 19 2001 -pd > > > ## Didn't work up to and including 1.2.2 > > > > > > f <- function(...) { > > + val <- match.call(expand.dots=F)$... > > + x <- val[[1]] > > + eval.parent(substitute(missing(x))) > > + } > > > g <- function(...) h(f(...)) > > > h <- function(...) list(...) > > > k <- function(...) g(...) > > > X <- k(a=) > > > all.equal(X, list(TRUE)) > > [1] TRUE > > > > > > ## Bug PR#24 > > > f <- function(x,...) substitute(list(x,...)) > > > deparse(f(a, b)) == "list(a, b)" && > > + deparse(f(b, a)) == "list(b, a)" && > > + deparse(f(x, y)) == "list(x, y)" && > > + deparse(f(y, x)) == "list(y, x)" > > [1] TRUE > > > > > > tt <- function(x) { is.vector(x); deparse(substitute(x)) } > > > a <- list(b=3); tt(a$b) == "a$b" # tends to break when ... > > [1] TRUE > > > > > > > > > ## Parser: > > > 1 < > > + 2 > > [1] TRUE > > > 2 <> > + 3 > > [1] TRUE > > > 4 >> > + 3 > > [1] TRUE > > > 3 > > > + 2 > > [1] TRUE > > > 2 => > + 2 > > [1] TRUE > > > ## bug till ... > > > 1 !> > + 3 > > [1] TRUE > > > > > > all(NULL == NULL) > > [1] TRUE > > > > > > ## PR #656 (related) > > > u <- runif(1); length(find(".Random.seed")) == 1 > > [1] TRUE > > > > > > MyVaR <<- "val";length(find("MyVaR")) == 1 > > [1] TRUE > > > rm(MyVaR); length(find("MyVaR")) == 0 > > [1] TRUE > > > > > > > > > ## Martin Maechler: rare bad bug in sys.function() {or match.arg()} > (PR#1409) > > > callme <- function(a = 1, mm = c("Abc", "Bde")) { > > + mm <- match.arg(mm); cat("mm = "); str(mm) ; invisible() > > + } > > > ## The first two were as desired: > > > callme() > > mm = chr "Abc" > > > callme(mm="B") > > mm = chr "Bde" > > > mycaller <- function(x = 1, callme = pi) { callme(x) } > > > mycaller()## wrongly gave `mm = NULL' now = "Abc" > > mm = chr "Abc" > make[3]: *** [eval-etc.Rout] Error 1 > make[3]: Leaving directory `/home/kent/source-arc/R-2.1.1/tests' > make[2]: *** [test-Specific] Error 2 > make[2]: Leaving directory `/home/kent/source-arc/R-2.1.1/tests' > make[1]: *** [test-all-basics] Error 1 > make[1]: Leaving directory `/home/kent/source-arc/R-2.1.1/tests' > make: *** [check] Error 2 > > <<insert bug report here>> > > > > --please do not edit the information below-- > > Version: > platform = i686-pc-linux-gnu > arch = i686 > os = linux-gnu > system = i686, linux-gnu > status > major = 2 > minor = 1.1 > year = 2005 > month = 06 > day = 20 > language = R > > Locale: > LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C > > Search Path: > .GlobalEnv, package:methods, package:stats, package:graphics, > package:grDevices, package:utils, package:datasets, Autoloads, package:base > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel----------------------------------------------------------------------- This message and its attachments are strictly confidential. ...{{dropped}}