<div dir="ltr">This seems to have the wrong Differential Revision tag and closed the wrong review.</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div>
<br><div class="gmail_quote">On Fri, Jan 26, 2018 at 1:43 PM, Adrian Prantl via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: adrian<br>
Date: Fri Jan 26 13:43:14 2018<br>
New Revision: 323565<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=323565&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=323565&view=rev</a><br>
Log:<br>
Update GSOC project list for LLDB.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D41832" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D41832</a><br>
<br>
Modified:<br>
    www/trunk/OpenProjects.html<br>
<br>
Modified: www/trunk/OpenProjects.html<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/www/trunk/OpenProjects.html?rev=323565&r1=323564&r2=323565&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/www/trunk/<wbr>OpenProjects.html?rev=323565&<wbr>r1=323564&r2=323565&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- www/trunk/OpenProjects.html (original)<br>
+++ www/trunk/OpenProjects.html Fri Jan 26 13:43:14 2018<br>
@@ -6,6 +6,20 @@<br>
   <li><a href="#gsoc18">Google Summer of Code 2018</a><br>
     <ul><br>
     <li><br>
+    <a href="<a href="http://lldb.llvm.org/" rel="noreferrer" target="_blank">http://lldb.llvm.org/</a>"><<wbr>b>LLDB</b></a><ul><br>
+      <li><a href="#lldb-reimplement-lldb-<wbr>mi">Reimplement lldb-mi on top of the<br>
+          LLDB public API</a><br>
+      </li><br>
+<br>
+      <li><a href="#lldb-reimplement-lldb-<wbr>cmdline">Reimplement LLDB's<br>
+          command-line commands using the public SB API.</a><br>
+      </li><br>
+      <li><a href="#lldb-batch-testing">Add support for batch-testing to the LLDB<br>
+          testsuite.</a><br>
+        </li><br>
+    </ul><br>
+    </li><br>
+    <li><br>
         <b>Others</b><br>
         <ul><br>
             <li><a href="#apt">Integrate libc++ and OpenMP in <a href="http://apt.llvm.org" rel="noreferrer" target="_blank">apt.llvm.org</a></a><br>
@@ -59,12 +73,6 @@<br>
       </li><br>
     </ul><br>
     </li><li><br>
-    <a href="<a href="http://lldb.llvm.org/" rel="noreferrer" target="_blank">http://lldb.llvm.org/</a>"><<wbr>b>LLDB</b></a><ul><br>
-      <li><a href="#lldb-reimplement-lldb-<wbr>mi">Reimplement lldb-mi on top of the<br>
-          LLDB public API</a><br>
-      </li><br>
-    </ul><br>
-    </li><li><br>
     <a href="<a href="http://lld.llvm.org/" rel="noreferrer" target="_blank">http://lld.llvm.org/</a>"><<wbr>b>LLD</b></a><ul><br>
       <li><a href="#lld_layout">Improve Code Layout</a><br>
       </li><br>
@@ -150,6 +158,102 @@ main <a href="<a href="https://developers.google" rel="noreferrer" target="_blank">https://developers.<wbr>google</a>.<br>
<br>
<br>
 <!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<div class="www_subsection"><br>
+  <a>LLDB</a><br>
+</div><br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<div class="www_subsubsection"><br>
+  <a name="lldb-reimplement-lldb-<wbr>cmdline">Reimplement LLDB's command-line commands<br>
+  using the public SB API.</a><br>
+</div><br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<br>
+<div class="www_text"><br>
+  <p><b>Description of the project: </b> Just as LLVM is a library to<br>
+    build compilers, LLDB is a library to build debuggers. LLDB vends<br>
+    a stable, public SB API. Due to historic reasons the LLDB command<br>
+    line interface is currently implemented on top of LLDB's private<br>
+    API and it duplicates a lot of functionality that is already<br>
+    implemented in the public API. Rewriting LLDB's command line<br>
+    interface on top of the public API would simplify the<br>
+    implementation, eliminate duplicate code, and most importantly<br>
+    reduce the testing surface.<br>
+  </p><br>
+  <p><br>
+    This work will also provide an opportunity to clean up the SB API<br>
+    of commands that have accrued too many overloads over time and<br>
+    convert them to make use of option classes to both gather up all<br>
+    the variants and also future-proof the APIs.<br>
+  </p><br>
+  <p><b>Confirmed Mentor:</b>Adrian Prantl and Jim Ingham</p><br>
+<br>
+  <p><b>Desirable skills:</b><br>
+    Intermediate knowledge of C++.<br>
+  </p><br>
+</div><br>
+<br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<div class="www_subsubsection"><br>
+  <a name="lldb-reimplement-lldb-<wbr>mi">Reimplement lldb-mi on top of the LLDB<br>
+    public SB API.</a><br>
+</div><br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<br>
+<div class="www_text"><br>
+  <p><b>Description of the project: </b> <em>lldb-mi</em> implements a<br>
+    machine-readable interface that is supported by many IDEs and text<br>
+    editors. The current support is incomplete and does not implement<br>
+    enough commands to work with most text editors. More importantly,<br>
+    it isn't using the right abstraction layer: Instead of executing<br>
+    textual commands via <em>handleCommand()</em> and scraping LLDB's<br>
+    textual output, it should be using the methods and data structures<br>
+    provided by the public SB API.<br>
+  </p><br>
+  <p><b>Confirmed Mentor:</b> Adrian Prantl</p><br>
+<br>
+  <p><b>Desirable skills:</b><br>
+    Intermediate knowledge of C++.<br>
+  </p><br>
+</div><br>
+<br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<div class="www_subsubsection"><br>
+  <a name="lldb-batch-testing">Add support for batch-testing to the LLDB<br>
+    testsuite.</a><br>
+</div><br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
+<br>
+<div class="www_text"><br>
+  <p><b>Description of the project: </b>One of the tensions in the<br>
+    testsuite is that spinning up a process and getting it to some<br>
+    point is not a cheap operation, so you'd like to do a bunch of<br>
+    tests when you get there.  But the current testsuite bails at the<br>
+    first failure, so you don't want to do many tests since the<br>
+    failure of one fails all the others. On the other hand, there are<br>
+    some individual test assertions where the failure of the assertion<br>
+    <em>should</em> cause the whole test to fail.  For example, if you<br>
+    fail to stop at a breakpoint where you want to check some variable<br>
+    values, then the whole test should fail.  But if your test then<br>
+    wants to check the value of five independent locals, it should be<br>
+    able to do all five, and then report how many of the five variable<br>
+    assertions failed. We could do this by adding <em>Start</em><br>
+    and <em>End</em> markers for a batch of tests, do all the tests in<br>
+    the batch without failing the whole test, and then report the<br>
+    error and fail the whole test if appropriate. There might also be<br>
+    a nice way to do this in Python using scoped objects for the test<br>
+    sections.<br>
+  </p><br>
+  <p><b>Confirmed Mentor:</b> Jim Ingham</p><br>
+<br>
+  <p><b>Desirable skills:</b><br>
+    Intermediate knowledge of Python.<br>
+  </p><br>
+</div><br>
+<br>
+<br>
+<!-- ******************************<wbr>******************************<wbr>*********** --><br>
 <div class="www_sectiontitle"><br>
   <a name="gsoc17">Google Summer of Code 2017</a><br>
 </div><br>
@@ -567,33 +671,6 @@ accepted and completed projects, please<br>
<br>
 <!-- ******************************<wbr>******************************<wbr>*********** --><br>
 <div class="www_subsection"><br>
-  <a>LLDB</a><br>
-</div><br>
-<!-- ******************************<wbr>******************************<wbr>*********** --><br>
-<br>
-<!-- ******************************<wbr>******************************<wbr>*********** --><br>
-<div class="www_subsubsection"><br>
-  <a name="lldb-reimplement-lldb-<wbr>mi">Reimplement lldb-mi on top of the LLDB<br>
-    public API.</a><br>
-</div><br>
-<!-- ******************************<wbr>******************************<wbr>*********** --><br>
-<br>
-<div class="www_text"><br>
-  <p><b>Description of the project: </b><br>
-    lldb-mi implements a machine-readable interface that is supported by many<br>
-    IDEs. The current support is very incomplete and isn't using the right<br>
-    abstraction layer. Instead of scraping LLDB's textual output, it should be<br>
-    using the data structures provided by the public API.<br>
-  </p><br>
-  <p><b>Confirmed Mentor:</b> Adrian Prantl, Greg Clayton</p><br>
-<br>
-  <p><b>Desirable skills:</b><br>
-    Intermediate knowledge of C++.<br>
-  </p><br>
-</div><br>
-<br>
-<!-- ******************************<wbr>******************************<wbr>*********** --><br>
-<div class="www_subsection"><br>
   <a>LLD</a><br>
 </div><br>
 <!-- ******************************<wbr>******************************<wbr>*********** --><br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>