
On 23/09/2010 14:25, Milan Straka wrote:
Hi Simon,
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). Cheers, Simon