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}}