This is an archive of the discontinued LLVM Phabricator instance.

Coding Standards: Document library layering requirements & header isolation.
ClosedPublic

Authored by dblaikie on Jan 31 2018, 4:43 PM.

Details

Summary

(I suppose these two pieces could be separated - but seemed related
enough)

As discussed on llvm-dev, this documents the general expectation of how
library layering should be handled. There are a few existing cases where
these constraints are not met, but as with most style guide things -
this is forward looking and provides guidance when cleaning up existing
code, it doesn't immediately require that all previous code be cleaned
up to match. (see: naming conventions, etc)

Diff Detail

Event Timeline

dblaikie created this revision.Jan 31 2018, 4:43 PM
lattner accepted this revision.Jan 31 2018, 9:15 PM
lattner added a subscriber: lattner.

This change LGTM.

I'm surprised that the old wording survived as long as it did. In this department, C++ remains just as flawed as it was when the text was written, but so long as LLVM is written in it we should be precise about what this really means. This seems like a huge step up.

-Chris

This revision is now accepted and ready to land.Jan 31 2018, 9:15 PM

WFM. The practical description of layering will be enough for people trying to write patches. The software-engineering-process geek in me would still prefer a broader description but he won't make any more fuss about it. :-)

This revision was automatically updated to reflect the committed changes.