Russell Wallace via llvm-dev
2015-Sep-10 15:06 UTC
[llvm-dev] LLVM coding standards and order of includes
According to the LLVM coding standards, Immediately after the header file comment <http://llvm.org/docs/CodingStandards.html#header-file-comment> (and include guards if working on a header file), the minimal list of #includes <http://llvm.org/docs/CodingStandards.html#minimal-list-of-includes>required by the file should be listed. We prefer these #includes to be listed in this order: 1. Main Module Header 2. Local/Private Headers 3. llvm/... 4. System #includes If a program is using LLVM, and also using a third-party library such as GMP, where would the coding standard have the GMP include be placed relative to the above order? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150910/5ccd183c/attachment.html>
David Blaikie via llvm-dev
2015-Sep-10 15:33 UTC
[llvm-dev] LLVM coding standards and order of includes
On Thu, Sep 10, 2015 at 8:06 AM, Russell Wallace via llvm-dev < llvm-dev at lists.llvm.org> wrote:> According to the LLVM coding standards, > > Immediately after the header file comment > <http://llvm.org/docs/CodingStandards.html#header-file-comment> (and > include guards if working on a header file), the minimal list of #includes > <http://llvm.org/docs/CodingStandards.html#minimal-list-of-includes>required > by the file should be listed. We prefer these #includes to be listed in > this order: > > 1. Main Module Header > 2. Local/Private Headers > 3. llvm/... > 4. System #includes > > If a program is using LLVM, and also using a third-party library such as > GMP, where would the coding standard have the GMP include be placed > relative to the above order? >The LLVM coding conventions are really intended for LLVM's code itself, they probably don't cover many situations that would arise when using LLVM code in broader applications like this... (nor is it likely we'd want to add wording to the style guide to clarify those use cases, unfortunately). That said, we do have one (zlib compression?) or two (maybe md5 too?) external libraries used in LLVM, I imagine they get bundled in with the system includes, but I've not looked (& given that there aren't many, they might not be done in any consistent/deliberate manner) - Dave -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150910/e92f1f55/attachment.html>
Martin J. O'Riordan via llvm-dev
2015-Sep-10 16:00 UTC
[llvm-dev] LLVM coding standards and order of includes
Generally it is safer to include ISO headers first (using the ‘#include <...>’ form) so as to minimise the possibility that a later user declaration or macro definition interferes with the correctness of the Standard libraries. It also tends to make pre-compiled header implementations faster and more shareable across a larger set of files. I would like to suggest revising the LLVM coding standard to place the “System #includes” first. MartinO From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of David Blaikie via llvm-dev Sent: 10 September 2015 16:33 To: Russell Wallace <russell.wallace at gmail.com> Cc: llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] LLVM coding standards and order of includes On Thu, Sep 10, 2015 at 8:06 AM, Russell Wallace via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> > wrote: According to the LLVM coding standards, Immediately after the <http://llvm.org/docs/CodingStandards.html#header-file-comment> header file comment (and include guards if working on a header file), the <http://llvm.org/docs/CodingStandards.html#minimal-list-of-includes> minimal list of #includesrequired by the file should be listed. We prefer these #includes to be listed in this order: 1. Main Module Header 2. Local/Private Headers 3. llvm/... 4. System #includes If a program is using LLVM, and also using a third-party library such as GMP, where would the coding standard have the GMP include be placed relative to the above order? The LLVM coding conventions are really intended for LLVM's code itself, they probably don't cover many situations that would arise when using LLVM code in broader applications like this... (nor is it likely we'd want to add wording to the style guide to clarify those use cases, unfortunately). That said, we do have one (zlib compression?) or two (maybe md5 too?) external libraries used in LLVM, I imagine they get bundled in with the system includes, but I've not looked (& given that there aren't many, they might not be done in any consistent/deliberate manner) - Dave -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150910/21558702/attachment.html>
mats petersson via llvm-dev
2015-Sep-10 16:03 UTC
[llvm-dev] LLVM coding standards and order of includes
Like David says, if it's not part of LLVM, the LLVM coding style doesn't really apply. However, I would consider any header that is not part of your own project, and not part of LLVM as "system" - whether it REALLY is a system header, or part of some package you've installed on the system to support your development is probably not really relevant. -- Mats On 10 September 2015 at 16:33, David Blaikie via llvm-dev < llvm-dev at lists.llvm.org> wrote:> > > On Thu, Sep 10, 2015 at 8:06 AM, Russell Wallace via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> According to the LLVM coding standards, >> >> Immediately after the header file comment >> <http://llvm.org/docs/CodingStandards.html#header-file-comment> (and >> include guards if working on a header file), the minimal list of >> #includes >> <http://llvm.org/docs/CodingStandards.html#minimal-list-of-includes>required >> by the file should be listed. We prefer these #includes to be listed in >> this order: >> >> 1. Main Module Header >> 2. Local/Private Headers >> 3. llvm/... >> 4. System #includes >> >> If a program is using LLVM, and also using a third-party library such as >> GMP, where would the coding standard have the GMP include be placed >> relative to the above order? >> > > The LLVM coding conventions are really intended for LLVM's code itself, > they probably don't cover many situations that would arise when using LLVM > code in broader applications like this... (nor is it likely we'd want to > add wording to the style guide to clarify those use cases, unfortunately). > > That said, we do have one (zlib compression?) or two (maybe md5 too?) > external libraries used in LLVM, I imagine they get bundled in with the > system includes, but I've not looked (& given that there aren't many, they > might not be done in any consistent/deliberate manner) > > - Dave > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://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/20150910/0def0c4d/attachment.html>