--
You received this message because you are subscribed to the Google Groups "haskell-core-libraries" group.
To unsubscribe from this group and stop receiving emails from it, send an email to haskell-core-libr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Taking semigroups as the concrete example: people will be able to get backwards compatibility with -Wall clean builds and no CPP if they just add semigroups to their build-depends, correct?* New requirement: easily have minimal package dependencies, without any cabal flag conditional business* Support every GHC versions with -Wall and no CPP* Maintain support for 3 GHC versionsThis sounds good to me. I like the idea of giving longer windows in general, and having that in mind may push us to think of better ways to avoid breakage. But I also agree that making this window a requirement would tie everyone's hands too much.I'm also OK with cheating the clock. As I see it, we'd end up having *three* separate library maintainer goals necessary in order to make "cheating the clock" a burden:
On Tue, Oct 13, 2015 at 12:42 AM, Michael Snoyman <mic...@snoyman.com> wrote:Taking semigroups as the concrete example: people will be able to get backwards compatibility with -Wall clean builds and no CPP if they just add semigroups to their build-depends, correct?* New requirement: easily have minimal package dependencies, without any cabal flag conditional business* Support every GHC versions with -Wall and no CPP* Maintain support for 3 GHC versionsThis sounds good to me. I like the idea of giving longer windows in general, and having that in mind may push us to think of better ways to avoid breakage. But I also agree that making this window a requirement would tie everyone's hands too much.I'm also OK with cheating the clock. As I see it, we'd end up having *three* separate library maintainer goals necessary in order to make "cheating the clock" a burden:Correct. I'm not _that_ concerned with shaving down the timeline. I think I'd be happy either way. Even if we decided to accept cheating the clock, anything involved is going to see an 8.4 era 'final release' at the earliest. If haskell-prime is going to target a Haskell2017 report, then that may be a reason to push things forward to line up with an 8.4. If it winds up a Haskell2018, then that may be a reason to push it back.Perhaps it is too much of reactionary move to try to give all of the ground here in the interest of soothing any nerves frayed by way of the AMP and FTP. That said, I think it wouldn't hurt to show that we can exercise restraint. There is after all a decent amount of overlap between the crowd upset about language changes and the crowd upset by dependencies. Showing that we _can_ manage the set of changes under consideration in a manner that satisfies all of those guidelines seems to me to be a worthy precedent to set.
I’m delighted that the CLC is having this conversation – thank you.
One idea I floated in another thread is that of “batching” disruptive library changes, where by “disruptive” I mean things that are likely to force many library authors to make changes. Would there be merit in
· Discussing a change (eg the monad of no return)
· Prototyping it
· Designing it in detail
· But then putting it in a pile of things to release in a batch
I think what people hate is a trickle of changes, each of which brings only minor benefit. Having fewer disruptive updates would (a) reduce the change load, and (b) increase the payoff from the change.
How often is a batch? Maybe every 2 or 3 years. One is too short.
We need to find a way to reduce the pain of library change, without freezing the language so that past mis-steps are irredeemable. Maybe this would be one way
Simon
I’m delighted that the CLC is having this conversation – thank you.
One idea I floated in another thread is that of “batching” disruptive library changes, where by “disruptive” I mean things that are likely to force many library authors to make changes. Would there be merit in
· Discussing a change (eg the monad of no return)
· Prototyping it
· Designing it in detail
· But then putting it in a pile of things to release in a batch
I think what people hate is a trickle of changes, each of which brings only minor benefit. Having fewer disruptive updates would (a) reduce the change load, and (b) increase the payoff from the change.
How often is a batch? Maybe every 2 or 3 years. One is too short.