<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 16, 2016, at 10:50 AM, Jason Henline <<a href="mailto:jhen@google.com" class="">jhen@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">Thanks for your help, Tanya!</div><div class=""><br class=""></div><div class="">I haven't created the project in SVN yet. Am I able to set it up myself on the LLVM servers, or does someone else need to do that part?</div></div></div></blockquote><div><br class=""></div><div>You can do this yourself within the llvm-project SVN repository.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">I'll be glad to volunteer to moderate the new mailing lists.</div></div></div></blockquote><div><br class=""></div><div>Thanks!</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">We will want a website. I think there will be a top-level docs directory for the project and a docs directory for each subproject. To begin with, StreamExecutor will be the only subproject so the structure will look something like this:</div><div class=""><br class=""></div><div class="">parallel-libs/</div><div class="">  docs/</div><div class="">  stream_executor/</div><div class="">    docs/</div><div class=""><br class=""></div><div class="">Does that seem like a reasonable way to set it up?</div></div><br class=""></div></blockquote><div><br class=""></div><div>Yes for docs. Virtually all the projects have a www directory within their project. That usually holds static web pages. Then there is a docs directory that has either static docs or sphinx generated docs. Doxygen would also fall in there. The scripts are all set up to handle this sort of project layout (www and docs).</div><div><br class=""></div><div>You could probably easily have a top level www for parallel-libs and also each project have its own website if needed or not. Its fine for each subprojects to have its own docs dir.. they would just get built separately unless you set up cmake to build everything at the top level and combine the docs? Not sure how you want that to work.</div><div><br class=""></div><div>-Tanya</div><div><br class=""></div><div><br class=""></div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><div dir="ltr" class="">On Wed, Jun 15, 2016 at 8:44 PM Tanya Lattner <<a href="mailto:tanyalattner@llvm.org" class="">tanyalattner@llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">Jason,<div class=""><br class=""></div><div class="">This sounds good. Have you created the project in SVN yet?</div><div class=""><br class=""></div><div class="">I’ll need to do the post commit hook to the mailing lists, plus set up mailing lists. Would anyone want to volunteer to moderate the new mailing lists? Will you have docs that need updating or website?</div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class="">-Tanya</div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 13, 2016, at 11:01 AM, Jason Henline <<a href="mailto:jhen@google.com" target="_blank" class="">jhen@google.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class=""><span class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Hi Tanya,</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:arial;vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">As discussed in the past few weeks in the llvm-dev thread “</span><span style="font-size:15.3333px;font-family:arial;color:rgb(33,33,33);vertical-align:baseline;white-space:pre-wrap" class="">RFC: Proposing an LLVM subproject for parallelism runtime and support libraries”, we would like to start a new LLVM subproject called parallel-libs (a kind of a parallel cousin to compiler-rt), and I was told you were the one to contact in order to get it created. The charter for the project is included below. Are you able to get this subproject set up?</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:15.3333px;font-family:arial;color:rgb(33,33,33);vertical-align:baseline;white-space:pre-wrap" class="">Thanks for your help,</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:15.3333px;font-family:arial;color:rgb(33,33,33);vertical-align:baseline;white-space:pre-wrap" class="">-Jason</span></div><br class=""><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:15.3333px;font-family:arial;color:rgb(33,33,33);vertical-align:baseline;white-space:pre-wrap" class="">Charter:</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">=====================================================</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">LLVM parallel-libs Subproject Charter</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">=====================================================</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Description</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">The LLVM open source project will contain a subproject named `parallel-libs` which will host the development of libraries which are aimed at enabling parallelism in code and which are also closely tied to compiler technology.  Examples of libraries suitable for hosting within the `parallel-libs` subproject are runtime libraries and parallel math libraries. The initial candidates for inclusion in this subproject are StreamExecutor and libomptarget which would live in the `streamexecutor` and `libomptarget` subdirectories of `parallel-libs`, respectively.</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">The `parallel-libs` project will host a collection of libraries where each library may be dependent on other libraries from the project or may be completely independent of any other libraries in the project. The rationale for hosting independent libraries within the same subproject is that all libraries in the project are providing related functionality that lives at the intersection of parallelism and compiler technology. It is expected that some libraries which initially began as independent will develop dependencies over time either between existing libraries or by extracting common code that can be used by each. One of the purposes of this subproject is to provide a working space where such refactoring and code sharing can take place.</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Libraries in the `parallel-libs` subproject may also depend on the LLVM core libraries. This will be useful for avoiding duplication of code within the LLVM project for common utilities such as those found in the LLVM support library.</span></div><br class=""><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Requirements</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Libraries included in the `parallel-libs` subproject must strive to achieve the following requirements:</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">1. Adhere to the LLVM coding standards.</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">2. Use the LLVM build and test infrastructure.</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">3. Be released under LLVM's license.</span></div><br class=""><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Coding standards</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Libraries in `parallel-libs` will match the LLVM coding standards. For existing projects being checked into the subproject as-is, an exception will be made during the initial check-in, with the understanding that the code will be promptly updated to follow the standards. Therefore, a three month grace period will be allowed for new libraries to meet the LLVM coding standards.</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Additional exceptions to strict adherence to the LLVM coding standards may be allowed in certain other cases, but the reasons for such exceptions must be discussed and documented on a case-by-case basis.</span></div><br class=""><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">LLVM build and test infrastructure</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Using the LLVM build and test infrastructure currently means using `cmake` for building, `lit` for testing, and `buildbot` for automating build and testing. This project will follow the main LLVM project conventions here and track them as they evolve.</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Each subproject library will be able to build separately without a single, unified cmake file, but each subproject libraries will also be integrated into the LLVM build so they can be built directly from the top level of the LLVM cmake infrastructure.</span></div><br class=""><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">LLVM license</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">For simplicity, the `parallel-libs` project will use the normal LLVM license. While some runtime libraries use a dual license scheme in LLVM, we anticipate the project removing the need for this eventually and in the interim follow the simpler but still permissive license. Among other things, this makes it straightforward for these libraries to re-use core LLVM libraries where appropriate.</span></div><br class=""><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Mailing List and Bugs</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">----------------------------------------------</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Two mailing lists will be set up for the project:</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">1. <a href="mailto:parallel_libs-dev@lists.llvm.org" target="_blank" class="">parallel_libs-dev@lists.llvm.org</a> for discussions among project developers, and</span></div><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">2. <a href="mailto:parallel_libs-commits@lists.llvm.org" target="_blank" class="">parallel_libs-commits@lists.llvm.org</a> for patches and commits to the project.</span></div><br class=""><div style="line-height:1.38;margin-top:0pt;margin-bottom:0pt" class=""><span style="font-size:14.6667px;font-family:"ubuntu mono";vertical-align:baseline;white-space:pre-wrap;background-color:transparent" class="">Each subproject library will manage its own components in Bugzilla. So, for example, there can be several Bugzilla components for different parts of StreamExecutor, etc.</span></div></span><br class=""></div>
</div></blockquote></div><br class=""></div></div></blockquote></div>
</div></blockquote></div><br class=""></body></html>