[commit: ghc] master: compiler/iface: compress .hi files (d9cb7a8)

git at git.haskell.org git at git.haskell.org
Sat May 21 16:52:36 UTC 2016


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

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

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

commit d9cb7a8a94daa4d20aa042cd053e20b491315633
Author: Austin Seipp <austin at well-typed.com>
Date:   Fri May 20 03:25:08 2016 +0000

    compiler/iface: compress .hi files
    
    Compress all interface files generated by the compiler with LZ4. While
    being only a tiny amount of code, LZ4 is both fast at compression and
    decompression, and has good compression ratios.
    
    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>
    
    Reviewed By: bgamari
    
    Differential Revision: https://phabricator.haskell.org/D1159


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

d9cb7a8a94daa4d20aa042cd053e20b491315633
 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            |  126 ++++
 docs/users_guide/8.2.1-notes.rst |    3 +-
 7 files changed, 2033 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 d9cb7a8a94daa4d20aa042cd053e20b491315633


More information about the ghc-commits mailing list