backward compatibility

Kazu Yamamoto ( 山本和彦 ) kazu at
Thu Jan 20 03:32:11 CET 2011


I have been using GHC HEAD for some months and am suffering from the
breaks of backward compatibility. 

1) MANY packages cannot be complied with GHC HEAD because of lack of
FlexibleInstances and BangPatterns.

2) The network package on github cannot be compiled because the layout
handling of GHC HEAD became more severe. For instance, here is such
code from Network/Socket.hsc.

    allocaBytes (2 * sizeOf (1 :: CInt)) $ \ fdArr -> do
    _ <- throwSocketErrorIfMinus1Retry "socketpair" $
                c_socketpair (packFamily family)
                             (packSocketType stype)
                             protocol fdArr

Of course, indentation is necessary before "_". But this can be
compiled with GHC 7.0.1 but cannot with GHC HEAD.

I sent feedback to some maintainers of packages. Some quickly fixed it and
registered it again. But others did not respond. That is reality.

So, my question is why GHC HEAD does not maintain backward
compatibility? What are befits for giving it up?


More information about the Glasgow-haskell-users mailing list