From b-h at mevik.net  Wed Jun 23 23:36:53 2004
From: b-h at mevik.net (b-h@mevik.net)
Date: Wed Jun 23 23:36:56 2004
Subject: [Rd] Similar error as (PR#6958)
Message-ID: <20040623213653.9AC95F473@slim.kubism.ku.dk>

When compiling R 1.9.1 on a Linux system with the environment variable
LANG=3Dno_NO, I get a similar error as reported in PR#6958:

## FACTS:

$ locale
LANG=3Dno_NO
LC_CTYPE=3D"no_NO"
LC_NUMERIC=3D"no_NO"
LC_TIME=3D"no_NO"
LC_COLLATE=3D"no_NO"
LC_MONETARY=3D"no_NO"
LC_MESSAGES=3D"no_NO"
LC_PAPER=3D"no_NO"
LC_NAME=3D"no_NO"
LC_ADDRESS=3D"no_NO"
LC_TELEPHONE=3D"no_NO"
LC_MEASUREMENT=3D"no_NO"
LC_IDENTIFICATION=3D"no_NO"
LC_ALL=3D
$ cd /usr/src/R/R-1.9.1
$ ./configure
[...]
$ make
[...]
make[3]: Entering directory `/usr/src/R/R-1.9.1/src/library/stats4'
building package 'stats4'
mkdir -p -- ../../../library/stats4/R
mkdir -p -- ../../../library/stats4/man
make[4]: Entering directory `/usr/src/R/R-1.9.1/src/library/stats4'
dumping R code in package 'stats4'
Error in eval(expr, envir, enclos) : couldn't find function "setGeneric"
Execution halted

If unset LANG before running make, the error doesn't appear, and the
build passes make check.

I've tried this on a Debian 3.0 stable system and a Red Hat 9 system,
with identical results.

## HYPOTHESIS:

>From Professor Ripley's answer to the original PR#6958, I would guess
the problem is that LC_COLLATE (in effect) is no_NO.  This matters for
the line

          cat `ls $(srcdir)/R/*.R` >> $${f}; \

in ${R_HOME}/src/library/stats4/Makefile.

With LC_COLLATE=3Dno_NO, ls will list the files in the order BIC.R
mle.R  AAA.R, making the require(methods) in AAA.R come last instead
of first in $${f}.  (In Norwegian, Aa is an old (but still often used in
names) way of writing the letter =C5, and lately, ls(1) has become
"intelligent" enough to sort them together, at the end of the
alphabet.)

## IDEA/SUGGESTION/RAMBLING:

Instead of relying on getting LC_COLLATE correct all places where that
is needed, perhaps one could use something like 111.R instead of AAA.R
(what to use instead of zzz.R I don't know).  Or perhaps use a
mechanism not based on sorting to ensure a file is read first or last?


--=20
Bj=F8rn-Helge Mevik


[Rd] Similar error as (PR#6958)
b-h@mevik.net