Hello,

Using R-devel (rev 53950), I get inconsistent results with as.environment( VECSXP ) when gctorture is on.

Consider:

a <- list( aa = rnorm, bb = runif )
gctorture(TRUE)
as.environment( a )

The last line sometimes produces the correct environment, but sometimes I get errors. Here are the three situations:

# good
> as.environment( a )
<environment: 0x100b1c978>

# not good
> as.environment( a )
Erreur dans length(x) : 'x' est manquant

# not good either
> as.environment( a )
Erreur dans list(NULL, list(aa = function (n, mean = 0, sd = 1)  :
  correspondance partielle de chaînes de caractères incorrecte


Is it because the call made by lang4 is not protected while evaluated in this line :

    case VECSXP: {
        /* implement as.environment.list() {isObject(.) is false for a list} */
        return(eval(lang4(install("list2env"), arg,
                          /*envir = */R_NilValue, /* parent = */R_EmptyEnv),
                    rho));
    }


(BTW, this was detected in a looooooooong Rcpp-devel thread. See http://comments.gmane.org/gmane.comp.lang.r.rcpp/1336)

Romain

--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://bit.ly/fT2rZM : highlight 0.2-5
|- http://bit.ly/gpCSpH : Evolution of Rcpp code size
`- http://bit.ly/hovakS : RcppGSL initial release

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to