<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 19, 2019 at 8:25 AM Siva Chandra <<a href="mailto:sivachandra@google.com">sivachandra@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">On Wed, Sep 18, 2019 at 11:49 PM Mehdi AMINI <<a href="mailto:joker.eph@gmail.com" target="_blank">joker.eph@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> What happened since you committed the doc? Is this now graduated from a "proposal to start a project" to a project?<br>
<br>
I think it has now.<br>
<br>
> Is there any update to be made to the doc: <a href="http://llvm.org/docs//Proposals/LLVMLibC.html" rel="noreferrer" target="_blank">http://llvm.org/docs//Proposals/LLVMLibC.html</a> ?<br>
<br>
Not sure what kind of update you have in mind. However, I am in the<br>
process of preparing the first patch containing some design docs and<br>
small illustrative implementations. I should have it out by the end of<br>
the day today or tomorrow.<br></blockquote><div><br></div><div>I wasn't looking for anything in particular, but maybe the "Current Status" could include the link to the depot and the mailing-list?</div><div><br></div><div>-- </div><div>Mehdi</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
><br>
> Thanks,<br>
><br>
> --<br>
> Mehdi<br>
><br>
> On Mon, Sep 16, 2019 at 3:05 PM Siva Chandra via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> Hello again,<br>
>><br>
>> I would like to announce that we now have dedicated mailing lists for the llvm-libc project:<br>
>><br>
>> 1. libc-dev - <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libc-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/libc-dev</a><br>
>> 2. libc-commits - <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libc-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/libc-commits</a><br>
>><br>
>> A brief README.txt and LICENSE.txt have been added: <a href="https://github.com/llvm/llvm-project/tree/master/libc" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/tree/master/libc</a><br>
>><br>
>> I will soon share or put out design docs and code for review, as suitable.<br>
>><br>
>> Thanks,<br>
>> Siva Chandra<br>
>><br>
>> On Thu, Aug 15, 2019 at 11:23 AM Siva Chandra <<a href="mailto:sivachandra@google.com" target="_blank">sivachandra@google.com</a>> wrote:<br>
>>><br>
>>> Hello again,<br>
>>><br>
>>> I have now committed a proposal for this new libc:<br>
>>> <a href="https://reviews.llvm.org/D64939" rel="noreferrer" target="_blank">https://reviews.llvm.org/D64939</a>. This proposal is based on the charter<br>
>>> I shared previously (see below).<br>
>>><br>
>>> Though it is now committed, if there are any concerns still, I am open<br>
>>> to iterating until the community in general is satisfied with the<br>
>>> proposal.<br>
>>><br>
>>> Thanks,<br>
>>> Siva Chandra<br>
>>><br>
>>> On Fri, Jul 12, 2019 at 8:15 AM Siva Chandra <<a href="mailto:sivachandra@google.com" target="_blank">sivachandra@google.com</a>> wrote:<br>
>>> > "llvm-libc" C Standard Library<br>
>>> > ========================<br>
>>> ><br>
>>> > llvm-libc is an implementation of the C standard library targeting C11<br>
>>> > and above. It also provides platform specific extensions as relevant.<br>
>>> > For example, on Linux it also provides pthreads, librt and other POSIX<br>
>>> > extension libraries.<br>
>>> ><br>
>>> > Documentation<br>
>>> > ============<br>
>>> ><br>
>>> > The llvm-libc project is still in the planning phase. Stay tuned for<br>
>>> > updates soon.<br>
>>> ><br>
>>> > Features and Goals<br>
>>> > ================<br>
>>> ><br>
>>> > * C11 and upwards conformant.<br>
>>> > * A modular libc with individual pieces implemented in the "as a<br>
>>> > library" philosophy of the LLVM project.<br>
>>> > * Ability to layer this libc over the system libc.<br>
>>> > * Provide C symbols as specified by the standards, but take advantage<br>
>>> > and use C++ language facilities for the core implementation.<br>
>>> > * Provides POSIX extensions on POSIX compliant platforms.<br>
>>> > * Provides system-specific extensions as appropriate. For example,<br>
>>> > provides the Linux API on Linux.<br>
>>> > * Vendor extensions if and only if necessary.<br>
>>> > * Designed and developed from the start to work with LLVM tooling and<br>
>>> > testing like fuzz testing and sanitizer-supported testing.<br>
>>> > * ABI independent implementation as far as possible.<br>
>>> > * Use source based implementations as far possible rather than<br>
>>> > assembly. Will try to “fix” the compiler rather than use assembly<br>
>>> > language workarounds.<br>
>>> ><br>
>>> > Why a new C Standard Library?<br>
>>> > =========================<br>
>>> ><br>
>>> > Implementing a libc is no small task and is not be taken lightly. A<br>
>>> > natural question to ask is, "why a new implementation of the C<br>
>>> > standard library?" There is no single answer to this question, but<br>
>>> > some of the major reasons are as follows:<br>
>>> ><br>
>>> > * Most libc implementations are monolithic. It is a non-trivial<br>
>>> > porting task to pick and choose only the pieces relevant to one's<br>
>>> > platform. The new libc will be developed with sufficient modularity to<br>
>>> > make picking and choosing a straightforward task.<br>
>>> > * Most libc implementations break when built with sanitizer specific<br>
>>> > compiler options. The new libc will be developed from the start to<br>
>>> > work with those specialized compiler options.<br>
>>> > * The new libc will be developed to support and employ fuzz testing<br>
>>> > from the start.<br>
>>> > * Most libc implementations use a good amount of assembly language,<br>
>>> > and assume specific ABIs (may be platform dependent). With the new<br>
>>> > libc implementation, we want to use normal source code as much as<br>
>>> > possible so that compiler-based changes to the ABI are easy. Moreover,<br>
>>> > as part of the LLVM project, we want to use this opportunity to fix<br>
>>> > performance related compiler bugs rather than using assembly<br>
>>> > workarounds.<br>
>>> > * A large hole in the llvm toolchain will be plugged with this new<br>
>>> > libc. With the broad platform expertise in the LLVM community, and the<br>
>>> > strong license and project structure, we think that the new libc will<br>
>>> > be more tunable and robust, without sacrificing the simplicity and<br>
>>> > accessibility typical of the LLVM project.<br>
>>> ><br>
>>> > Platform Support<br>
>>> > ==============<br>
>>> ><br>
>>> > llvm-libc development is still in the planning phase. However, we<br>
>>> > envision that it will support a variety of platforms in the coming<br>
>>> > years. Interested parties are encouraged to participate in the design<br>
>>> > and implementation, and add support for their favorite platforms.<br>
>>> ><br>
>>> > Current Status<br>
>>> > ============<br>
>>> ><br>
>>> > llvm-libc development is still in the planning phase.<br>
>>> ><br>
>>> > Build Bots<br>
>>> > =========<br>
>>> ><br>
>>> > Coming soon.<br>
>>> ><br>
>>> > Get involved!<br>
>>> > ===========<br>
>>> ><br>
>>> > First please review our Developer's Policy. Stay tuned for llvm-libc<br>
>>> > specific information.<br>
>>> ><br>
>>> > Design Documents<br>
>>> > ===============<br>
>>> ><br>
>>> > Coming soon.<br>
>><br>
>> _______________________________________________<br>
>> LLVM Developers mailing list<br>
>> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>