Martin, On Dec 19, 2011, at 6:39 AM, Martin Maechler wrote:
>>>>>> Barry Rowlingson <b.rowling...@lancaster.ac.uk> >>>>>> on Sun, 18 Dec 2011 01:32:52 +0000 writes: > >> Scenario: Here I am working away in R. I've got results >> that prove global warming is anthropogenic and also the >> solution for producing limitless carbon-neutral energy >> from nuclear fusion. Its been a good day. > >> So, I want to save my work. I don't want to overwrite my >> current .RData, so I save it to another file: > >> save(file="prize.RData") # just need to email this to the >> Nobel committee q() Save workspace image? [y/n/c]: - "no" >> I don't want to save the workspace image, I just saved >> everything to "prize.RData". But gee, it did seem to do >> that quite quickly considering the volume of evidential >> data in my work. My unix shell prompt returns. > >> Uh oh. See what I did there? I typed 'save' when I meant >> 'save.image'. What does that give me? > >> A 42 byte, empty, latest.RData, and because there was no >> warning or error I quit without saving it >> again. Oops. Massive Data Loss. > >> Is there any reason why save(file="file.RData") couldn't >> warn or error if you try and save nothing? There's no >> obvious check in the R code for save. > >> Barry > >> PS the above scenario is fictional. > really? ;-) > > well, after *not* save()ing all your findings, it wouldn't have > been such a good day, would it? > > well, in spite of that. > I agree that save() should warn or stop in that case. > I have now committed a version -- to R-devel only -- > which stop()s if 'pretest=TRUE' and uses warning() otherwise, I don't think I like that - why should it warn/stop in any case even when the use is absolutely legal? I think this is the wrong approach - the whole idea was to warn on unintended *interactive* use - breaking existing code in the process is IMHO not necessary. I don't think save(list=x, file=y) should fail even if x is empty - that makes it fail for completely legal code. What Barry was worried about was the interactive case of save(file=x) which should IMHO warn (there is a precedent for stopping as well - see tar - so I won't object). I really see no reason for adding the pretest flag - it makes no sense since is warns anyway so it doesn't help at all. I would propose changing *only* the behavior of save(file=x) (to warn or stop - personally I prefer former) and not anything else. > e.g., in the case of save.image() when there's nothing to save. > Why should save.image() warn? Again, it causes unnecessary trouble for automated saving... empty workspace is probably even more common that using save(file=foo) ... If save() was fixed as above, that would be a non-issue. > Thank you, Barry. for the suggestion! Well, you did not follow his suggestion, though ;) Cheers, Simon > Martin > >> When did I last have a good day? > > (I wish you more of those..) > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel