On Thu, May 12, 2011 at 10:55 AM, Henrik Bengtsson <h...@biostat.ucsf.edu> wrote: > This might have been discussed before, but below is a > "not-so-unlikely" use case where the user follows normal procedures, > updates R to a major release version, and then R crashes: > > 1. Use runs R stable (e.g. v2.13.0). > 2. User installs a package with a namespace, e.g. > install.packages("fortunes"). > 3. User uses the package and one of the package's objects are assigned > to the global env, e.g. foo <- fortune. > 4. The user quits R and stores the session data, e.g. q("yes"). The > session is stored in users home directory. > 5. User update to new major release of R (e.g. 2.14.0). > 6. User starts R. R crashes with "Fatal error: unable to restore > saved object in .RData" because 'fortunes' is not installed for this > new version of R. There is also an error message before that > reporting "Error in loadNamespace(name) : there is no package called > 'fortunes'". > > This can also be reproduced using a single R version as follows: > > 1. Start R and do: > install.packages("fortunes") > library("fortunes") > foo <- fortune > remove.packages("fortunes") > q("yes") > 2. Restart R. R crashes. > > For a GUI-only user this is complicated, because although the users > sees the informative error message that "Error in loadNamespace(name) > : there is no package called 'fortunes'", s/he cannot get to the point > where it is possible to install that missing package. The key for the > user is to understand to remove the .RData. In order to do this, s/he > has to locate that file first. > > To simplify this, a few alternatives exists: > > 1. R reports the full path to the problematic .RData file. > 2. R renames the problematic .RData file to > erroneous_20110512-123404UTC.RData and reports the new full pathname. > > In both cases there could be the option for R to either exit, or > ignore the problematic .RData file and give the user access to the > prompt. One could also imaging a fancy recovery feature where R > detects "erroneous" .RData files and asks the user if s/he wish to try > to load them (maybe the packages has been installed since).
On Windows, the easiest way to give a GUI-only user access to the R prompt is to also install an "R (vanilla mode)" shortcut/icon on the Startup menu and Desktop (with target "...\Rgui.exe" --vanilla) in addition to the default one. /Henrik > > I'm sure there are complications to implement the above, because > .RData is loaded during startup, but that's my $.02 to this problem > > /Henrik > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel