Final bikeshedding call: Fixing Control.Exception.bracket

Bardur Arantsson spam at scientician.net
Thu Nov 13 05:55:55 UTC 2014


On 2014-11-13 04:25, Gregory Collins wrote:
> On Wed, Nov 12, 2014 at 6:37 PM, John Lato <jwlato at gmail.com> wrote:
> 
>> Do you think the current resource leaking issue is not particularly
>> significant, or do you tend to think it's an issue that should be fixed,
>> but you're weighting the unknown costs much more than I am?
> 
> 
> I'm just change averse :)
> 
> We have traditionally been very cavalier in the Haskell community about
> gratuitously changing APIs in ways that break user code, and in my opinion
> this is very bad and creates a perception for users that choosing Haskell
> is just going to end up creating work for them. In this regard I think it's
> very good to be conservative -- this function has been documented to behave
> in a certain way and you can be sure that somebody, somewhere relies on
> that behavior.
> 

I can certainly understand this perspective and *ordinarily* I'd agree
with the stance that compatibility shouldn't be broken willy-nilly.

That said, popularity isn't everything. Sometimes correctness *must*
trump the convenience of not having to change client code. And clearly
people haven't been leaving Haskell in droves on these grounds, so....

> Normally I argue strongly for this perspective (because it feels like few
> people do) on less serious things like changing function types or names,
> because those things break builds and cause people to scramble to restore
> their libraries to compatibility all at once after the GHC release. The
> consequences of *this* particular change, however, have the potential to be
> a lot worse than just making busywork for people: programs will silently
> continue to compile and then start deadlocking in mysterious (and likely
> rare/"race-condition-y") ways.
> 

... but such code is already broken in a *worse* way, namely in a
hard-to-discover and hard-to-debug way. I'll take a nearly-instantly
reproducible deadlock over a "reproducible-only-once-in-a-blue-moon"
resource leak bug any day.

This is what convinced me (and others) the last time around. What's
changed since the last time this was discussed?

Regards,




More information about the Libraries mailing list