[Bioc-devel] Sweave changes (keep.source = TRUE or FALSE?)

Friedrich Leisch friedrich.leisch at stat.uni-muenchen.de
Thu Dec 7 12:00:02 CET 2006

>>>>> On Wed, 06 Dec 2006 12:37:22 -0600,
>>>>> Kevin R Coombes (KRC) wrote:

  > Hi,
  > I don't really think anyone believes that the parse&deparse behavior was 
  > exactly a "feature". Instead, I think the primary issue is one of 
  > backwards compatibility.

  > You are proposing to change the behavior of Sweave in a manner that will 
  > cause old code to break. Here "break" has two meanings. Some automatic 
  > development tools will stop working on existing valid code.  In 
  > addition, existing valid code will produce results that differ from what 
  > they produced previously.

  > To deal with this, you are going to add an option that will allow users 
  > to get the old behavior.  However, you propose to set the default value 
  > of the option to require users to go back and modify all their old code 
  > in order to prevent things from breaking. It seems obvious to me that 
  > the default behavior should be the one that does not break old code or 
  > require the editing of old code in order to get the old behavior.

  > The reason I use Sweave (for virtually every analysis I do any more) is 
  > that I can guarantee that when I can go back to the code six months from 
  > now, I can regenerate the analysis and I can regenerate the 
  > documentation, and I know that I will get the same results. Changing the 
  > default behavior of Sweave violates that guarantee, since the 
  > documentation will not be identical to what it was before. Personally, I 
  > am willing to pay the cost with NEW analyses to invoke the new behavior 
  > explicitly (which I do agree is the preferred behavior) because I think 
  > the goal of backwards compatibility is more important.

  > In other words, I disagree with your characterization of the 
  > parse&deparse behavior as a "bug".  It did not cause incorrect results 
  > in the documentation or the code, and everyone using Sweave knew about 
  > the behavior.

Give me a break, that is simply nonsense. Sweave guarantees that you
can reproduce your results USING THE VERSION OF R THAT WAS USED FOR
THE ORIGINAL ANALYSIS, and that will still be true, because in R 2.4.x
there is no option keep.source.  Running a new version of R means
dozens of R functions will have changed, plotting functions may yield
figures that look different etc. etc. ... what you propose is in
essence that we are not allowed to change the default behaviour of ANY
R FUNCTION. Is that what you are proposing?

And note that the changes I propose will not change any numerical
results or figures, nor will I "break code", the only thing that
changes is that the formatting of input lines looks different (and in
most cases better, that's why we want to do it).

It's not like I am changing Sweave behavior every other week, actually
it is the first one at all. I have thought a lot whether I want to do
it or not, and I really think it is a good idea. What is great about R
is that it is allowed to change (if changes are transparent and
announced early enough). There is a certain operation system with a
market share of about 90% where backwards compatibility is more
important than development or security, and I don'tthink that should
be our role model.


More information about the Bioc-devel mailing list