Vitalie Spinu
2011-Nov-19 11:28 UTC
[Rd] Problems with new srcref warnings in R 2.14 (development)
Dear R developers, Print method for function now tries to open the source file associated with srcref of the function. It outputs only the warning, if file cannot be open, and forgets to print the function definition. Example: eval(parse(text = "tf <- function(a){ b <- a^4 b }", srcfile = srcfile("xxx at 17")))> tf<srcref: file "xxx at 17" chars 1:7 to 4:1> Warning message: In file(srcfile$filename, open = "rt", encoding = encoding) : cannot open file 'xxx at 17': No such file or directory First, the function definition is not printed and I assume it's a bug. Second, the warning might not be appropriate. For example ESS with the latest ess-tracebug (http://code.google.com/p/ess-tracebug/) inserts srcref into the function on the fly. Srcfile is of the form file_name at index where index is used to find the function definition afterwards. This is useful for two reasons: -- the visual debugger knows about the reference and jumps through the function even if the file was not sourced -- any typos/errors in the code are reported by R with the source reference, so that the editor can automatically jump to the error location. Can please an option to suppress the warnings or even better suppress the srcfile validity checks be implemented? Thanks, Vitalie. sessionInfo() R Under development (unstable) (2011-11-15 r57665) Platform: i686-pc-linux-gnu (32-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base>
Seemingly Similar Threads
- Injecting source reference from external editors (emacs).
- Why is srcref of length 6 and not 4 ?
- Proper way to drop 'srcref' from an expression created via substitute(function() ...)?
- file descriptor leak in getSrcLines in R 2.10.0 svn 48590
- sys.source() does not provide the parsing info to eval()