On Thu, 5 Aug 2004, Nicholas Clark wrote:

> On Wed, Aug 04, 2004 at 04:10:56AM -0700, Joshua Gatcomb wrote:
>
> > WRT improving the ease of use of ICU.  My suggestion
> > is that a representative from each platform that
> > Parrot is currently being built on download the latest
> > stable version of ICU source, build it, and note
>
> x86 Debian builds and tests just fine when ICU is configured with the
> platform LinuxRedHat
>
> The Sparc Debian box is down, so I can't see if that's "LinuxRedHat" too.

I just successfully built icu-3.0 on a Debian/UltraSPARC system.  The
"LinuxRedHat" bit doesn't actually do anything beyond what a plain run
of ./configure would do.

I'm not sure quite what to think about ICU at the moment.

I certainly agree ICU is complex and when it goes awry, it looks quite
daunting to fix.

Part of the issue is certainly that ICU is trying to do some hard
things:

    1.  It builds 8 different shared libraries along the way.
        Presumably, as part of the build/test/install/use cycle, it
        needs to use those libraries, and not other versions of the icu
        libraries.  As we know from dealing with shared libperl.so
        libraries, this is hard to do, and requires platform-specific
        information that's often impossible to guess.

        Similarly, it has to find data files, with a way to determine
        at run time where to find them.

    2.  It generates some stuff "on-the-fly".  Doing so portably
        (while correctly propagating all the various environment
        variables to get the right shared libraries and build tools)
        is, again, hard.

    3.  Correct implementation of some Unicode stuff is hard.

Any competing system would likely have to address many of the same
issues.

I haven't dug into the build system deeply enough to have a sense of
how much work would be involved in making it more portable.  Some of
the complexity is probably necessary because the problem itself is
complex, but some of it has probably just evolved that way.  perl5's
Configure system certainly has a lot of both types of complexity.

Finally, I note that ICU is still rapidly evolving.  The 2.6 version
in parrot right now that is "obsolete" is only 6 months old.  That's
both good and bad.  It's good in that fixes could quickly flow both
ways between the parrot and icu developers.  It's bad, though, if the
parrot version ends up forking significantly from the standard one,
because it will be a lot of work to keep parrot's version in sync.

So I don't know what to do with it at the moment; any alternative
looks like a lot of work.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to