emacs-ess / ESS

Emacs Speaks Statistics: ESS
https://ess.r-project.org/
GNU General Public License v3.0
623 stars 162 forks source link

fix loading ESSR in R 2.5 #1298

Open bastistician opened 4 months ago

bastistician commented 4 months ago

Loading ESSR failed in R 2.5.0 (not that I run this regularly, but it was annoying when I wanted to try something in some older R versions).

The first problem was in .ess.ESSR.load() which relied on nzchar from R >= 2.6.0. Avoiding this would still not give me a working prompt because .ess.command(), which is needed by ess-r-initialize, used paste0() which "only" exists since R 2.15.0. The corresponding fixes are trivial and attached here.

NB: This PR does not address the current incompatibility of ESSR with even older versions of R.

So just loading ESSR is still broken in these old R versions. It turns out the header comment in ESSR/R/.basic.R, "Should work on all versions of R", is increasingly hard to fulfil.

mmaechler commented 3 months ago

Sebastian Meyer on Thu, 25 Jul 2024 05:51:45 -0700 writes:

Loading ESSR failed in R 2.5.0 (not that I run this regularly, but it was annoying when I wanted to try something in some older R versions). The first problem was in .ess.ESSR.load() which relied on nzchar from R >= 2.6.0. Avoiding this would still not give me a working prompt because .ess.command(), which is needed by ess-r-initialize, used paste0() which "only" exists since R 2.15.0. The corresponding fixes are trivial and attached here.

NB: This PR does not address the current incompatibility of ESSR with even older versions of R.

  • R < 1.8.0 fails because ::: in .ess.fetchParsedRd() gives syntax errors.
  • R < 2.3.0 fails because emptyenv() for .ess.environment.state does not exist.
  • R < 2.5.0 fails because withVisible() in .ess.command() does not exist.

So just loading ESSR is still broken in these old R versions.

It turns out the header comment in ESSR/R/.basic.R, "Should work on all versions of R", is increasingly hard to fulfil.

Yes, I wrote the above and I had spent dozens of hours of my life to keep ESS working even with R 0.16 (IIRC), but my other ESS core colleagues did not care so much at the time.

I agree it's worth the effort to at least go back older versions than you found working now... and am happy to help.

Martin

> You can view, comment on, or merge this pull request online at:

> https://github.com/emacs-ess/ESS/pull/1298

> -- Commit Summary --

> * fix loading ESSR in R 2.5

> -- File Changes --

> M etc/ESSR/R/.basic.R (8)
> M etc/ESSR/R/.load.R (2)

> -- Patch Links --

> https://github.com/emacs-ess/ESS/pull/1298.patch
> https://github.com/emacs-ess/ESS/pull/1298.diff

> -- 
> Reply to this email directly or view it on GitHub:
> https://github.com/emacs-ess/ESS/pull/1298
> You are receiving this because you are subscribed to this thread.

> Message ID: ***@***.***&gt;

> [[alternative HTML version deleted]]