[Rd] Bug in loadNamespace?

Duncan Murdoch murdoch.duncan at gmail.com
Mon Jun 8 02:46:00 CEST 2015


I am seeing very strange behaviour in R 3.2.0 patched (r68272) and a new
build of R-devel.  The sessioninfo() from the former is below.

Here's what I see:  If I set the locale, and trigger a namespace load, a
version comparison gives NA, and I get an error.  For example, in a new
session started with R --vanilla from the terminal:

> Sys.setlocale(locale='en_US.UTF-8');grid::gpar()
[1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_CA.UTF-8"
Error in if (R_version_built_under < "3.0.0") stop(gettextf("package %s
was built before R 3.0.0: please re-install it",  :
  missing value where TRUE/FALSE needed

I've tried debugging this, and the bad lines are these, in loadNamespace:

R_version_built_under <- as.numeric_version(built$R)
if (R_version_built_under < "3.0.0") stop(gettextf("package %s was built
before R 3.0.0: please re-install it",
    sQuote(basename(pkgpath))), call. = FALSE, domain = NA)

These are in the src/library/base/R/namespace.R file, around line 379.

If I stop it before the if and evaluate R_version_built_under, it looks
fine.  If I stop it there and evaluate

R_version_built_under < "3.0.0"

I get NA.  If I evaluate it again without changing anything, I get FALSE.

Does anyone else see this?  Any ideas on what might be the cause?


> sessionInfo()
R version 3.2.0 Patched (2015-04-28 r68272)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.9.5 (Mavericks)

locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base


Duncan Murdoch



More information about the R-devel mailing list