<div dir="ltr">Ok, resuming after release makes sense.<div><br></div><div>Regarding whether it reached a conclusion:</div><div><br></div><div>What struck me about this particular discussion was the *lack* of disagreement (relative to say, the records debate).  It seemed like no one was arguing for the status quo and just about everyone agreed that moving to all-submodules is better than the current mix.</div>

<div><br></div><div>Still, one could argue that making an improvement is premature if (1) there is significant transition cost to make the change, or (2) it puts you on some kind of local optima that makes it harder to get to a higher peak.  Yet in the case of all-submodules vs. ugly-mix, the transition cost is very low, and it doesn&#39;t preclude any future improvements.  (For example, it is completely reasonable to later decide to copy certain modules into the tree rather than using submodules.)</div>

<div><br></div><div>But maybe I&#39;m under-estimating the severity of the anti-submodule grumbling... that is, I may not not be accurately distinguishing the &quot;submodules have their annoyances but they are the lesser evil&quot; opinion from &quot;I will adamantly oppose adding any more submodules&quot;.</div>

<div><br></div><div>Best,</div><div>  -Ryan</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 22, 2013 at 4:14 PM, Simon Peyton-Jones <span dir="ltr">&lt;<a href="mailto:simonpj@microsoft.com" target="_blank">simonpj@microsoft.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-GB" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">There was a long discussion about this a couple of months ago.  It did not reach a conclusion, but it is merely parked, not abandoned.
 I hope that you can all pick it up again after the release.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d">Simon<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> ghc-devs [mailto:<a href="mailto:ghc-devs-bounces@haskell.org" target="_blank">ghc-devs-bounces@haskell.org</a>]
<b>On Behalf Of </b>Austin Seipp<br>
<b>Sent:</b> 22 August 2013 20:31<br>
<b>To:</b> Ryan Newton<br>
<b>Cc:</b> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a>; Edward Kmett<br>
<b>Subject:</b> Re: how to checkout proper submodules<u></u><u></u></span></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Simon and I discussed this a little today. I think there are several legitimate points made throughout the threads here, but the problem is clear: consistent builds are difficult, if not legitimately impossible. That&#39;s a very big problem.<u></u><u></u></p>


<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Right now, it is far too late into release cycle to do anything drastic I&#39;m afraid. Once we branch, we can feasibly start making good changes in this direction. One problem however is that we don&#39;t even have a clear writeup over what all
 the relevant points are (aside from this + all the ranting I did elsewhere, which is loosely in my head still.) Earlier today, I preemptively created this page, but have not jotted down any of my notes: <a href="http://ghc.haskell.org/trac/ghc/wiki/GitSubmoduleProblem" target="_blank">http://ghc.haskell.org/trac/ghc/wiki/GitSubmoduleProblem</a><u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">For a short recap, here is what I think:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"> 1) Several repositories should really just become part of GHC&#39;s repository. I&#39;d argue that includes testsuite, nofib, and several others (integer-gmp/integer-simple, hpc, etc.) They don&#39;t need to be submodules and making them so is unnecessary
 complexity, when they can realistically never be used with anything else. This cuts down on something like 10 repositories, IIRC.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"> 2) Several more should become submodules, where &#39;more&#39; = the libraries under the new Core Libraries Committee. They will be taking over several of the other free floating repositories that are not currently submodules. We no longer will
 &#39;own&#39; them, as it is.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"> 3) &#39;base&#39; and &#39;ghc-prim&#39; are up for more debate it seems. Roman wants them in particular for haskell-suite, but really he only wants a repository to work with from what I remember. I&#39;m not sure what to do here. Making them a submodule
 is realistic, but I&#39;m honestly a little afraid of submodules for a package which is so highly traffic&#39;d by developers (another reason I don&#39;t want e.g. testsuite as a submodule, either.)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">The first two points alone should help a lot in making builds more reliable and reproducible, but it will require changes in the development workflow. In particular, it&#39;s much easier to lose work with submodules - especially for those among
 us who are not Git masters. So we should take the time to clearly explain all of this. But 1 &amp; 2 should cover a large part the current setup, and most repos are very low traffic. Also, I&#39;d like to take the time to have a discussion with Edward Kmett (who I
 have CC&#39;d) about point 2 to make sure we&#39;re on the same page here. But I haven&#39;t done this yet.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Point 3 seems to really be the most contentious, since a few other things come with it. Should we give up on &#39;base&#39; being usable by other compilers? Historically that&#39;s why it&#39;s separate. But really it&#39;s easy to write code against &#39;base&#39;
 that will never work with another compiler anyway. But maybe that can be fixed. And will the base split - also slated for post 7.8 - also change the ownership of significant parts of the library, based on how it is implemented? There were several things floating
 around this.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Regardless of point 3 and all that, something should and will be done soon. I&#39;ll put this up on the wiki later when I have time. We just need a directly spelled out plan of attack.<u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<div>
<p class="MsoNormal">On Thu, Aug 22, 2013 at 2:04 PM, Ryan Newton &lt;<a href="mailto:rrnewton@gmail.com" target="_blank">rrnewton@gmail.com</a>&gt; wrote:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal">Hi all,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I just reread this thread again.  Is this one of these situations where
<b>almost everyone agrees, but the fix just didn&#39;t happen</b>?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">In particular, there is still no formal relationship between versions of the compiler and versions of the testsuite that tests it -- that seems odd!  Can we please make
<b>testsuite at least </b>a sub-module?  If we count this long email thread as rough consensus, is it just waiting on someone of sufficient authority typing a &quot;git submodule add&quot; command (and tweaking sync-all accordingly)?<u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Also, Jan&#39;s suggestion sounded good -- that once all child repos are git submodules then sync-all can be replaced with something that helps out with git submodule branching, as it helps out with multi-repo branching now (a little bit).<u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Best,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">  -Ryan<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<div>
<div>
<div>
<p class="MsoNormal">On Wed, Jun 5, 2013 at 2:02 PM, Jan Stolarek &lt;<a href="mailto:jan.stolarek@p.lodz.pl" target="_blank">jan.stolarek@p.lodz.pl</a>&gt; wrote:<u></u><u></u></p>
</div>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal">I think that testsuite should be included in the main GHC repo. I don&#39;t recall any other project<br>
that has its tests placed in a separate repository. The nhc argument doesn&#39;t convince me - after<br>
all, most test that are added nowadays are GHC specific.<br>
<br>
Janek<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/ghc-devs" target="_blank">http://www.haskell.org/mailman/listinfo/ghc-devs</a><u></u><u></u></p>
</div>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">-- <u></u><u></u></p>
<div>
<p class="MsoNormal">Regards,<br>
Austin - PGP: 4096R/0x91384671<u></u><u></u></p>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>