From fparlamis at mac.com  Wed Sep 20 22:38:50 2006
From: fparlamis at mac.com (Parlamis Franklin)
Date: Wed, 20 Sep 2006 10:38:50 -1000
Subject: [Rd] residual '*tmp*' variable after "[<-" error
Message-ID: <736BC96C-5E09-4DD7-AD44-ACB6DB890102@mac.com>

self-sanity check prior to filing a bug report:

attempted replacement that generates an error leaves a '*tmp*'  
variable in the global environment.

test <- 1:10
test[2:4] <- expression(e)
ls()

i've read section 3.4.4 of the "R Language Definition" which  
discusses the mechanism for replacement, and it is not clear to me  
whether this was intended, but i suspect not (to be honest, it's not  
clear to me why the process as described doesn't generate an infinite  
recursion -- perhaps the primitive treats the argument named '*tmp*'  
different than other arguments).  i've also searched the R site, and  
can't find this particular issue discussed.

even though, as below, i am using 2.4.0 alpha, this happens as well  
in 2.3.1.

from my standpoint, desirable behavior would be:

(i) if an error occurs, remove the '*tmp*' variable
(ii) report the error as occurring in the original replacement call  
(rather than the '*tmp*' replacement, which may be confusing to those  
who haven't read the "R Language Definition")

franklin parlamis

 > version
                _
platform       powerpc-apple-darwin8.7.0
arch           powerpc
os             darwin8.7.0
system         powerpc, darwin8.7.0
status         alpha
major          2
minor          4.0
year           2006
month          09
day            06
svn rev        39158
language       R
version.string R version 2.4.0 alpha (2006-09-06 r39158)




[Rd] residual '*tmp*' variable after "[<-" error
Parlamis Franklin