Summary of containers patches

Milan Straka fox at ucw.cz
Thu Sep 23 09:25:27 EDT 2010


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.

Cheers,
Milan


More information about the Libraries mailing list