[commit: ghc] wip/D1159: compiler/iface: compress .hi files (4e9a41e)

git at git.haskell.org git at git.haskell.org
Sun Aug 23 18:11:55 UTC 2015


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

On branch  : wip/D1159
Link       : http://ghc.haskell.org/trac/ghc/changeset/4e9a41e1ba29afc231f61cee53fce1b04ed52370/ghc

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

commit 4e9a41e1ba29afc231f61cee53fce1b04ed52370
Author: Austin Seipp <austin at well-typed.com>
Date:   Sun Aug 23 20:08:04 2015 +0200

    compiler/iface: compress .hi files
    
    Summary:
    Compress all interface files generated by the compiler with LZ4. While
    having an extremely small amount of code, LZ4 is both very fast at
    compression and decompression while having quite good space saving
    properties.
    
    Non-scientific size test: size of stage2 compiler .hi files:
    
    `find ./compiler/stage2 -type f -iname '*.hi' -exec du -ch {} + | grep total$`
    
    Without this patch: 22MB of .hi files for stage2.
    With this patch: 9.2MB of .hi files for stage2.
    
    Signed-off-by: Austin Seipp <austin at well-typed.com>
    
    Test Plan: I ran `./validate`
    
    Reviewers: hvr, bgamari, thomie
    
    Subscribers: duncan
    
    Differential Revision: https://phabricator.haskell.org/D1159


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

4e9a41e1ba29afc231f61cee53fce1b04ed52370
 compiler/cbits/lz4.c     | 1520 ++++++++++++++++++++++++++++++++++++++++++++++
 compiler/cbits/lz4.h     |  364 +++++++++++
 compiler/ghc.cabal.in    |    2 +
 compiler/ghc.mk          |    1 +
 compiler/utils/Binary.hs |   37 +-
 compiler/utils/LZ4.hs    |  141 +++++
 6 files changed, 2046 insertions(+), 19 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 4e9a41e1ba29afc231f61cee53fce1b04ed52370


More information about the ghc-commits mailing list