RE: GHC 7.8 release?

2013-02-09 Thread Simon Peyton-Jones
If there's a path to having a release strategy as Manuel suggests, and having 
an intermediate release  with the new vector primops, type extensions and such 
goodness, then I'm all for it.  A lot of these bits are things ill start using 
almost immediately in production / real software, esp if I'm not needing to 
patch every stable library beyond maybe relaxing versioning constraints.
Let me suggest once more a possible path, along the lines you suggest

·For people who value stability: use the Haskell Platform.  Ignore GHC 
releases.

·For people who want as many features as possible: use GHC releases.

·For people who want to live on the bleeding edge: build HEAD from 
source


The Haskell Platform decides which GHC release to use, advertises that to 
package authors who do whatever updates are needed.  HP may perfectly sensibly 
skip an entire release entirely.

In short, I think we already have the situation that you desire.  Perhaps we 
just need to market it better?

Or am I mistaken?

Simon

From: Carter Schonwald [mailto:carter.schonw...@gmail.com]
Sent: 09 February 2013 02:45
To: Manuel Chakravarty
Cc: GHC Users List; ghc-d...@haskell.org; Andreas Voellmy; Simon Peyton-Jones; 
Edsko de Vries; Mark Lentczner; Johan Tibell; parallel-haskell
Subject: Re: GHC 7.8 release?


+10^100 to Johan and Manuel. Breaking changes on pieces that aren't 
experimental is the main compatibility / new version pain,

and I say this as someone who's spent time before and around the 7.4 and 7.6 
releases testing out lots of major packages and sending a few patches to 
various maintainers.

If there's a path to having a release strategy as Manuel suggests, and having 
an intermediate release  with the new vector primops, type extensions and such 
goodness, then I'm all for it.  A lot of these bits are things ill start using 
almost immediately in production / real software, esp if I'm not needing to 
patch every stable library beyond maybe relaxing versioning constraints.

-Carter
On Feb 8, 2013 9:05 PM, Manuel M T Chakravarty 
c...@cse.unsw.edu.aumailto:c...@cse.unsw.edu.au wrote:
I completely agree with Johan. The problem is to change core APIs too fast. 
Adding, say, SIMD instructions or having a new type extension (that needs to be 
explicitly activated with a -X option) shouldn't break packages.

I'm all for restricting major API changes to once a year, but why can't we have 
multiple updates to the code generator per year or generally release that don't 
affect a large number of packages on Hackage?

Manuel

Johan Tibell johan.tib...@gmail.commailto:johan.tib...@gmail.com:
On Fri, Feb 8, 2013 at 6:28 AM, Simon Marlow 
marlo...@gmail.commailto:marlo...@gmail.com wrote:
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.

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.

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!

I think we want to decouple GHC major releases (as in, we did lots of work) 
from API breaking releases. For example, GCC has lots of major (or big) 
releases, but rarely, if ever, break programs.

I'd be delighted to see a release once in a while that made my programs 
faster/smaller/buggy without breaking any of them.

-- Johan

___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: GHC 7.8 release?

2013-02-09 Thread Simon Marlow
I agree too - I think it would be great to have non-API-breaking 
releases with new features.  So let's think about how that could work.


Some features add APIs, e.g. SIMD adds new primops.  So we have to 
define non-API-breaking as a minor version bump in the PVP sense; that 
is, you can add to an API but not change it.


As a straw man, let's suppose we want to do annual API releases in 
September, with intermediate non-API releases in February.  Both would 
be classed as major, and bump the GHC major version, but the Feb 
releases would only be allowed to bump minor versions of packages. 
(except perhaps the version of the GHC package, which is impossible to 
keep stable if we change the compiler).


So how to manage the repos.  We could have three branches, but that 
doesn't seem practical.  Probably the best way forward is to develop new 
features on separate branches and merge them into master at the 
appropriate time - i.e. API-breaking feature branches could only be 
merged in after the Feb release.


Thoughts?

Cheers,
Simon

On 09/02/13 02:04, Manuel M T Chakravarty wrote:

I completely agree with Johan. The problem is to change core APIs too
fast. Adding, say, SIMD instructions or having a new type extension
(that needs to be explicitly activated with a -X option) shouldn't break
packages.

I'm all for restricting major API changes to once a year, but why can't
we have multiple updates to the code generator per year or generally
release that don't affect a large number of packages on Hackage?

Manuel

Johan Tibell johan.tib...@gmail.com mailto:johan.tib...@gmail.com:

On Fri, Feb 8, 2013 at 6:28 AM, Simon Marlow marlo...@gmail.com
mailto:marlo...@gmail.com wrote:

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.

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.

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!


I think we want to decouple GHC major releases (as in, we did lots
of work) from API breaking releases. For example, GCC has lots of
major (or big) releases, but rarely, if ever, break programs.

I'd be delighted to see a release once in a while that made my
programs faster/smaller/buggy without breaking any of them.

-- Johan





___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: GHC 7.8 release?

2013-02-09 Thread Brandon Allbery
On Sat, Feb 9, 2013 at 6:27 AM, Simon Peyton-Jones simo...@microsoft.comwrote:

 In short, I think we already have the situation that you desire.  Perhaps
 we just need to market it better?  

 ** **

 Or am I mistaken?


Except the current question is about how ghc releases interact with the
Platform; this thread was set off by a question about getting 7.6.2 into
the next Platform

And the main issue there is that ghc releases tend to break things and need
a lot of testing in general to make it into the Platform; while this would
be expected anyway, even a point release (7.6.2 vs. 7.6.1) of ghc tends to
be moderately violent with respect to the Platform.  Ideally, such a point
release should not be difficult to slot in because it should be compatible
modulo bug fixes, but with ghc's release strategy nobody has any confidence
in it being that simple.

-- 
brandon s allbery kf8nh   sine nomine associates
allber...@gmail.com  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


Re: GHC 7.8 release?

2013-02-09 Thread Ian Lynagh
On Sat, Feb 09, 2013 at 12:06:12PM +, Simon Marlow wrote:
 
 As a straw man, let's suppose we want to do annual API releases in
 September, with intermediate non-API releases in February.

That's a non-API release 5 months after the API release.

6.10.2 was 5   months after 6.10.1 (.3 was 1 month later, .4 a further 2)
6.12.2 was 4   months after 6.12.1 (.3 was 2 months later)
 7.0.2 was 3.5 months after  7.0.1 (.3 was 1 month later, .4 a further 3)
 7.2.2 was 3   months after  7.2.1
 7.4.2 was 4   months after  7.4.1
 7.6.2 was 4.5 months after  7.6.2

so if we do non-API releases, then perhaps it would make sense to stop
doing minor releases (unless a release turns out to just be broken).


Thanks
Ian


___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users