[commit: containers] master: Once again revert argument capturing by local 'go' function. (cf2cdd5)

Paolo Capriotti p.capriotti at gmail.com
Thu Jul 19 21:13:02 CEST 2012


Repository : ssh://darcs.haskell.org//srv/darcs/packages/containers

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/cf2cdd50743f540c0781a6f1455cebec9a6042d1

>---------------------------------------------------------------

commit cf2cdd50743f540c0781a6f1455cebec9a6042d1
Author: Milan Straka <fox at ucw.cz>
Date:   Fri Apr 27 11:12:07 2012 +0200

    Once again revert argument capturing by local 'go' function.
    
    At last I found an example, where capturing the argument in local 'go'
    function in 'member' causes increased heap-allocation. It is caused by
    'go' function floating out of 'member' and allocating a dictionary and
    the key argument.
    
    This happens only with Map and Set methods. Therefore in IntMap and IntSet,
    'go' function still captures the argument (and GHC shows no increased
    heap-allocation as a result of that).

 Data/Map/Base.hs |  180 +++++++++++++++++++++++++++++++----------------------
 Data/Set/Base.hs |  120 +++++++++++++++++++++---------------
 2 files changed, 176 insertions(+), 124 deletions(-)


Diff suppressed because of size. To see it, use:

    git show cf2cdd50743f540c0781a6f1455cebec9a6042d1



More information about the Cvs-libraries mailing list