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.> > 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
On 19/09/2019 08:25, Siva Chandra via llvm-dev wrote:> 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.Are you going to be at the DevMeeting? It would be great to organise a round-table for this and discuss the use cases people have for a libc. I am particularly interested in a libc for minimal TCB environments, for example. David
On Thu, Sep 19, 2019 at 9:09 AM David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:> > On 19/09/2019 08:25, Siva Chandra via llvm-dev wrote: > > > 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. > > Are you going to be at the DevMeeting? It would be great to organise a > round-table for this and discuss the use cases people have for a libc. > I am particularly interested in a libc for minimal TCB environments, for > example.Yes, that is the plan. Once the form for round tables opens up, I will signup a slot for llvm-libc.
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>
On Thu, Sep 19, 2019 at 12:02 PM Mehdi AMINI <joker.eph at gmail.com> wrote:> > On Thu, Sep 19, 2019 at 8:25 AM Siva Chandra <sivachandra at google.com> wrote: >> 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?That is a good idea. Will do it shortly. Thanks, Siva Chandra