Skip to main content

Haskell, GHC and --hash-size=31

A few nights back I decided to return to an on-going self-education project in Haskell and much to my dismay, when I issued the "ghc --make ..." utterance it failed to complete and instead gave me the error:

$ ghc --make hwtest.hs

Linking hwtest ...
/usr/bin/ld: --hash-size=31: unknown option
usr/bin/ld: use the --help option for usage information
collect2: error: ld returned 1 exit status

WTF? When did my linker system or GHC break when I wasn't looking?

After two unsuccessful postings to the Haskell beginners newsgroup (unsuccessful as in they appeared not to have made it through the inter-web) I gave up and dug a little harder and turned up this post on the web:

http://www.haskell.org/pipermail/cvs-ghc/2011-November/068562.html

Bingo. I remedied the situation by performing this from the command line:

sudo apt-get remove binutils-gold

I didn't even know I had this package but then I suddenly remembered that a few nights previous and had found yet another "interesting thing" to play with and I remembered cutting and pasting a couple of lines of bash installation script and sure enough, checking my bash history revealed that at the end of a very long line (too wide to fully see in the browser) was the mysterious binutils-gold package.

So, there you go... from now I will be a little more discerning about what I am cutting and pasting during a grazing session.

Hope that helps somebody else out too!

Comments

Popular posts from this blog

PHP and Lisp: multiple-value-bind (MVB)

This is another article in my attempts to find new ways of looking at PHP and making it less of a chore to type in all that code. As much as I love PHP I hate wasting keystrokes. More typing is more errors is more grief. Being an off and on user of Lisp, although not as much as I used to, one of the things that I always liked in Lisp was the ability to be able to return multiple values from a function at once using (values) and then marry that with (multiple-value-bind) to create convenient named bindings for whatever you were about to do. I recently found myself wanting to return a couple of values from a helper function and I just didn't want to go to the trouble of having to type all those character required to create an array with keys for the two values and then I remembered MVB and a little light went on in my head! If somebody else has already done this then I apologise up front but it was new to me and I haven't seen it anywhere else so this could be a first! ...

Cross platform development with Scheme

Just a quick note about something I recently found whilst trying not to buy MOCL… http://www.lambdanative.org/ LambdaNative is developed and maintained by the Pediatric Anethesia Research Team (PART) and the Electical and Computer Engineering in Medicine (ECEM) group at the University of British Columbia (UBC). I have spent a week or two evaluating it and accidentally contributed a pull request that got merged and one that didn’t and I have to say that, for what it offers, it is awesomely good. Having personally spent many hours with it now, I do not yet think it is ready for mainstream development for a few reasons. I don’t mean that it a bad way either. What I mean is that the language, Scheme, is not really that widely known and as such it probably won’t break out into the public arena any time yet. That’s a real shame because I think that they have achieved an amazing thing; total abstraction of the underlying platform with a really powerful, underestimated language. ...

Angular.JS ... absolutely awesome BUT...

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagh! Sort the documentation soon please!  More soon, I really do like it though. :)