Subject: bug#51928: GHC 8.10 occupies 1.6 GiB

From: raingloom <[email-masked]>
Date: Wed, 24 Nov 2021 00:56:41 +0100

On Wed, 17 Nov 2021 22:15:28 +0100
Ludovic Courtès <[email-masked]> wrote:

> Hi!
> 
> GHC takes way too much space (GHC itself, not the closure):
> 
> --8<---------------cut here---------------start------------->8---
> $ guix size [email-masked]
> konserveja ero
> total    self /gnu/store/allyyvs2xg396s23csrmqfx19n9zayp7-ghc-8.10.7
>           1831.0  1599.4  87.3%
> /gnu/store/z9alkwg8anajvasd01pyx4rzcasli3yf-ghc-8.10.7-doc
> 190.2   150.8   8.2%
> /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31
> 38.4    36.7   2.0%
> /gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib
> 71.0    32.6   1.8%
> /gnu/store/zzkly5rbfvahwqgcs7crz0ilpi7x5g5p-ncurses-6.2
> 76.9     5.9   0.3%
> /gnu/store/35afkywncrr5xsb4cxcljf6rpjcb7f61-gmp-6.2.0
> 73.8     2.7   0.2%
> /gnu/store/mmhimfwmmidf09jw1plw3aw1g1zn2nkh-bash-static-5.0.16
> 1.6     1.6   0.1%
> /gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16
> 39.4     1.0   0.1%
> /gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3
> 71.2     0.2   0.0% total: 1831.0 MiB $ guix describe Generacio
> 194	Nov 07 2021 23:40:30	(nuna) guix bd41e59 repository
> URL: https://git.savannah.gnu.org/git/guix.git branch: master commit:
> bd41e590dd24e54797fb8b6854c244efd4d12df5 --8<---------------cut
> here---------------end--------------->8---
> 
> Most of it comes from $libdir, specifically:
> 
> --8<---------------cut here---------------start------------->8---
> $ du -s
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/*|sort
> -k1 -n| tail 23756
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/haskeline-0.8.2
> 28776
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/text-1.2.4.1
> 47664
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/containers-0.6.5.1
> 48428
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-prim-0.6.1
> 50768
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghci-8.10.7
> 54100
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/template-haskell-2.16.0.0
> 80200
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/bin
> 151868
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/base-4.14.3.0
> 426416
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/Cabal-3.2.1.0
> 538168
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7
> $ du -s
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/*|sort
> -k1 -n|tail 652
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/Llvm
> 716
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/SPARC
> 1108
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/RegAlloc
> 2256
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/DynFlags.dyn_hi
> 2256
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/DynFlags.hi
> 2256
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/DynFlags.p_hi
> 23724
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/GHC
> 90908
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/libHSghc-8.10.7-ghc8.10.7.so
> 127908
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/libHSghc-8.10.7.a
> 225972
> /gnu/store/ifr4svr31053fgqay0il5acipl7b6579-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/libHSghc-8.10.7_p.a
> --8<---------------cut here---------------end--------------->8---
> 
> Can we at least (re)move those ‘.a’ files?
> 
> Thoughts?
> 
> Ludo’.
> 
> 
> 

Shouldn't `.a` be split to a static lib output?