[R-pkg-devel] Errors in make check in Windows 10 with OpenBLAS

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Fri Mar 20 12:01:39 CET 2020


>>>>> Erin Hodgess    on Thu, 19 Mar 2020 22:44:39 -0600 writes:

     > Hi Tomas and others:
     > Here is the session Info.  I also used the str example both without and
     > with changing the locale.

     > sI <- sessionInfo()
    >> str(sI)
     > List of 10
     > $ R.version :List of 14
     > ..$ platform      : chr "x86_64-w64-mingw32"
     > ..$ arch          : chr "x86_64"
     > ..$ os            : chr "mingw32"
     > ..$ system        : chr "x86_64, mingw32"
     > ..$ status        : chr ""
     > ..$ major         : chr "3"
     > ..$ minor         : chr "6.3"
     > ..$ year          : chr "2020"
     > ..$ month         : chr "02"
     > ..$ day           : chr "29"
     > ..$ svn rev       : chr "77875"
     > ..$ language      : chr "R"
     > ..$ version.string: chr "R version 3.6.3 (2020-02-29)"
     > ..$ nickname      : chr "Holding the Windsock"
     > $ platform  : chr "x86_64-w64-mingw32/x64 (64-bit)"
     > $ locale    : chr "LC_COLLATE=English_United
     > States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United
     > States.125"| __truncated__
     > $ running   : chr "Windows 10 x64 (build 18362)"
     > $ RNGkind   : chr [1:3] "Mersenne-Twister" "Inversion" "Rejection"
     > $ basePkgs  : chr [1:7] "stats" "graphics" "grDevices" "utils" ...
     > $ loadedOnly:List of 1
     > ..$ compiler:List of 9
     > .. ..$ Package    : chr "compiler"
     > .. ..$ Version    : chr "3.6.3"
     > .. ..$ Priority   : chr "base"
     > .. ..$ Title      : chr "The R Compiler Package"
     > .. ..$ Author     : chr "Luke Tierney <luke-tierney using uiowa.edu>"
     > .. ..$ Maintainer : chr "R Core Team <R-core using r-project.org>"
     > .. ..$ Description: chr "Byte code compiler for R."
     > .. ..$ License    : chr "Part of R 3.6.3"
     > .. ..$ Built      : chr "R 3.6.3; ; 2020-03-20 04:29:00 UTC; windows"
     > .. ..- attr(*, "class")= chr "packageDescription"
     > .. ..- attr(*, "file")= chr
     > "c:/newtimeR/R-3.6.3/library/compiler/Meta/package.rds"
     > $ matprod   : chr "default"
     > $ BLAS      : chr ""
     > $ LAPACK    : chr ""
     > - attr(*, "class")= chr "sessionInfo"


     > Running the str example WITHOUT changing the locale:
    >> ## Truncation behavior (<-> correct width measurement) for "long"
     > non-ASCII:
    >> idx <- c(65313:65338, 65345:65350)
    >> fwch <- intToUtf8(idx) # full width character string: each has width 2
    >> ch <- strtrim(paste(LETTERS, collapse="._"), 64)
    >> (ncc <- c(c.ch = nchar(ch),   w.ch = nchar(ch,   "w"),
     > +           c.fw = nchar(fwch), w.fw = nchar(fwch, "w")))
     > c.ch w.ch c.fw w.fw
     > 64   64   32   64
    >> stopifnot(unname(ncc) == c(64,64, 32, 64))
    >> ## nchar.max: 1st line needs an increase of  2  in order to see  1  (in
     > UTF-$
    >> invisible(lapply(60:66, function(N) str(fwch, nchar.max = N)))
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+"| __truncated__
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+F"| __truncated__
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+FF"| __truncated__
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+FF2"| __truncated__
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+FF26"| __truncated__
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+FF26>"| __truncated__
     > chr "<U+FF21><U+FF22><U+FF23><U+FF24><U+FF25><U+FF26><"| __truncated__
    >> invisible(lapply(60:66, function(N) str( ch , nchar.max = N))) # "1 is 1"
     > he$
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O."| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P."| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P._"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P._Q._R._S._T._U._V"
    >> 

     > Running the str example WITH changing the locale:

     > oloc <- Sys.getlocale("LC_CTYPE")
    >> mbyte.lc <- if(.Platform$OS.type == "windows")
     > +  "English_United States.28605" else "en_GB.UTF-8"
    >> try(Sys.setlocale("LC_CTYPE", mbyte.lc))
     > [1] "English_United States.28605"
    >> ## Truncation behavior (<-> correct width measurement) for "long"
     > non-ASCII:
    >> idx <- c(65313:65338, 65345:65350)
    >> fwch <- intToUtf8(idx) # full width character string: each has width 2
    >> ch <- strtrim(paste(LETTERS, collapse="._"), 64)
    >> (ncc <- c(c.ch = nchar(ch),   w.ch = nchar(ch,   "w"),
     > +           c.fw = nchar(fwch), w.fw = nchar(fwch, "w")))
     > c.ch w.ch c.fw w.fw
     > 64   64   32   64
    >> stopifnot(unname(ncc) == c(64,64, 32, 64))
    >> ## nchar.max: 1st line needs an increase of  2  in order to see  1  (in
     > UTF-$
    >> invisible(lapply(60:66, function(N) str(fwch, nchar.max = N)))
     > Error in strtrim(x.lrg, nchar.max - nc) :
     > unsupported conversion from 'UTF-8' in codepage 28605
    >> invisible(lapply(60:66, function(N) str( ch , nchar.max = N))) # "1 is 1"
     > he$
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O."| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P."| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P._"| __truncated__
     > chr "A._B._C._D._E._F._G._H._I._J._K._L._M._N._O._P._Q._R._S._T._U._V"

     > This is pretty strange.

It is strange indeed  that  strtrim() fails in this situation.

>From what you wrote previously, this only happens when you link
with OpenBLAS but not when you use R's own BLAS.
Are you sure that that was the only difference, but not rather
the difference in the locales you used in your two versions of R
on Windows?

Martin

     > Thanks for any help.

     > Sincerely,
     > Erin

     > Erin Hodgess, PhD
     > mailto: erinm.hodgess using gmail.com


     > On Thu, Mar 19, 2020 at 2:29 AM Tomas Kalibera <tomas.kalibera using gmail.com>
     > wrote:

    >> Hi Erin,
    >> 
    >> this comes from examples in ?str. Could you please try to find a minimal
    >> example to reproduce on your system based on that? I would look for
    >> "line needs" in ?str and experiment with reducing the example there
    >> while still getting the error. Once it is minimal, could you please try
    >> also on the official build of R on your machine?
    >> 
    >> Also it would be nice to have a session info. If it works in the
    >> official build but not your custom build, then one would have to look
    >> also into how the custom build is done.
    >> 
    >> Thanks
    >> Tomas
    >> 
    >> 
    >> On 3/19/20 8:02 AM, Erin Hodgess wrote:
    >> > Hello everyone:
    >> >
    >> > I have built the latest version of the OpenBLAS on my Windows 10 machine.
    >> > When I run make distribution in R, everything is fine.
    >> >
    >> > However, when I run make check all,  I get the following error:
    >> >
    >> > C:\newtimeR\R-3.6.3\src\gnuwin32>make check-all
    >> > Testing examples for package 'base'
    >> > Testing examples for package 'tools'
    >> >    comparing 'tools-Ex.Rout' to 'tools-Ex.Rout.save' ... OK
    >> > Testing examples for package 'utils'
    >> > Error: testing 'utils' failed
    >> > Execution halted
    >> > make[3]: *** [Makefile.win:29: test-Examples-Base] Error 1
    >> > make[2]: *** [Makefile.common:185: test-Examples] Error 2
    >> > make[1]: *** [Makefile.common:171: test-all-basics] Error 1
    >> > make: *** [Makefile:324: check-all] Error 2
    >> >
    >> > And here is the section from the .Rout.fail for utils:
    >> >
    >> >> ## Multibyte characters in strings (in multibyte locales):
    >> >> oloc <- Sys.getlocale("LC_CTYPE")
    >> >> mbyte.lc <- if(.Platform$OS.type == "windows")
    >> > +  "English_United States.28605" else "en_GB.UTF-8"
    >> >> try(Sys.setlocale("LC_CTYPE", mbyte.lc))
    >> > [1] "English_United States.28605"
    >> >> ## Truncation behavior (<-> correct width measurement) for "long"
    >> > non-ASCII:
    >> >> idx <- c(65313:65338, 65345:65350)
    >> >> fwch <- intToUtf8(idx) # full width character string: each has width 2
    >> >> ch <- strtrim(paste(LETTERS, collapse="._"), 64)
    >> >> (ncc <- c(c.ch = nchar(ch),   w.ch = nchar(ch,   "w"),
    >> > +           c.fw = nchar(fwch), w.fw = nchar(fwch, "w")))
    >> > c.ch w.ch c.fw w.fw
    >> >    64   64   32   64
    >> >> stopifnot(unname(ncc) == c(64,64, 32, 64))
    >> >> ## nchar.max: 1st line needs an increase of  2  in order to see  1  (in
    >> > UTF-8!):
    >> >> invisible(lapply(60:66, function(N) str(fwch, nchar.max = N)))
    >> > Error in strtrim(x.lrg, nchar.max - nc) :
    >> >    unsupported conversion from 'UTF-8' in codepage 28605
    >> > Calls: lapply ... FUN -> str -> str.default -> maybe_truncate -> strtrim
    >> > Execution halted
    >> >
    >> > Has anyone run into this before, please?
    >> >
    >> > If I run this line-by-line starting at the "idx <-", things are fine.
    >> >
    >> > I also compiled R from source without the OpenBLAS, and it was fine.
    >> >
    >> > Thanks for any suggestions.
    >> >
    >> > Sincerely,
    >> > Erin
    >> >
    >> >
    >> >
    >> > Erin Hodgess, PhD
    >> > mailto: erinm.hodgess using gmail.com



More information about the R-package-devel mailing list