[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 2.3.2.1):

   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

   --force

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

Use

   ghc-pkg list

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

   cabal install hashable-1.1.2.5
   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

Now

   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 
collection.

Hope this helps,

Andreas

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
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Agda mailing list