When complex assignments are performed, the R interpreter creates, then removes a special variable *tmp*. However, when byte compiling is enabled, it seems that a different mechanism for making compound assignments is used.
Would it be possible to eliminate *tmp* from interpreted R code as well? It might be useful for a function to lock its own environment, and the appearance and disappearance of *tmp* generally precludes that. (For example, a function might lock its own environment to guard against lexical-scope-breaking ambiguities such as x <- 1 f <- function() { if (runif() < 0.5) { x <- x+1 } x } where it is not clear where the returned x comes from inside or outside f.) [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel