[Rd] New behavior when running script in package directory?

Mikael Jagan j@g@nmn2 @end|ng |rom gm@||@com
Wed Jun 21 18:41:02 CEST 2023


Surely this behaviour is just a case of ESS being "too clever", sourcing
*.R files in special way when it detects that a file belongs to a package
(loading dependencies automatically, etc.)?

The function ss() is defined inside of .ess.source(), which is defined here:

https://github.com/emacs-ess/ESS/blob/5c4ae91cefa5c56fd13b204a9a996825af836a67/etc/ESSR/R/.basic.R#L168

If you think that there is a bug, then you could report it there ...

Mikael

On 2023-06-21 6:00 am, r-devel-request using r-project.org wrote:
> When I run a script foo.R containing some trivial code in my home
> directory, via Emacs/ESS, everything works as expected: R
> starts, and a setwd() command to set the working directory is
> run automatically before the code in the script is run.
> 
> But if I copy foo.R to some package/R directory strange
> things happen. When I use Emacs/ESS to run the script
> in its new location, R starts, and setwd() is called to set
> the working directory, but then one or more libraries that the
> package depends on are loaded, even though I am using no
> libraries in foo.R.
> 
> Now consider foo.R that contains the following trivial code:
> secsToRDateTime <- function(secs) {
>    day2sec <- 60*60*24
>    days <- secs/day2sec
> }
> 
> When I try to run this from package/R I get...
> 
> Error in ss(file, echo = visibly, local = local, print.eval = output,  :
>    /tmp/gpstime.R!CuSewT:2:0: unexpected end of input
> 1: secsToRDateTime <- function(secs) {
>     ^
> 
> As I said, there are no problems when the script is run from my
> home directory. This suggests that test scripts can no longer be
> tested in a package's R directory?
> 
> Is this true?
> 
> Thanks,
> Dominick



More information about the R-devel mailing list