<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hello parallelism enthusiasts!<br class=""><font color="#00afcd" class=""><span style="caret-color: rgb(0, 175, 205);" class=""><br class=""></span></font>C++17 adds support for “<a href="https://wg21.link/p0024" class="">Parallel STL</a>”, and neither libc++ nor libstdc++ have an implementation. Apple, RedHat, and Intel want to begin implementation work under the umbrella of the LLVM Foundation.<div class=""><br class=""></div><div class=""><br class=""><span style="background-color: rgba(255, 255, 255, 0);" class=""><b class="">What we’re suggesting</b></span><div class=""><br class=""><ul class=""><li class="">Create a new repository, under the LLVM Foundation, to host Parallel STL work. This includes an implementation which can support multiple backends, correctness tests, and performance tests.</li><li class="">This repository will be importable into <a href="https://libcxx.llvm.org" class="">libc++</a> and <a href="https://gcc.gnu.org/onlinedocs/libstdc++/" class="">libstdc++</a>. Details will be worked out later as this will be experimental for a while.</li><li class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Contributions occur as usual, under </span><a href="https://llvm.org/docs/Contributing.html" class="" style="background-color: rgba(255, 255, 255, 0);">LLVM’s contribution policy</a> (specifically, the <a href="http://llvm.org/foundation/relicensing/devpolicy.patch" class="">revised<a href="http://llvm.org/foundation/relicensing/devpolicy.patch" class=""> policy</a></a>)<span style="background-color: rgba(255, 255, 255, 0);" class="">.</span></li><li class="">New mailing lists will be created for the project (<font face="Courier New" class="">pstl-dev@</font> and <font face="Courier New" class="">pstl-commits@</font>), as well as new bugzilla components, and associated Phabricator setup.</li><li class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">Intel will seed this new repository with </span><a href="https://github.com/intel/parallelstl/" class="" style="background-color: rgba(255, 255, 255, 0);">the code from their initial implementation</a><span style="background-color: rgba(255, 255, 255, 0);" class="">.</span></li><li class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">This repository will be exclusively under LLVM’s new license: </span><a href="http://llvm.org/foundation/relicensing/" class="" style="background-color: rgba(255, 255, 255, 0);">Apache 2.0 with LLVM Exception</a><span style="background-color: rgba(255, 255, 255, 0);" class="">. That is, <i class="">not</i> dual-licensed under both the old and the new licenses.</span></li><li class="">Apple’s Louis Dionne, RedHat’s Tom Rodgers, and Intel’s Mikhail Dvorskiy sign up to implement and maintain code in this repository. Marshall Clow will also participate in his capacity as libc++ code owner.</li><li class="">We foresee this implementation as being ready for <i class="">experimental</i> distribution in the LLVM 8 and GCC 9 timeframes. We have no commitment to when an implementation will be deemed stable because we need to figure out ABIs, backends, etc.</li><li class="">We look forward to getting developer feedback from such an experimental distribution.</li><li class="">Future work will help inform the direction of C++20 and beyond. In particular, work towards <a href="https://wg21.link/p0761" class="">Executors</a> and <a href="https://wg21.link/p0958" class="">Networking</a> are closely tied to the Parallel STL and there’s a <a href="https://wg21.link/n4706" class="">Parallel STL v2</a> (Electric Boogaloo).</li></ul><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><b class="">Request for Comments</b></div><div class=""><br class=""></div><div class="">The LLVM Foundation’s Board approves of this plan. We want to make sure that the wider community also approves. We’d also like to hear from anyone interested in helping with this work as well as integration into libc++ and libstdc++.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><b class="">Upcoming Discussions</b></div><div class=""><br class=""></div><div class=""><ul class=""><li class="">Tom will <a href="http://sched.co/FnKl" class="">present this work at CppCon</a>.</li><li class="">Louis will hold a BoF at the <a href="https://llvm.org/devmtg/2018-10/" class="">LLVM Developer’s meeting</a>.</li></ul></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Thanks,</div><div class=""><br class=""></div><div class="">JF</div><div class=""><br class=""></div></div></div></body></html>