<div dir="ltr">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.<div>
<br></div><div>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">http://ghc.haskell.org/trac/ghc/wiki/GitSubmoduleProblem</a></div>
<div><br></div><div>For a short recap, here is what I think:</div><div><br></div><div> 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.</div>
<div><br></div><div> 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.</div>
<div><br></div><div> 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.)</div>
<div><br></div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>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.</div><div><br></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 22, 2013 at 2:04 PM, Ryan Newton <span dir="ltr">&lt;<a href="mailto:rrnewton@gmail.com" target="_blank">rrnewton@gmail.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 dir="ltr">Hi all,<div><br></div><div>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>?</div>
<div><br></div><div>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)?</div>



<div><br></div><div>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).</div>



<div><br></div><div>Best,</div><div>  -Ryan<br><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Wed, Jun 5, 2013 at 2:02 PM, Jan Stolarek <span dir="ltr">&lt;<a href="mailto:jan.stolarek@p.lodz.pl" target="_blank">jan.stolarek@p.lodz.pl</a>&gt;</span> wrote:<br>



</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">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<br>
</div></div><div><div><br><div class="im">
_______________________________________________<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><br>
</div></div></div></blockquote></div><br></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Regards,<br>Austin - PGP: 4096R/0x91384671</div>
</div>