Hello,
Should active binding appear as such in ls.str.
> makeActiveBinding( "xx", function(arg){ Sys.sleep(10) }, .GlobalEnv )
> ls.str() # takes 10 seconds
xx : NULL
What we see here is the result of the "setter" of the binding.
I'm attaching a patch that prints this instead:
> ls.str()
xx : <active binding>
Although a better behaviour would be to show the binding function.
Romain
--
Romain Francois
Independent R Consultant
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
Index: src/library/utils/R/str.R
===================================================================
--- src/library/utils/R/str.R (revision 48872)
+++ src/library/utils/R/str.R (working copy)
@@ -544,14 +544,18 @@
##__ str(get(nam, envir = E, mode = M),
##__ max.level = max.level, give.attr = give.attr, ...)
- o <- tryCatch(get(nam, envir = E, mode = M), error = function(e)e)
- if(inherits(o, "error")) {
- if(length(grep("missing|not found", o$message)))
- cat("<missing>\n")
- else stop(o$message)
+ if( bindingIsActive( nam, E) ){
+ cat( "<active binding>\n" )
+ } else{
+ o <- tryCatch(get(nam, envir = E, mode = M), error =
function(e)e)
+ if(inherits(o, "error")) {
+ if(length(grep("missing|not found", o$message)))
+ cat("<missing>\n")
+ else stop(o$message)
+ }
+ else
+ do.call(str, c(list(o), strargs))
+ }
}
- else
- do.call(str, c(list(o), strargs))
- }
invisible(x)
}
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel