<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">For a while we've been doing one major
release per year, and 1-2 minor releases. We have a big sign at
the top of the download page directing people to the platform. We
arrived here after various discussions in the past - there were
always a group of people that wanted stability, and a roughly
equally vocal group of people who wanted the latest bits. So we
settled on one API-breaking change per year as a compromise.<br>
<br>
Since then, the number of packages has ballooned, and there's a
new factor in the equation: the cost to the ecosystem of an
API-breaking release of GHC. All that updating of packages
collectively costs the community a lot of time, for little
benefit. Lots of package updates contributes to Cabal Hell. The
package updates need to happen before the platform picks up the
GHC release, so that when it goes into the platform, the packages
are ready.<br>
<br>
So I think, if anything, there's pressure to have fewer major
releases of GHC. However, we're doing the opposite: 7.0 to 7.2
was 10 months, 7.2 to 7.4 was 6 months, 7.4 to 7.6 was 7 months.
We're getting too efficient at making releases!<br>
<br>
My feeling is that this pace is too fast. You might argue that
with better tools and infrastructure the community wouldn't have
so much work to do for each release, and I wholeheartedly agree.
Perhaps if we stop releasing GHC so frequently they'll have time
to work on it :) Releasing early and often is great, but at the
moment it's having negative effects on the ecosystem (arguably due
to deficiencies in the infrastructure).<br>
<br>
Does this strike a chord with anyone, or have I got the wrong
impression and everyone is happy with the pace?<br>
<br>
Cheers,<br>
Simon<br>
<br>
On 07/02/13 18:15, Simon Peyton-Jones wrote:<br>
</div>
<blockquote
cite="mid:59543203684B2244980D7E4057D5FBC14772D1A8@DB3EX14MBXC312.europe.corp.microsoft.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 14 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Verdana","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:289897933;
        mso-list-type:hybrid;
        mso-list-template-ids:-995077858 134807553 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:1225992827;
        mso-list-template-ids:-420553648;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">It’s
fairly simple in my mind. There are two “channels” (if I
understand Mark’s terminology right):<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoListParagraph"
style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:Symbol;color:#1F497D"><span
style="mso-list:Ignore">·<span style="font:7.0pt
"Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Haskell
Platform:<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l0
level2 lfo2">
<!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Courier
New";color:#1F497D"><span style="mso-list:Ignore">o<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">A
stable development environment, lots of libraries known to
work<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l0
level2 lfo2">
<!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Courier
New";color:#1F497D"><span style="mso-list:Ignore">o<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Newcomers,
and people who value stability, should use the Haskell
Platform<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l0
level2 lfo2">
<!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Courier
New";color:#1F497D"><span style="mso-list:Ignore">o<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">HP
comes with a particular version of GHC, probably not the
hottest new one, but that doesn’t matter. It works.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:72.0pt"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoListParagraph"
style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:Symbol;color:#1F497D"><span
style="mso-list:Ignore">·<span style="font:7.0pt
"Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">GHC
home page downloads:<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l0
level2 lfo2">
<!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Courier
New";color:#1F497D"><span style="mso-list:Ignore">o<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">More
features but not so stable<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l0
level2 lfo2">
<!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Courier
New";color:#1F497D"><span style="mso-list:Ignore">o<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Libraries
not guaranteed to work<o:p></o:p></span></p>
<p class="MsoListParagraph"
style="margin-left:72.0pt;text-indent:-18.0pt;mso-list:l0
level2 lfo2">
<!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Courier
New";color:#1F497D"><span style="mso-list:Ignore">o<span
style="font:7.0pt "Times New Roman"">
</span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Worth
releasing, though, as a forcing function to fix bugs, and as
a checkpoint for people to test, so that by the time the HP
adopts a particular version it is reasonably solid.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">So
we already have the two channels Mark asks for, don’t we?
One is called the Haskell Platform and one is called the GHC
home page.
<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><br>
That leaves a PR issue: we really <i>don’t</i> want
newcomers or Joe Users wanting the “new shiny”. They want
the Haskell Platform, and as Mark says those users should
not pay the slightest attention until it appears in the
Haskell Platform.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">So
perhaps we principally need a way to point people away from
GHC and towards HP? eg We could prominently say at every
download point “Stop! Are you sure you want this? You
might be better off with the Haskell Platform! Here’s
why...”.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Have
I understood aright? If so, how could we achieve the right
social dynamics?
<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Our
goal is to let people who value stability get stability,
while the hot-shots race along in a different channel and
pay the price of flat tires etc.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">PS:
absolutely right to use 7.6.2 for the next HP. Don’t even
think about 7.8.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D">Simon<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Verdana","sans-serif";color:#1F497D"><o:p> </o:p></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 #B5C4DF
1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""
lang="EN-US">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""
lang="EN-US"> Mark Lentczner
[<a class="moz-txt-link-freetext" href="mailto:mark.lentczner@gmail.com">mailto:mark.lentczner@gmail.com</a>]
<br>
<b>Sent:</b> 07 February 2013 17:43<br>
<b>To:</b> Simon Peyton-Jones<br>
<b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:andreas.voellmy@gmail.com">andreas.voellmy@gmail.com</a>; Carter
Schonwald; GHC users; Simon Marlow; parallel-haskell;
<a class="moz-txt-link-abbreviated" href="mailto:kostirya@gmail.com">kostirya@gmail.com</a>; Edsko de Vries;
<a class="moz-txt-link-abbreviated" href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<b>Subject:</b> Re: GHC 7.8 release?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I'd say the window for 7.8 in the
platform is about closed. If 7.8 were to be release in the
next two weeks that would be just about the least amount
of time I'd want to see for libraries in the platform to
get all stable with the GHC version. And we'd also be
counting on the GHC team to be quickly responding to bugs
so that there could be a point release of 7.8 mid-April.
Historically, none of that seems likely.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">So my current trajectory is to base
HP 2013.2.0.0 on GHC 7.6.2.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Since 7.8 will seems like it will be
released before May, we will be faced again with the bad
public relations issue: Everyone will want the new shiny
and be confused as to why the platform is such a
laggard. We'll see four reactions:<o:p></o:p></p>
</div>
<div>
<ul type="disc">
<li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level1 lfo1">
New comers who are starting out and figure they should
use the latest... Many will try to use 7.8, half the
libraries on hackage won't work, things will be wonky,
and they'll have a poor experience.<o:p></o:p></li>
<li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level1 lfo1">
People doing production / project work will stay on
7.6 and ignore 7.8 for a few months.<o:p></o:p></li>
<li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level1 lfo1">
The small group of people exploring the frontiers will
know how to get things set up and be happy.<o:p></o:p></li>
<li class="MsoNormal"
style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1
level1 lfo1">
Eventually library authors will get around to making
sure their stuff will work with it.<o:p></o:p></li>
</ul>
<p class="MsoNormal">I wish GHC would radically change
it's release process. Things like 7.8 shouldn't be
release as "7.8". That sounds major and stable. The web
site will have 7.8 at the top. The warning to use
the platform will fall flat because it makes the
platform look out of date. Really, "7.8" should be in a
different release channel, not on the front page. It
should bake in that channel for six months - where only
the third group of people will use it, until it is
getting close to merge into main, at which point the
fourth group will start to use it, so that the day it
hits main, all the libraries just work. Ideally, the
first two groups of people will not pay the slightest
attention to it until it is further baked.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">While we achievements of the GHC team
are great, less than half of those 7.8 features seem
interesting from the viewpoint of the aims of
the platform. I don't think adding syntactic or
type-level features are really all that important for
Haskell at this juncture. And while I do like to see
improvements in generated code and run-time performance,
I think even those are less important than
making crucial ecosystem improvements to things like
package management, cross-compilation, and libraries.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">- Mark<o:p></o:p></p>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>