[darcs-users] ghc support policy (Was: darcs patch: Add Repository IO monad, RIO. (and 1 more))

David Roundy droundy at darcs.net
Thu Sep 4 10:54:51 UTC 2008


On Wed, Sep 3, 2008 at 2:03 PM, Eric Kow <kowey at darcs.net> wrote:
> Hi all,
>
> On Wed, Sep 03, 2008 at 09:43:16 -0700, Jason Dagit wrote:
>> Are we still actively supporting 6.4?  Haven't the major linux
>> distributions moved on to 6.6 now?  It looks like 6.6 was released a
>> full 2 years ago (the last release of the 6.4 series was in oct of
>> 2006).  Also, unless someone is testing our builds on 6.4 it seems bad
>> to claim support for 6.4.
>
> Flip-flopping
> -------------
> On December 2006, we had a policy of supporting
> - whatever Debian stable has
> - the second to last major point release of GHC
> http://lists.osuosl.org/pipermail/darcs-devel/2006-December/005249.html
>
> I'm not sure what caused us to revisit this policy.  Perhaps one factor
> may have been an offhand remark by Zooko on 2008-05 that one of his
> users was still on Dapper Drake (now well over 2 years old) and could
> not build darcs 2.0.0 from source.
> http://lists.osuosl.org/pipermail/darcs-users/2008-May/012235.html
>
> Or maybe we just had other anecdotal evidence that GHC 6.4 was still
> in use.

Indeed, support from ghc 6.4 was revived due to bug reports from users
trying to compile with ghc 6.4,  one of  which reached me from  a user
down the hall, who  was running gentoo, and couldn't compile  darcs 2,
since his system was  still running ghc 6.4.  At leas, I think that
was the story.  It seemed odd, because gentoo is normally very
bleeding-edge.

David

> Another thing to note is that we effectively no longer support GHC 6.4
> on Windows (see src/Exec.lhs for details).  We could easily enough, but
> we decided it wasn't worth the effort.

It's effectively impossible to support  a platform that no one uses,
and very hard to  support a platform that no developers use.

> Perhaps it is time to develop a clear policy on this issue and stick to
> it.  As Zooko has suggested, we could even use the buildbots to reflect
> that policy, i.e. whatever we platforms we say we support being whatever
> platforms we have slaves for.

As I've mentioned to Zooko before, I want darcs to work on (just
about) any system that people want to use it on, and don't intend to
limit support to users who are willing to run  buildbots.  On the
other hand, I do believe we've got buildbots for ghc 6.4.

> Costs and breaks
> ----------------
> For what it's worth, I am personally in favour of dropping support for
> GHC 6.4.  There have already been a handful of recent cases where we
> have revisited code in order to preserve GHC 6.4 compatibility.
>
>  * 2008-06-06: Darcs.Exec isInfixOf
>  * 2008-04-10: Zooko's forM_ patch
>  * 2008-01-12: Tommy's make_changelog fix
>  * 2007-12-11: David's ghc 6.4 fixes
>
> These may seem like minor changes, but they are also compounded by other
> hidden costs: having our code be less friendly to new darcs hackers
> (because of the configure, ifdef and Workaround clutter), and giving us
> that extra little bit of hesitation whenever we make a technical
> decision (oh we could do this, but it would break compatibility).
>
> The costs are not that huge, but on the balance I feel they outweigh the
> benefits of keeping GHC 6.4 support around.  As admirable a goal as it
> is to keep darcs working wherever people want to install it, we have
> reached a stage where it would better serve our users to focus on
> hacking darcs that keeping it fresh on old platforms.
>
> So let's make a clean break! :-)

I'd not oppose this if we can get a clear picture that noone is any
longer running ghc 6.4.  If they are, then it seems worth allowing
them  to continue using updated  versions of darcs.  The trouble, of
course, is that it's very, very hard to know  what compiler folks  are
using.   Maybe we could integrate some sort of optional phone-home
capability in the build sequence, which could report on what compilers
are being used?

David


More information about the darcs-users mailing list