Dear FreeBSD Community,
The FreeBSD Foundation is pleased to announce that David Chisnall has been awarded a grant to
implement xlocale APIs to enable porting libc++.
The C standard library (libc) is one of the most important parts of a UNIX system as most programs
interact with the kernel through interfaces written in C. Porting code between platforms with similar l
ibc implementations is trivial and if something is supported by libc, higher-level languages can use it
without being reimplemented.
Over time, the C language has slowly evolved to modern multicore systems, but there are still some
places that are problematic. One of these is localization as C began originally had no localization support.
FreeBSD libc and Darwin libc (used by Mac OS X) are similar, making it much easier to port code from
OS X to FreeBSD than from OS X to Linux. The libc used by OS X supports a set of extended locale
functions (xlocale) that allow locale to be set on a per-thread basis.
Additionally, libc++, from the LLVM project, was originally developed on Darwin, so it uses xlocale for
most of the C++ locale support. The lack of this support is the primary obstacle to porting it to FreeBSD.
Once xlocale is supported in FreeBSD libc, we can port libc++ to FreeBSD, giving us an MIT-licensed
C++11 standard library implementation. This, in conjunction with Clang and libcxxrt, means that the
entire C++ stack in FreeBSD will be free of any GNU code. This leaves the linker as the only significant obstacle to a GPL-free FreeBSD 10.
The project will conclude the end of September 2011.
The FreeBSD Foundation
No comments:
Post a Comment