defining additional inferior programs

Martin Maechler maechler at
Sat Oct 12 18:35:49 CEST 2002

>>>>> "MatW" == Wiener, Matthew <matthew_wiener at>
>>>>>     on Wed, 09 Oct 2002 16:39:49 -0400 writes:

    MatW> Hi, all.  I've compiled R-1.6.0, but wanted to be able
    MatW> to work in both R's for a little while before
    MatW> switching over entirely. Not sure why, but there you
    MatW> are.  Consequently, I wanted to define a new inferior
    MatW> program.

    MatW> I tried (setq-default set-inferior-R6-program name
    MatW> blahblahblah)

    MatW> It doesn't work.  However, if I reset the inferior S+3
    MatW> program name to my R-1.6.0, it works.

    MatW> Clearly, the list of possible dialects is restricted.
    MatW> It looks like this is handled in ess-cust.el.  I think
    MatW> I've found the blocks of code I'd need to change to
    MatW> make this work -- it's basically just adding the
    MatW> defcustom inferior-R6-program-name statement, plus
    MatW> maybe adding it in the dialect list -- but wanted to
    MatW> make sure I wouldn't be messing anything up.

    MatW> Obviously using S+3 to be R-1.6.0 is a perfectly good
    MatW> workaround.  But perhaps an Rold could be added?

We use the following (hack) in our system wide  default.el file :

    (defun S+3.4 ()   "Call the 1996 release, Splus 3.4, from within emacs."
      (interactive) (let ((inferior-S+3-program-name "Splus3.4")) (S+3)))

    (defun R-1.0 (&optional start-args)
      "Call R-1.0, i.e., R version 1.0.1 (2000-04-14) using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.0"))(R start-args)))
    (defun R-1.1 (&optional start-args)
      "Call R-1.1, i.e., R version 1.1.1 (2000-08-15) using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.1"))(R start-args)))
    (defun R-1.2 (&optional start-args)
      "Call R-1.2, i.e., R version 1.2.3 (2001-04-26) using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.2"))(R start-args)))
    (defun R-1.3 (&optional start-args)
      "Call R-1.3, i.e., R version 1.3.1 (2001-08-31) using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.3"))(R start-args)))
    (defun R-1.4 (&optional start-args)
      "Call R-1.4, i.e., R version 1.4.1 (2002-01-30) using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.4"))(R start-args)))
    (defun R-1.5 (&optional start-args)
      "Call R-1.5, i.e., R version 1.5.1 (2002-06-17) using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.5"))(R start-args)))
    (defun R-1.6 (&optional start-args)
      "Call R-1.6, i.e., R version 1.6.x {x := newest released} using ESS."
      (interactive "P")(let ((inferior-R-program-name "R-1.6"))(R start-args)))

where I use symbolic links to define (and update) the "R-1.6"
(etc) command.

    MatW> Thanks for any help.

    MatW> (Also, if I'm crazy not just to switch to R-1.6.0,
    MatW> please say so.  I'm not sure why I feel more cautious
    MatW> this time around.)

no reason to feel more cautious (to the contrary: Never have we
had such a careful beta testing period).  
But I also do keep older versions around.


Martin Maechler <maechler at>
Seminar fuer Statistik, ETH-Zentrum  LEO C16	Leonhardstr. 27
ETH (Federal Inst. Technology)	8092 Zurich	SWITZERLAND
phone: x-41-1-632-3408		fax: ...-1228			<><
ess-help mailing list -- To (un)subscribe, send
subscribe	or	unsubscribe
(in the "body", not the subject !)  To: ess-help-request at

More information about the ESS-help mailing list