[Haskell-cafe] I do not want to be a bitch, but ghc-6.8.3 and haskell binary policy are really horrible.

Magicloud magicloud.magiclouds at gmail.com
Tue Oct 14 22:47:20 EDT 2008

My linux distribution does not have a ghc. It is customed by my company. 
So I have to install it from souce.
And the reason that some situation I did not descript clearly is that 
they are long time ago, I cannot remember the details....

John Van Enk wrote:
> Could you, perhaps, outline a little more of what you're trying to do? 
> I'm having a hard time seeing what exactly you're doing, and why you 
> can't use the package provided by your distribution.
> We'd love to help you, but you're not being very clear with what your 
> problem is.
> /jve
> On Tue, Oct 14, 2008 at 9:25 PM, Magicloud 
> <magicloud.magiclouds at gmail.com 
> <mailto:magicloud.magiclouds at gmail.com>> wrote:
>     Thank you for your reply.
>     So the main information I got is that cabal is not safe. And my
>     problems are all related to cabal, I think, dependency, ABI
>     version....
>     I hope everything could be better soon. At least, tools should not
>     block the way of producing.
>     Thomas Schilling wrote:
>         2008/10/14 Magicloud <magicloud.magiclouds at gmail.com
>         <mailto:magicloud.magiclouds at gmail.com>>:
>             Sorry, let me say it this way:
>             1. Ghc cannot be bootstrap-installed. And the ghc-6.8.3
>             binary from official
>             website also cannot run in my box, some kind of overflow
>             error. So I have to
>             look for help, a few hours later, I found 6.4.2 (I am not
>             sure) which runs
>             well in my box, and install ghc-6.8.3 indirectly.
>         Hm, the only issue with binary installers I had were old
>         versions of
>         some libraries which could be resolved by adding a few
>         symlinks.  What
>         system are you on?
>             2. After `cabal update && cabal upgrade`, ghc-6.8.3 cannot
>             be built.
>         Which version of cabal-install ( cabal --version ) are you using?
>         Note that 'cabal upgrade' is not guaranteed to work since
>         libraries on
>         hackage don't always specify their dependencies correctly and
>         older
>         versions of cabal-install might have some issues.  There's an
>         ongoing
>         initiative to have a set of more controlled packages, the Haskell
>         Platform.  It should soon has its first release.
>         That said, you shouldn't need to upgrade anything if you want
>         to build
>         ghc 6.8.3 with 6.4.2. <http://6.4.2.>  Also, what version of
>         ghc does you distribution
>         provide?
>             Lib
>             Network.URI cannot be compiled because:
>             Network/CGI/Protocol.hs:41:0:
>              Failed to load interface for `Network.URI':
>               Perhaps you haven't installed the profiling libraries
>             for package
>             network-
>               Use -v to see a list of the files searched for.
>             I remove this SUBDIRS from the Makefile, luckly, it works.
>             A few more hours
>             lost in my life.
>             3. When I `ghc -v`, there are lots of "hiding package xxx
>             to avoid conflict
>             with later version yyy", do I have a way to remove these
>             hiding packages?
>             And "package xx will be ignored due to missing or
>             recursive dependencies:
>             yy", what does this mean? If it is ignored, my program
>             using it compiled and
>             run well. If the dependencies are not right, how can I fix
>             it? I installed
>             this by cabal. It reports nothing wrong and cannot check
>             if all packages
>             dependencies are OK.
>             4. When `cabal upgrade`, I do not think it knows what it
>             is doing. There
>             were many times that I cannot upgrade because I should
>             manually reinstall
>             some packages to make it work (Some guy say that this is
>             because ghc cannot
>             know the difference between two lib files with the same
>             name). And, cabal
>             does not upgrade all packages, I do not know why.
>         The issue is binary compatibility.  At the moment, GHC cannot make
>         sure that a library compiled with an older GHC can work with a
>         newer
>         GHC.  GHC does many cross-module optimisations, and its
>         runtime system
>         changes occasionally, so it is very pessimistic in that
>         regard.  This
>         becomes an issue for packages that GHC has been build with itself
>         (like base, process, array), since these cannot be upgraded
>         without
>         recompiling GHC (hence requiring recompiling every other package).
>         Older versions of cabal-install could not deal with this
>         correctly.
>         So in short, "cabal upgrade" (without arguments) is probably
>         not very
>         safe, atm.
>         There are ongoing efforts to provide more ABI compatibility
>         guarantees, but that requires solving of some difficult issues, so
>         we're not there yet.
>         There are certainly some things that could be improved.  For
>         example
>         GHC 6.10 won't let you unregister a package that other
>         packages depend
>         on and it keeps checksums of the ABI which may be used by future
>         versions of Cabal/cabal-install.
>             5. Sometimes when I upgrade some libraries, ghc failed to
>             compile, because
>             ld failed to find the new libraries. (Which proves that
>             ghc cannot deal with
>             binary files right). I need to recompile this, and
>             recompile that, MAYBE it
>             would be resolved.
>         Without further details I can just guess, but I think this is
>         related
>         to the problems with binary compatibility above.
>             Everyday, I spend a few hours on compiling. Does it really
>             need to be so
>             terrible? With erlang or ruby, I never spend more time
>             debugging as
>             haskell's feature says but less time on how to run my code.
>         Many projects can just be loaded via ghci which is a lot
>         faster.  Just
>         cd to the toplevel source directory, type :l ModuleName.  Then
>         edit
>         the source code, and type :r to reload the current module.
>         With many of these smaller issues you can often find quick help on
>         Haskell's IRC channel #haskell or #ghc if you have problems
>         specific
>         to GHC (although asking at #haskell will often give you an
>         answer more
>         quickly, so ask there first anyway)
>         HTH,
>          Thomas
>             Thomas Schilling wrote:
>                 It would be helpful if you could describe exactly what
>                 you did so we
>                 can work on improving the issue in the long term (and
>                 help you fix it
>                 in the short term).
>                 2008/10/14 Magicloud <magicloud.magiclouds at gmail.com
>                 <mailto:magicloud.magiclouds at gmail.com>>:
>                     1. I cannot install ghc-6.8.3 in my box until I
>                     found the old runable
>                     binary.
>                     2. After I installed cabal, and upgraded,
>                     ghc-6.8.3 cannot rebuild
>                     itself.
>                     Because its libraries are conflict with the ones
>                     upgraded by cabal.
>                     3. Sometimes, ghc just ignore some libs, because
>                     it does not meet its
>                     dependencies. Well, ghc does not even tell me. It
>                     knows what I want?
>                     4. I use cabal, thinking it would make
>                     dependencies installation easier
>                     for
>                     me. Well it does not, once an error happened,
>                     nothing would work since. I
>                     cannot even remove the broken lib.
>                     5. No more needed. The above ones, which are
>                     important enough to drive me
>                     crazy.
>                     _______________________________________________
>                     Haskell-Cafe mailing list
>                     Haskell-Cafe at haskell.org
>                     <mailto:Haskell-Cafe at haskell.org>
>                     http://www.haskell.org/mailman/listinfo/haskell-cafe
>     _______________________________________________
>     Haskell-Cafe mailing list
>     Haskell-Cafe at haskell.org <mailto:Haskell-Cafe at haskell.org>
>     http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list