how to checkout proper submodules

Austin Seipp aseipp at pobox.com
Thu Aug 22 21:31:01 CEST 2013


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's a very big problem.

Right now, it is far too late into release cycle to do anything drastic I'm
afraid. Once we branch, we can feasibly start making good changes in this
direction. One problem however is that we don'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:
http://ghc.haskell.org/trac/ghc/wiki/GitSubmoduleProblem

For a short recap, here is what I think:

 1) Several repositories should really just become part of GHC's
repository. I'd argue that includes testsuite, nofib, and several others
(integer-gmp/integer-simple, hpc, etc.) They don'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.

 2) Several more should become submodules, where 'more' = 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 'own' them, as it is.

 3) 'base' and 'ghc-prim' 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'm not sure what to do here. Making them a
submodule is realistic, but I'm honestly a little afraid of submodules for
a package which is so highly traffic'd by developers (another reason I
don't want e.g. testsuite as a submodule, either.)

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'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 & 2 should cover a large part the
current setup, and most repos are very low traffic. Also, I'd like to take
the time to have a discussion with Edward Kmett (who I have CC'd) about
point 2 to make sure we're on the same page here. But I haven't done this
yet.

Point 3 seems to really be the most contentious, since a few other things
come with it. Should we give up on 'base' being usable by other compilers?
Historically that's why it's separate. But really it's easy to write code
against 'base' 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.

Regardless of point 3 and all that, something should and will be done soon.
I'll put this up on the wiki later when I have time. We just need a
directly spelled out plan of attack.



On Thu, Aug 22, 2013 at 2:04 PM, Ryan Newton <rrnewton at gmail.com> wrote:

> Hi all,
>
> I just reread this thread again.  Is this one of these situations where *almost
> everyone agrees, but the fix just didn't happen*?
>
> 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 *testsuite at least *a sub-module?  If we count this
> long email thread as rough consensus, is it just waiting on someone of
> sufficient authority typing a "git submodule add" command (and tweaking
> sync-all accordingly)?
>
> Also, Jan'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).
>
> Best,
>   -Ryan
>
>
>
>
>
> On Wed, Jun 5, 2013 at 2:02 PM, Jan Stolarek <jan.stolarek at p.lodz.pl>wrote:
>
>> I think that testsuite should be included in the main GHC repo. I don't
>> recall any other project
>> that has its tests placed in a separate repository. The nhc argument
>> doesn't convince me - after
>> all, most test that are added nowadays are GHC specific.
>>
>> Janek
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://www.haskell.org/mailman/listinfo/ghc-devs
>>
>
>


-- 
Regards,
Austin - PGP: 4096R/0x91384671
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130822/b4e42a2b/attachment.htm>


More information about the ghc-devs mailing list