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 TAS ph (+61) 3 6232 5118 fax (+61) 3 6232 5012 mob (+61) 438 315 623 > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of John Chambers > Sent: Friday, 30 March 2007 10:34 AM > To: Douglas Bates > Cc: "José Luis Aznarte M."; r-devel@r-project.org > Subject: Re: [Rd] Developer work cycle > > Douglas Bates wrote: > > On 3/26/07, "José Luis Aznarte M." <[EMAIL PROTECTED]> 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@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > > > [[alternative HTML version deleted]] > > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel