[ESS] ESS "taking over" {[Rd] New behavior when running script in package directory?}
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu Jun 22 15:21:30 CEST 2023
>>>>> Mikael Jagan
>>>>> on Wed, 21 Jun 2023 12:41:02 -0400 writes:
> 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
Yes. Unfortunately, there are quite a few other of such
instances, which are much time consuming to me (notably as
ESS/polymode then also again and again tries to gather info
about all of the 20'000+ packages in my .libPaths() .. which
slows down even opening an existing *.R file sometimes !!)
where ESS "takes over" seemlingly almost all of Emacs, including
notably often times my *shell* buffer in emacs ..
This should *REALLY* be switched to ESS-help (and
possibly/ideally github issues for ESS) now,
and so I will CC this to ESS-help only -- no longer to R-devel
(to which I'll post a pointer to this message on ESS-help).
Martin
> 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
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the ESS-help
mailing list