Hi Martin,

Thanks for your confirmation on this.

I normally do not use R CMD Sweave, as I too run under ESS in normal day to day 
operations. This finding was a quirk of having a particular Rnw document that I 
occasionally run using R CMD Sweave and I had done so over the weekend, 
realizing this behavior.

Thanks again.

Regards,

Marc


On Apr 14, 2014, at 7:28 AM, Martin Maechler <maech...@stat.math.ethz.ch> wrote:

>>>>>> Marc Schwartz <marc_schwa...@me.com>
>>>>>>    on Sun, 13 Apr 2014 10:22:55 -0500 writes:
> 
> [on the R-SIG-Mac  mailing list] :      
> 
>> Hi all,
>> With R version 3.1.0 on OSX, using either the Snow Leopard or the Mavericks 
>> binary installation on a Mac with fully updated Mavericks, there has been a 
>> change in behavior since 3.0.3.
> 
> I've just written to R-core about this:
> 
>    R CMD Sweave
> 
> has *serious* problems also in the very simple case when it
> should produce figures: They are not available after the
> completion of R CMD Sweave,
> confirming your  'deletes non tex files created upon batch mode exit'
> 
> So this is not related to OSX only, but also a big problem 
> at least on other *nix descendent platforms, such as Linux.
> 
> In short, failure (no graphic produce in the example below) by
> 
>   R CMD Sweave foo.Rnw
> 
> but all is fine with using Sweave(), as you Marc, noted, and hence with  
> 
>   Rscript -e 'Sweave("foo.Rnw")'
> 
> ... and to answer your question:  
> No this was not intended and is probably one of the bigger / 
> most embarrassing bugs in a newly released version of R
> in my view: 
> 
> Basically  'R CMD Sweave' is partly broken in R 3.1.0.
> Yes, this should never have happened.
> 
> I had to partially revert the R 3.1.0 installation here (our
> statistics dept), by making R 3.0.3 the default 'R'
> for now, as we are relying on 'R CMD Sweave ..' in many places.
> 
> Personally I've never noticed the problem, as I seem to always
> Sweave from ESS (Emacs speaks statistics) which calls  Sweave()
> in R, and that works fine, also in  R 3.1.0, as you've already
> noted 
> 
> Martin Maechler, ETH Zurich
> 
> %------------------------------------------------------------
> \documentclass[12pt]{article}
> \usepackage{Sweave}
> \begin{document}  Just a simple graphic 
> 
> <<qqnorm, fig=TRUE>>= 
> qqnorm(rnorm(20))
> @ 
> 
> and that's all, folks!
> \end{document}
> %------------------------------------------------------------
> 
>> I have a master .Rnw file which runs a series of outputs from multiple R 
>> code files, each called in BATCH mode using system() from within the master 
>> .Rnw file. The output of the R code files go to separate text files in order 
>> to catch some of the function call output that would not otherwise be 
>> included in the resultant .tex file due to output redirection.
> 
>> Those text files are then included in the resultant .tex file using, for 
>> example:
> 
>> \lstinputlisting[caption={}]{test.out}
> 
>> directives which are included in the .Rnw source file.
> 
>> A simple example to replicate the observed behaviors.
> 
>> The test.Rnw file content:
> 
>> %% R CMD Sweave test.Rnw
>> <<results=tex,echo=false>>=
>> system("R CMD BATCH test.R test.out")
>> @ 
> 
> 
>> The test.R file content:
> 
>> options(echo = FALSE)
>> options(useFancyQuotes = FALSE)
>> installed.packages()
> 
> 
>> On version 3.0.3, the file test.out is created, along with test.tex. 
>> test.out contains the output of installed.packages(). I did not include the 
>> aforementioned listing directive in test.Rnw here for simplicity.
> 
>> On version 3.1.0, the file test.out is created, but when the R CMD Sweave 
>> command exits and returns to the CLI in the console, test.out is deleted, 
>> presumably as part of a post R batch session clean up process. The file 
>> test.tex is retained.
> 
>> I uninstalled 3.1.0 and reinstalled 3.0.3 and observed the prior behavior. I 
>> then tried clean installs of both the Snow Leopard and Mavericks 3.1.0 
>> binaries, with the new behavior observed in both cases.
> 
>> In reading the NEWS file for 3.1.0, there are multiple references to Sweave, 
>> but there is nothing explicit about this new behavior. 
> 
>> I should note that when the .Rnw file is run from within an R 3.1.0 
>> interactive session using:
> 
>> Sweave("test.Rnw")
> 
>> the test.out file is created and not deleted upon the function exit, or when 
>> exiting the R session back to the console. 
> 
>> Thus, this new behavior seems to be limited to running Sweave from the CLI 
>> using R CMD. It is not clear to me if this new behavior is by design or 
>> perhaps an unintended consequence of changes elsewhere in Sweave processing 
>> or in the handling of R in BATCH mode.
> 
>> When watching the folder where the file output activity takes place, I note 
>> that a file .build.timestamp is created and then deleted, which leads me to 
>> believe that the new functions fileSnapshot() and changedFiles() are being 
>> used in the course of processing R in BATCH mode. If that is correct and 
>> there is a clean up step that is occurring upon BATCH mode exit, which 
>> deletes all files and folders other than .tex files, is it possible that 
>> this process is being overly aggressive? Or if not, is there a way to not 
>> have these files deleted or have a protected folder where these files can be 
>> retained?
> 
>> Thanks for any insights.
> 
>> Regards,
> 
>> Marc Schwartz

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to