[Rd] Bug in loadNamespace?

peter dalgaard pdalgd at gmail.com
Mon Jun 8 13:20:09 CEST 2015


Looks like this could be locale related. Both of you are using non-US locales, and Sys.setlocale is not changing the last entry (LC_MESSAGES), which is as documented, but maybe somehow related. 

I can reproduce with

Peters-iMac:r-release-branch pd$ LC_ALL=da_DK.UTF-8 BUILD-dist/bin/R --vanilla

R version 3.2.1 beta (2015-06-07 r68485) -- "World-Famous Astronaut"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin13.4.0/x86_64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> Sys.setlocale(locale='en_US.UTF-8')
[1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/da_DK.UTF-8"
> "320" > "300"
[1] NA


On 08 Jun 2015, at 11:10 , Reijo Sund <reijo.sund at helsinki.fi> wrote:

> Hi!
> 
> Yes, I can repeat the problem. Happens at least with Mavericks build of R 3.1.3 (2015-03-09) as well as with Mavericks as well as Snowleopard builds of R 3.2.1 beta (2015-06-07 r68485).
> 
> Best wishes,
> Reijo
> 
> - - -
> 
> R version 3.1.3 (2015-03-09) -- "Smooth Sidewalk"
> Copyright (C) 2015 The R Foundation for Statistical Computing
> Platform: x86_64-apple-darwin13.4.0 (64-bit)
> 
>> Sys.setlocale(locale='en_US.UTF-8')
> [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/fi_FI.UTF-8"
>> "320" > "300"
> [1] NA
>> "320" > "300"
> [1] TRUE
> 
> - - -
> 
> R version 3.2.1 beta (2015-06-07 r68485) -- "World-Famous Astronaut"
> Copyright (C) 2015 The R Foundation for Statistical Computing
> Platform: x86_64-apple-darwin13.4.0 (64-bit)
> 
>> Sys.setlocale(locale='en_US.UTF-8')
> [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/fi_FI.UTF-8"
>> "320" > "300"
> [1] NA
>> "320" > "300"
> [1] TRUE
> 
> - - -
> 
> R version 3.2.1 beta (2015-06-07 r68485) -- "World-Famous Astronaut"
> Copyright (C) 2015 The R Foundation for Statistical Computing
> Platform: x86_64-apple-darwin10.8.0 (64-bit)
> 
>> Sys.setlocale(locale='en_US.UTF-8')
> [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/fi_FI.UTF-8"
>> "320" > "300"
> [1] NA
>> "320" > "300"
> [1] TRUE
> 
> 
> 
> 
>> peter dalgaard <pdalgd at gmail.com> kirjoitti 8.6.2015 kello 11.14:
>> 
>> Not happening for me with
>> 
>> R version 3.2.0 Patched (2015-06-05 r68479) -- "Full of Ingredients"
>> ...
>> 
>>> Sys.setlocale(locale='en_US.UTF-8')
>> [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8"
>>> "320"> "300"
>> [1] TRUE
>>> "320"> "300"
>> [1] TRUE
>>> 
>> 
>> -pd
>> 
>>> On 08 Jun 2015, at 03:42 , Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
>>> 
>>> On 07/06/2015 9:14 PM, Dirk Eddelbuettel wrote:
>>>> 
>>>> On 7 June 2015 at 20:46, Duncan Murdoch wrote:
>>>> | 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?
>>>> 
>>>> I don't see it on Ubuntu with a fresh R-devel:
>>>> 
>>>> edd at max:~/svn/r-devel$ RD
>>>> 
>>>> R Under development (unstable) (2015-06-06 r68485) -- "Unsuffered Consequences"
>>>> Copyright (C) 2015 The R Foundation for Statistical Computing
>>>> Platform: x86_64-unknown-linux-gnu (64-bit)
>>>> 
>>>> R is free software and comes with ABSOLUTELY NO WARRANTY.
>>>> You are welcome to redistribute it under certain conditions.
>>>> Type 'license()' or 'licence()' for distribution details.
>>>> 
>>>> Natural language support but running in an English locale
>>>> 
>>>> R is a collaborative project with many contributors.
>>>> Type 'contributors()' for more information and
>>>> 'citation()' on how to cite R or R packages in publications.
>>>> 
>>>> Type 'demo()' for some demos, 'help()' for on-line help, or
>>>> 'help.start()' for an HTML browser interface to help.
>>>> Type 'q()' to quit R.
>>>> 
>>>> R> Sys.setlocale(locale='en_US.UTF-8');grid::gpar()
>>>> [1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"
>>>> list()
>>>> R> 
>>>> 
>>>> I don't have r-patched handy or I'd try that too.
>>> 
>>> Thanks.  It doesn't actually need loadNamespace, it's string comparisons
>>> that fail.  For example,
>>> 
>>> $ R --vanilla
>>> 
>>> R version 3.2.0 Patched (2015-04-28 r68272) -- "Full of Ingredients"
>>> Copyright (C) 2015 The R Foundation for Statistical Computing
>>> Platform: x86_64-apple-darwin13.4.0 (64-bit)
>>> 
>>> R is free software and comes with ABSOLUTELY NO WARRANTY.
>>> You are welcome to redistribute it under certain conditions.
>>> Type 'license()' or 'licence()' for distribution details.
>>> 
>>> Natural language support but running in an English locale
>>> 
>>> R is a collaborative project with many contributors.
>>> Type 'contributors()' for more information and
>>> 'citation()' on how to cite R or R packages in publications.
>>> 
>>> Type 'demo()' for some demos, 'help()' for on-line help, or
>>> 'help.start()' for an HTML browser interface to help.
>>> Type 'q()' to quit R.
>>> 
>>>> Sys.setlocale(locale='en_US.UTF-8')
>>> [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_CA.UTF-8"
>>>> "320" > "300"
>>> [1] NA
>>>> "320" > "300"
>>> [1] TRUE
>>> 
>>> I don't see it in R-devel on Windows.
>>> 
>>> Duncan Murdoch
>>> 
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 
>> -- 
>> Peter Dalgaard, Professor,
>> Center for Statistics, Copenhagen Business School
>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>> Phone: (+45)38153501
>> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-devel mailing list