Nicholas Clark <[EMAIL PROTECTED]> wrote: > On Thu, Oct 07, 2004 at 11:25:49AM +0200, Leopold Toetsch wrote: >> Short version: an installed Parrot is now able to locate its ICU data. >> >> The longer story: During "make" a new file src/parrot_config.c is >> created holding currently just one entry: the install --prefix directory. >> During string_init that directory is stat()ed and when the *directory* >> exists, ICU data are set to $prefix/blib/lib/icu/2.6.1/foo.
> I don't think that this logic as currently implemented is correct. If I > build parrot as: > perl Configure.pl --prefix=`echo ~/test/foo` && make all test > then all the tests pass (because ~/test/foo doesn't exist) > If I touch ~/test/foo then many many tests fail. Yep. That's how it is working now and what I've documented above. > I think that the stat needs to be on the ICU data file (or at least its > directory) Basically yes. But testing for the ICU data file needs more config support (there are at least two flavors of data files: big & little endian). Testing the data directory moved the (un)logic just a bit down the tree. What we really need is a means to express that Parrot is installed and should use the --prefix directory tree or just not. > Currently, if you want to install to /usr/local and /usr/local already exists > then make test will fail. You don't want to use --prefix=/usr/local - that clutters up /usr/local itself. Another TODO item. > Secondly, the ICU data shouldn't be down .../blib/lib once installed, should > it? Probably not. The current installer basically just duplicates the source directory structure. > ... but they get installed in some > other location with a name built from perl's architecture string, so that > multiple architectures' files can co-exist on one filesystem. Well, that is the default: /usr/local/parrot-0.1.1/ >> Using the same strategy for Parrot libs and includes (from >> runtime/parrot) could be a bit problematic: if Parrot got installed >> once, these files would always come from the installed directory, even >> when a newer version is in the build directory as long as the Parrot >> version is the same. > The convention for perl5's tests isn't quite settled yet, but it seems to be > evolving to PERL_CORE being in the environment for the test scripts, and the > scripts setting @INC explicity. Ok. > Can ICU be told to find its data files elsewhere via an environment variable > override? Should we provide one? ICU itself seems to have a getenv() override, Parrot checks PARROT_ICU_DATA_DIR. But I don't want to have separate settings for ICU. One environment variable ought to be enough. > Nicholas Clark leo