There is an unannounced and non-backwards-compatible change to the behaviour of 'get' in R2.8.0. 'get'ting a missing value now causes an error, whereas hitherto it's just returned a "missing" object. For example, in R2.8.0 this happens:
test> getto <- function( x) get( 'x', sys.frame(1)) test> getto() Error in get("x", sys.frame(1)) : argument "x" is missing, with no default whereas in R2.7.1 this happens: test> getto() test> i.e. a "missing" object. While I can see some reason to the change, the error always would have gotten triggered eventually if it actually mattered-- and the new behaviour is inconsistent with other extraction functions: test> getto2 <- function(x) sys.frame(1)$x test> getto2() test> and the same goes for '[['. 'mget' also returns a missing object, rather than tripping an error. The new 'get' breaks code in packages 'mvbutils' and 'debug'. At least 54 separate functions in those packages use 'get', so there'd be a fair bit of work in checking & changing all these to 'mget'! (Not to mention the entire rest of my code body...) Is it possible to 'get' the old behaviour back? Mark Bravington CSIRO Mathematics & Information Science CSIRO Marine Lab Hobart Australia ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel