[llvm-dev] A libc in LLVM

Mehdi AMINI via llvm-dev llvm-dev at lists.llvm.org
Thu Sep 19 12:02:30 PDT 2019


On Thu, Sep 19, 2019 at 8:25 AM Siva Chandra <sivachandra at google.com> wrote:

> On Wed, Sep 18, 2019 at 11:49 PM Mehdi AMINI <joker.eph at gmail.com> wrote:
> >
> > Hi,
> >
> > What happened since you committed the doc? Is this now graduated from a
> "proposal to start a project" to a project?
>
> I think it has now.
>
> > Is there any update to be made to the doc:
> http://llvm.org/docs//Proposals/LLVMLibC.html ?
>
> Not sure what kind of update you have in mind. However, I am in the
> process of preparing the first patch containing some design docs and
> small illustrative implementations. I should have it out by the end of
> the day today or tomorrow.
>

I wasn't looking for anything in particular, but maybe the "Current Status"
could include the link to the depot and the mailing-list?

-- 
Mehdi




>
> >
> > Thanks,
> >
> > --
> > Mehdi
> >
> > On Mon, Sep 16, 2019 at 3:05 PM Siva Chandra via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >>
> >> Hello again,
> >>
> >> I would like to announce that we now have dedicated mailing lists for
> the llvm-libc project:
> >>
> >> 1. libc-dev - https://lists.llvm.org/cgi-bin/mailman/listinfo/libc-dev
> >> 2. libc-commits -
> https://lists.llvm.org/cgi-bin/mailman/listinfo/libc-commits
> >>
> >> A brief README.txt and LICENSE.txt have been added:
> https://github.com/llvm/llvm-project/tree/master/libc
> >>
> >> I will soon share or put out design docs and code for review, as
> suitable.
> >>
> >> Thanks,
> >> Siva Chandra
> >>
> >> On Thu, Aug 15, 2019 at 11:23 AM Siva Chandra <sivachandra at google.com>
> wrote:
> >>>
> >>> Hello again,
> >>>
> >>> I have now committed a proposal for this new libc:
> >>> https://reviews.llvm.org/D64939. This proposal is based on the charter
> >>> I shared previously (see below).
> >>>
> >>> Though it is now committed, if there are any concerns still, I am open
> >>> to iterating until the community in general is satisfied with the
> >>> proposal.
> >>>
> >>> Thanks,
> >>> Siva Chandra
> >>>
> >>> On Fri, Jul 12, 2019 at 8:15 AM Siva Chandra <sivachandra at google.com>
> wrote:
> >>> > "llvm-libc" C Standard Library
> >>> > ========================
> >>> >
> >>> > llvm-libc is an implementation of the C standard library targeting
> C11
> >>> > and above. It also provides platform specific extensions as relevant.
> >>> > For example, on Linux it also provides pthreads, librt and other
> POSIX
> >>> > extension libraries.
> >>> >
> >>> > Documentation
> >>> > ============
> >>> >
> >>> > The llvm-libc project is still in the planning phase. Stay tuned for
> >>> > updates soon.
> >>> >
> >>> > Features and Goals
> >>> > ================
> >>> >
> >>> > * C11 and upwards conformant.
> >>> > * A modular libc with individual pieces implemented in the "as a
> >>> > library" philosophy of the LLVM project.
> >>> > * Ability to layer this libc over the system libc.
> >>> > * Provide C symbols as specified by the standards, but take advantage
> >>> > and use C++ language facilities for the core implementation.
> >>> > * Provides POSIX extensions on POSIX compliant platforms.
> >>> > * Provides system-specific extensions as appropriate. For example,
> >>> > provides the Linux API on Linux.
> >>> > * Vendor extensions if and only if necessary.
> >>> > * Designed and developed from the start to work with LLVM tooling and
> >>> > testing like fuzz testing and sanitizer-supported testing.
> >>> > * ABI independent implementation as far as possible.
> >>> > * Use source based implementations as far possible rather than
> >>> > assembly. Will try to “fix” the compiler rather than use assembly
> >>> > language workarounds.
> >>> >
> >>> > Why a new C Standard Library?
> >>> > =========================
> >>> >
> >>> > Implementing a libc is no small task and is not be taken lightly. A
> >>> > natural question to ask is, "why a new implementation of the C
> >>> > standard library?" There is no single answer to this question, but
> >>> > some of the major reasons are as follows:
> >>> >
> >>> > * Most libc implementations are monolithic. It is a non-trivial
> >>> > porting task to pick and choose only the pieces relevant to one's
> >>> > platform. The new libc will be developed with sufficient modularity
> to
> >>> > make picking and choosing a straightforward task.
> >>> > * Most libc implementations break when built with sanitizer specific
> >>> > compiler options. The new libc will be developed from the start to
> >>> > work with those specialized compiler options.
> >>> > * The new libc will be developed to support and employ fuzz testing
> >>> > from the start.
> >>> > * Most libc implementations use a good amount of assembly language,
> >>> > and assume specific ABIs (may be platform dependent). With the new
> >>> > libc implementation, we want to use normal source code as much as
> >>> > possible so that compiler-based changes to the ABI are easy.
> Moreover,
> >>> > as part of the LLVM project, we want to use this opportunity to fix
> >>> > performance related compiler bugs rather than using assembly
> >>> > workarounds.
> >>> > * A large hole in the llvm toolchain will be plugged with this new
> >>> > libc. With the broad platform expertise in the LLVM community, and
> the
> >>> > strong license and project structure, we think that the new libc will
> >>> > be more tunable and robust, without sacrificing the simplicity and
> >>> > accessibility typical of the LLVM project.
> >>> >
> >>> > Platform Support
> >>> > ==============
> >>> >
> >>> > llvm-libc development is still in the planning phase. However, we
> >>> > envision that it will support a variety of platforms in the coming
> >>> > years. Interested parties are encouraged to participate in the design
> >>> > and implementation, and add support for their favorite platforms.
> >>> >
> >>> > Current Status
> >>> > ============
> >>> >
> >>> > llvm-libc development is still in the planning phase.
> >>> >
> >>> > Build Bots
> >>> > =========
> >>> >
> >>> > Coming soon.
> >>> >
> >>> > Get involved!
> >>> > ===========
> >>> >
> >>> > First please review our Developer's Policy. Stay tuned for llvm-libc
> >>> > specific information.
> >>> >
> >>> > Design Documents
> >>> > ===============
> >>> >
> >>> > Coming soon.
> >>
> >> _______________________________________________
> >> LLVM Developers mailing list
> >> llvm-dev at lists.llvm.org
> >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190919/f2a1998d/attachment.html>


More information about the llvm-dev mailing list