[ESS] Emacs finding "R" on Windows {was "Release of ESS 5.3.5"}
James W. MacDonald
jmacdon at med.umich.edu
Fri Aug 24 16:07:31 CEST 2007
Phillip Lord wrote:
>>>>>> "MM" == Martin Maechler <maechler at stat.math.ethz.ch> writes:
>
> PL> Ah. I didn't know that windows internationalised that.
>
> MM> {{ AFAIK they've even internationalized the function names in
> MM> Excel/Vbasic ... the Horror-Land ... }}
>
> Eech.
>
> PL> For me (getenv "ProgramFiles") returns the right location though. So
>
> PL> (directory-files (concat (getenv "ProgramFiles") "\\R"))
>
>
> PL> Failing that
>
> PL> (executable-find "R.exe")
>
> PL> which is...
>
> PL> "c:/Program Files/R/R-2.5.1/bin/R.exe"
>
> PL> will work iff R is in the path.
>
> MM> (which it is not, I think, after a default installation of R on windows)
>
> Sure. The ESS documentation says to put it in the path I think. Personally, I
> would prefer to not have to do this; system path fiddling in a pain in the ass
> and has to be done for each machine.
>
>
> PL> After that,
>
> PL> HKEY_LOCAL_MACHINE\Software\R-core\R\Current Version
>
> PL> gives the current version
>
>
> PL> HKEY_LOCAL_MACHINE\Software\R-core\R\[version]\InstallPath
>
> PL> gives it's location. w32-regdat gives access to these values, although
> PL> this also requires an external executable.
>
> MM> Hmm, on the GNU emacs 22.1 (on Windows Server 2003) which I've got from
> MM> Vincent's, I don't seem to get anything from
> MM> w32-regdat (variable)
> MM> or w32-regdat (function).
>
> MM> and the "emacs-official" w32-fns.el file full of Windows (NT) support
> MM> functions does not contain the string "regis" which would mean it has no
> MM> official e-lisp support for accessing the registry ?
>
>
> Ah, sorry for being opaque. w32-regdat is part of EmacsW32 which is a nicely
> prepackaged Emacs for windows. They've written some lisp to make the whole
> process work nicely.
>
> http://www.ourcomments.org/Emacs/EmacsW32Util.html
>
> I don't know how widely used this is among the ESS or Emacs on Windows
> community in general.
>
>
> PL> If I get the time, I'll try and write some lisp to get this to work.
>
> MM> That would be quite useful for the community, thank you in advance!
>
> Well, just as a start, this returns the latest R version if you are using
> EmacsW32 and have not told R not to modify the registry. It would be
> interesting to run a straw poll; if people eval-region and see how many get
> the correct answer.
>
> (defun ess-find-latest-r ()
> (or
> (and
> ;; is w32 available.
> (require 'w32-regdat nil t)
> ;; yes, so use this to find the latest version
> (ess-find-exists-p
> (concat
> (car
> (w32-reg-iface-read-value
> (concat
> "HKEY_LOCAL_MACHINE\\Software\\R-core\\R\\"
> (car
> (w32-reg-iface-read-value
> "HKEY_LOCAL_MACHINE\\Software\\R-core\\R\\Current Version") )
> "\\InstallPath")))
> "\\bin\\R.exe")))))
>
> (defun ess-find-exists-p(file)
> (and (file-exists-p file)
> (file-readable-p file)
> file))
>
>
> (message "Latest R version %s" (ess-find-latest-r))
I get
Latest R version nil
on
GNU Emacs 22.1.50.1 (i386-mingw-nt5.1.2600) of 2007-07-07 on NEUTRINO
this is the emacs/auxtex bundle made available here
http://www.gnu.org/software/auctex/download-for-windows.html
I have R-2.5.1 and R-2.6.0dev both installed in the root directory
(e.g., C:/R-2.5.1)
Best,
Jim
>
> Phil
>
> ______________________________________________
> ESS-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help
--
James W. MacDonald, M.S.
Biostatistician
Affymetrix and cDNA Microarray Core
University of Michigan Cancer Center
1500 E. Medical Center Drive
7410 CCGC
Ann Arbor MI 48109
734-647-5623
More information about the ESS-help
mailing list