[Agda] Warning: hashable-1.2.0.x has serious performance bugs

Andreas Abel andreas.abel at ifi.lmu.de
Fri Jul 12 20:16:56 CEST 2013

Hi Martin,

I think that something like the following should work (assuming the 
darcs version 2.3.3 of Agda, should be similar for 2.3.2 or

   ghc-pkg unregister Agda-2.3.3
   ghc-pkg unregister unordered-containers
   ghc-pkg unregister hashtables
   ghc-pkg unregister hashable

Some of these steps may fail because there are other packages depending 
on hashable/hashtable/unordered-containers.  In this case, either use


or/and also unregister and then reinstall the broken packages.


   ghc-pkg list

to ensure there are no hashable-1.2.x.y installations left.

   cabal install hashable-
   cabal install hashtables
   cabal install unordered-containers

In the Agda directory

   cabal clean
   cabal configure -v

Check that no harmful version of hashable is used indeed.  Finally

   cabal install


   make library-test

should run in a couple of minutes (4 on my medium-old laptop).

You can use ghc-pkg list at any time to check the status of your package 

Hope this helps,


On 12.07.2013 19:09, Martin Escardo wrote:
> This explains a question I asked privately to you before, where I
> reported that Agda in a high-end desktop made this year ran at the same
> speed as in a low-end netbook made in 2008.

I just came about the problem yesterday, and it took my whole day to 
find the source of evil and expell it.  Sorry for being clueless before, 
I used to trust people to only upload extensively tested libraries onto 
hackage, but now I learned the better.

> Question: can you be more precise regarding what we have to do to avoid
> this problem? (This is not urgent: I made the desktop run 9x faster by
> copying the .cabal tree from the netbook to the desktop, as I told you.)
> Thanks,
> Martin
> On 12/07/13 16:52, Andreas Abel wrote:
>> When you compile Agda, make sure it uses hashable-1.1.2.x and not the
>> newer 1.2.0.x version (which cabal automatically pulls if the choice is
>> not constrained).
>> With hashable-1.2.0.x, Agda is 10x slower!
>> The newest darcs version asks for hashable < 1.2, so
>>    cabal install
>> might not work out of the box, you might have to clean out newer
>> versions of hashable and reinstall packages that used hashable-1.2.0.x,
>> like the hashtables package.
>>    cabal configure -v
>> should show you which version of the packages are picked for compilation.
>> Cheers,
>> Andreas

Andreas Abel  <><      Du bist der geliebte Mensch.

Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY

andreas.abel at ifi.lmu.de

More information about the Agda mailing list