Summary of containers patches
Milan Straka
fox at ucw.cz
Thu Sep 23 10:30:14 EDT 2010
>> as you probably know, there are several containers patches dealing with
>> performance, separate testsuite and benchmarking.
>>
>> Specifically, I mean tickets
>> http://hackage.haskell.org/trac/ghc/ticket/4277
>> http://hackage.haskell.org/trac/ghc/ticket/4279
>> http://hackage.haskell.org/trac/ghc/ticket/4280
>> http://hackage.haskell.org/trac/ghc/ticket/4311
>> http://hackage.haskell.org/trac/ghc/ticket/4312
>> http://hackage.haskell.org/trac/ghc/ticket/4333
>>
>> I have all of them in the following repository
>> http://fox.auryn.cz/darcs/containers/
>>
>> There are no user-visible changes, just performance and the split
>> testsuite.
>>
>> There were no comments in some time, so I would like to push them to
>> containers.
>>
>> There is just the code-bloat issue to solve. The excessive use of INLINE
>> pragma causes a large code bloat. I am aware of it, it happened even
>> when I was benchmarking the containers.
>>
>> Personally I vote for:
>> - changing INLINE to INLINABLE
>> - leave INLINE just in
>> - member/lookup functions
>> - insert* functions
>> as these benefit from specialization a lot and do not cause such
>> a bloat (measured during the internship, do not recall the numbers
>> now).
>>
>> I suspect the performance to drop a bit, but I think it is better to
>> have a bit slower containers without such a code bloat.
>>
>> Simon, I will be flying to IFCP soon, but if you want, I can prepare the
>> INLINE->INLINABLE patches and put them in the repo.
>
> That would help a lot, thanks. I started on this today but I'm a bit
> overloaded, and getting criterion installed wasn't very smooth (a couple
> of package breakages, but nothing serious and patches are upstream).
Great, I will look into it.
Is it alright if I push the rest of the performance patches first? (The
tickets I listed here.) That would make it much easier.
Cheers,
Milan
PS: I have ssh keys to be able to push.
More information about the Libraries
mailing list