[commit: ghc] master: Compact Regions (cf989ff)

git at git.haskell.org git at git.haskell.org
Wed Jul 20 15:35:38 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/cf989ffe490c146be4ed0fd7e0c00d3ff8fe1453/ghc

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

commit cf989ffe490c146be4ed0fd7e0c00d3ff8fe1453
Author: Giovanni Campagna <gcampagn at cs.stanford.edu>
Date:   Fri Jul 15 19:47:26 2016 +0100

    Compact Regions
    
    This brings in initial support for compact regions, as described in the
    ICFP 2015 paper "Efficient Communication and Collection with Compact
    Normal Forms" (Edward Z. Yang et.al.) and implemented by Giovanni
    Campagna.
    
    Some things may change before the 8.2 release, but I (Simon M.) wanted
    to get the main patch committed so that we can iterate.
    
    What documentation there is is in the Data.Compact module in the new
    compact package.  We'll need to extend and polish the documentation
    before the release.
    
    Test Plan:
    validate
    (new test cases included)
    
    Reviewers: ezyang, simonmar, hvr, bgamari, austin
    
    Subscribers: vikraman, Yuras, RyanGlScott, qnikst, mboes, facundominguez, rrnewton, thomie, erikd
    
    Differential Revision: https://phabricator.haskell.org/D1264
    
    GHC Trac Issues: #11493


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

cf989ffe490c146be4ed0fd7e0c00d3ff8fe1453
 compiler/codeGen/StgCmmPrim.hs                   |    5 +-
 compiler/prelude/PrelNames.hs                    |    4 +-
 compiler/prelude/TysPrim.hs                      |   19 +-
 compiler/prelude/primops.txt.pp                  |  101 ++
 ghc.mk                                           |    1 +
 includes/rts/storage/Block.h                     |    4 +
 includes/rts/storage/ClosureMacros.h             |   10 +
 includes/rts/storage/ClosureTypes.h              |    3 +-
 includes/rts/storage/Closures.h                  |   46 +
 includes/rts/storage/GC.h                        |   19 +
 includes/stg/MiscClosures.h                      |   12 +
 libraries/compact/.gitignore                     |    4 +
 libraries/compact/Data/Compact.hs                |   89 ++
 libraries/compact/Data/Compact/Internal.hs       |   78 ++
 libraries/compact/Data/Compact/Serialized.hs     |  225 ++++
 libraries/compact/LICENSE                        |   41 +
 libraries/compact/README.md                      |    5 +
 libraries/{integer-simple => compact}/Setup.hs   |    0
 libraries/compact/compact.cabal                  |   47 +
 libraries/compact/tests/.gitignore               |   21 +
 libraries/{base => compact}/tests/Makefile       |    0
 libraries/compact/tests/all.T                    |    6 +
 libraries/compact/tests/compact_append.hs        |   38 +
 libraries/compact/tests/compact_autoexpand.hs    |   27 +
 libraries/compact/tests/compact_loop.hs          |   47 +
 libraries/compact/tests/compact_serialize.hs     |   53 +
 libraries/compact/tests/compact_serialize.stderr |    1 +
 libraries/compact/tests/compact_simple.hs        |   35 +
 libraries/compact/tests/compact_simple_array.hs  |   60 +
 rts/ClosureFlags.c                               |    5 +-
 rts/LdvProfile.c                                 |    1 +
 rts/PrimOps.cmm                                  |  131 +++
 rts/Printer.c                                    |    9 +-
 rts/ProfHeap.c                                   |   23 +
 rts/RetainerProfile.c                            |    1 +
 rts/RtsStartup.c                                 |    1 +
 rts/RtsSymbols.c                                 |    9 +
 rts/StgMiscClosures.cmm                          |   12 +
 rts/sm/BlockAlloc.c                              |    1 +
 rts/sm/CNF.c                                     | 1352 ++++++++++++++++++++++
 rts/sm/CNF.h                                     |   71 ++
 rts/sm/Compact.c                                 |    1 +
 rts/sm/Evac.c                                    |  130 ++-
 rts/sm/GC.c                                      |   40 +-
 rts/sm/Sanity.c                                  |   49 +-
 rts/sm/Scav.c                                    |    9 +-
 rts/sm/Storage.c                                 |   12 +-
 utils/deriveConstants/Main.hs                    |   13 +-
 utils/genprimopcode/Main.hs                      |    1 +
 49 files changed, 2852 insertions(+), 20 deletions(-)

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

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc cf989ffe490c146be4ed0fd7e0c00d3ff8fe1453


More information about the ghc-commits mailing list