> > > Obviously, our locale support still sucks, this patch is mostly 
> > > providing the API for filling the blanks later.
> 
> Which blanks exactly? Locale features we don't have, such as collation?

Yes.  The features why for example PostgreSQL won't sort tables
correctly, which if you live in a country with weird characters in their
language is... quite unfortunate.

I was planning on bringing specifically LC_COLLATE support for a long
time, but it's quite a lot of work. (and testing, and bugfixing with
languages I don't even know existed)

> > How much did the ramdisks grow by when you built release with this?  
> > Having just freed up a bunch of space on the ramdisks, I'll be pissed if 
> > we squander it all immediately.

No objections against #ifndef SMALL_KERNEL-ing the big bits.

> I'm not very excited about xlocale. If the only goal here is an API
> shim to compile a C++ library, can't we put the shim somewhere else
> than libc? Like the misc/libutf8 port we used to have?

Thought about it too, but since apps expect to find this stuff in libc,
I went for a libc diff hoping that porters will have their lives easier.
The functions I ported were the ones ld-2.17 complained about.  I have
no idea whether that port is complete and I don't claim the diff to be
ready.  It gets the job done at the cost of being huge and probably
wrong in places, and is open for discussion.

I don't care about xlocale either.  What'd I like is to have C++11
working out of the box for the next release (Is that real?) and
hopefully collation support some time in the future.  Later in the
process I noticed there is an even smaller shim intended for Solaris as
a part of libcxx, but my thoughts were:
 - Locale has always been a pain in the ass, but something users demand.
   (or is it just me with postgresql?)
 - Sharing this stuff with FreeBSD will make our lives easier should
   anything go wrong with it.  Less work for us + satisfied customers.
 - We don't have to be complete, or even advertise it very much.  But
   stuff that is increasingly popular (like C++11) will work out of the
   box.  The ability to use modern toolchains for ports should make the
   latency-savvy desktop users happier.
 - Since a lot of operating systems have now adopted solutions (being it
   xlocale or others), I suspect libcxx maintainers won't be very happy
   about #ifdef __OpenBSD__ <remove half of the functionality>

Please correct me if the philosophy is wrong.  Or better, suggest other
ways forward :-)
--
Martin Pelikan

Reply via email to