[Rd] Developer work cycle

Tony Plate tplate at acm.org
Mon Apr 2 19:34:02 CEST 2007

I tried to summarize some of the very useful tips in this discussion in 
the R Wiki at 

If you feel I used your contribution inappropriately, please let me know 
and I'll remove it.

Anyone, please feel free to improve it!

-- Tony Plate

Mark.Bravington at csiro.au wrote:
> Couple of quick points:
> FYI1: the 'mtrace' function in the 'debug' package does let you trace hidden S3 methods (though it lacks the edit= argument).
> FYI2: In my own alpha-version of 'mvbutils', I am able to do live edits of code in (selected) installed packages, including adding & deleting functions from the namespace, and also to do a quick patch of the installed library from inside R (rather than requiring re-installation) so that the modified version is loaded next time I use 'library'. I only need to re-build the package with rcmd when I want to update the helpfiles. My plan is to release the new 'mvbutils' later this year-- time permitting.
> Mark
> Mark Bravington
> CSIRO Mathematical & Information Sciences
> Marine Laboratory
> Castray Esplanade
> Hobart 7001
> ph (+61) 3 6232 5118
> fax (+61) 3 6232 5012
> mob (+61) 438 315 623
>> -----Original Message-----
>> From: r-devel-bounces at r-project.org 
>> [mailto:r-devel-bounces at r-project.org] On Behalf Of John Chambers
>> Sent: Friday, 30 March 2007 10:34 AM
>> To: Douglas Bates
>> Cc: "José Luis Aznarte M."; r-devel at r-project.org
>> Subject: Re: [Rd] Developer work cycle
>> Douglas Bates wrote:
>>> On 3/26/07, "José Luis Aznarte M." <jlaznarte at decsai.ugr.es> wrote:
>>>>     Hi! I've been browsing through the last months' archive and I 
>>>> can't find an answer to my question, so here it is (let's 
>> hope it's 
>>>> not too
>>>> obvious):
>>>>     I'm working on extensions of an R library, and I would be very 
>>>> surprised if everyone developing R packages is doing the 
>> following, as I do:
>>>>         1.- Write down a modification of an R file
>>>>         2.- Exit the current R session
>>>>         3.- Install the package as root (sudo R CMD INSTALL...)
>>>>         4.- Launch a new R session
>>>>         5.- Test the change, if it does not work, go back 
>> to 1 or debug.
>>>>         6.- Finish.
>>>>     Is this the proper (but quite awkward) way to proceed 
>> or there is 
>>>> an alternative to skip steps 2 to 4? I'm using emacs with 
>> ESS under linux.
>>> John Chambers has provided an alternative approach of using
>>> trace(fname, edit = TRUE)
>>> where fname is the name of your function.  (Make sure that 
>> the server 
>>> for emacsclient has been started in your emacs session with M-x
>>> server-start.)  This opens an emacs buffer containing the 
>> source for 
>>> the function which you can then edit.  After writing the file and 
>>> closing the client (C-x #) your ESS session has the new definition 
>>> installed in the package's namespace.
>>> This will work even for objects hidden in the namespace.  
>> The argument 
>>> "signature" allows you to edit S4 methods on the fly like 
>> this.  In my 
>>> experience you cannot edit registered S3 methods like this 
>> but it may 
>>> be that I am just not using trace correctly.
>> Indeed, trace() does not currently work for registered S3 
>> methods, with or without the edit=TRUE argument.
>> There is a fix, just committed to r-devel, which should be in 
>> the final 2.5.0.
>>> Of course you must copy the modified version of the source code to 
>>> your package sources when you are done.
>>> As others have indicated, it is a good practice to install 
>> development 
>>> versions of packages in a private library so you do not need to use 
>>> sudo or worry about messing up system-wide directories.
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 	[[alternative HTML version deleted]]
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

More information about the R-devel mailing list