GHC 8.10 occupies 1.6 GiB

  • Open
  • quality assurance status badge
Details
5 participants
  • Lars-Dominik Braun
  • Ludovic Courtès
  • Maxim Cournoyer
  • raingloom
  • Simon Tournier
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 17 Nov 2021 22:15
(address . bug-guix@gnu.org)
8735nutrf3.fsf@inria.fr
Hi!

GHC takes way too much space (GHC itself, not the closure):

Toggle snippet (20 lines)
$ guix size ghc@8.10
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

Most of it comes from $libdir, specifically:

Toggle snippet (24 lines)
$ 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

Can we at least (re)move those ‘.a’ files?

Thoughts?

Ludo’.
R
R
raingloom wrote on 24 Nov 2021 00:56
Re: bug#51928: GHC 8.10 occupies 1.6 GiB
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 51928@debbugs.gnu.org)
20211124005641.44b985e9@riseup.net
On Wed, 17 Nov 2021 22:15:28 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (88 lines)
> Hi!
>
> GHC takes way too much space (GHC itself, not the closure):
>
> --8<---------------cut here---------------start------------->8---
> $ guix size ghc@8.10
> 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?
M
M
Maxim Cournoyer wrote on 27 Nov 2021 04:19
Re: bug#51928: GHC 8.10 occupies 1.6 GiB
(name . raingloom)(address . raingloom@riseup.net)
87ee728eu9.fsf_-_@gmail.com
Hello,

raingloom <raingloom@riseup.net> writes:

Toggle quote (93 lines)
> On Wed, 17 Nov 2021 22:15:28 +0100
> Ludovic Courtès <ludo@gnu.org> wrote:
>
>> Hi!
>>
>> GHC takes way too much space (GHC itself, not the closure):
>>
>> --8<---------------cut here---------------start------------->8---
>> $ guix size ghc@8.10
>> 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?

In Guix they aren't used typically (everything gets linked dynamically);
at 1 GiB+ I think it's fair to get rid of them.

Thanks,

Maxim
L
L
Ludovic Courtès wrote on 28 Nov 2021 18:03
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
87h7bwb4b9.fsf@gnu.org
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (2 lines)
> In Guix they aren't used typically (everything gets linked dynamically);

I think they’re used for ‘pandoc’.

Also, in general, we don’t want to make static linking impossible, so we
could move .a files to a separate output as for ‘glibc’.

Ludo’.
R
R
raingloom wrote on 28 Nov 2021 21:45
Re: bug#51928: GHC 8.10 occupies 1.6 GiB
(name . Ludovic Courtès)(address . ludo@gnu.org)
20211128214528.35a012a0@riseup.net
On Sun, 28 Nov 2021 18:03:38 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (14 lines)
> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
> > In Guix they aren't used typically (everything gets linked
> > dynamically);
>
> I think they’re used for ‘pandoc’.
>
> Also, in general, we don’t want to make static linking impossible, so
> we could move .a files to a separate output as for ‘glibc’.
>
> Ludo’.

If I recall correctly there was a discussion some months back about
Haskell binaries being smaller when linked statically.
S
S
Simon Tournier wrote on 22 Sep 2023 18:42
Re: bug#51928: GHC 8.10 occupies 1.6 GiB
(address . 51928@debbugs.gnu.org)
87zg1e6twv.fsf@gmail.com
Hi,

Old bug#51928:


still current.

On Wed, 17 Nov 2021 at 22:15, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (34 lines)
> $ 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

> $ guix size ghc@8.10
> total: 1831.0 MiB

> $ 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

Today, it is the same for all GHC versions:

Toggle snippet (61 lines)
$ guix describe
Generation 28 Sep 06 2023 14:54:50 (current)
guix 6113e05
repository URL: https://git.savannah.gnu.org/git/guix.git
commit: 6113e0529d61df7425f64e30a6bf77f7cfdfe5a5

$ for v in $(guix show ghc | recsel -CP version); do printf "ghc@$v "; guix size ghc@$v | grep total: ;done
ghc@9.2.5 total: 1814.6 MiB
ghc@9.0.2 total: 1742.9 MiB
ghc@8.10.7 total: 1774.3 MiB
ghc@8.8.4 total: 1847.2 MiB
ghc@8.6.5 total: 1603.0 MiB
ghc@8.4.4 total: 1801.3 MiB
ghc@8.0.2 total: 1505.0 MiB
ghc@7.10.3 total: 1275.9 MiB
ghc@6.10.4 total: 303.2 MiB
ghc@6.6 total: 444.4 MiB
ghc@6.0 total: 286.5 MiB
ghc@4.08.2 total: 233.9 MiB

$ for v in $(guix show ghc | recsel -CP version); do echo ""; du -sh $(guix build ghc@$v | grep -v doc)/lib/ghc-$v/ghc-$v/* | sort -h -k1 | tail -3 ;done
94M /gnu/store/x0q2jmg4pfy0wjxdz8l4apsp1yg2sm2c-ghc-9.2.5/lib/ghc-9.2.5/ghc-9.2.5/GHC
133M /gnu/store/x0q2jmg4pfy0wjxdz8l4apsp1yg2sm2c-ghc-9.2.5/lib/ghc-9.2.5/ghc-9.2.5/libHSghc-9.2.5.a
231M /gnu/store/x0q2jmg4pfy0wjxdz8l4apsp1yg2sm2c-ghc-9.2.5/lib/ghc-9.2.5/ghc-9.2.5/libHSghc-9.2.5_p.a

86M /gnu/store/n2apysbmkmpywd6xfs2g1jigmlr7kb9v-ghc-9.0.2/lib/ghc-9.0.2/ghc-9.0.2/GHC
120M /gnu/store/n2apysbmkmpywd6xfs2g1jigmlr7kb9v-ghc-9.0.2/lib/ghc-9.0.2/ghc-9.0.2/libHSghc-9.0.2.a
208M /gnu/store/n2apysbmkmpywd6xfs2g1jigmlr7kb9v-ghc-9.0.2/lib/ghc-9.0.2/ghc-9.0.2/libHSghc-9.0.2_p.a

80M /gnu/store/4f4rva7ga15srz70jxdzrzv8w19y0zbn-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/libHSghc-8.10.7-ghc8.10.7.so
125M /gnu/store/4f4rva7ga15srz70jxdzrzv8w19y0zbn-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/libHSghc-8.10.7.a
221M /gnu/store/4f4rva7ga15srz70jxdzrzv8w19y0zbn-ghc-8.10.7/lib/ghc-8.10.7/ghc-8.10.7/libHSghc-8.10.7_p.a

78M /gnu/store/j2dcjp1s6y4xy1m8xxw15wgcphq3ncp6-ghc-8.8.4/lib/ghc-8.8.4/ghc-8.8.4/libHSghc-8.8.4-ghc8.8.4.so
122M /gnu/store/j2dcjp1s6y4xy1m8xxw15wgcphq3ncp6-ghc-8.8.4/lib/ghc-8.8.4/ghc-8.8.4/libHSghc-8.8.4.a
215M /gnu/store/j2dcjp1s6y4xy1m8xxw15wgcphq3ncp6-ghc-8.8.4/lib/ghc-8.8.4/ghc-8.8.4/libHSghc-8.8.4_p.a

73M /gnu/store/7gjfmdf5ifvki06msjx8ygf4j40x4k49-ghc-8.6.5/lib/ghc-8.6.5/ghc-8.6.5/libHSghc-8.6.5-ghc8.6.5.so
115M /gnu/store/7gjfmdf5ifvki06msjx8ygf4j40x4k49-ghc-8.6.5/lib/ghc-8.6.5/ghc-8.6.5/libHSghc-8.6.5.a
204M /gnu/store/7gjfmdf5ifvki06msjx8ygf4j40x4k49-ghc-8.6.5/lib/ghc-8.6.5/ghc-8.6.5/libHSghc-8.6.5_p.a

70M /gnu/store/8dp1qql6xpjd1jb171zzk4m4h47q1vcm-ghc-8.4.4/lib/ghc-8.4.4/ghc-8.4.4/libHSghc-8.4.4-ghc8.4.4.so
110M /gnu/store/8dp1qql6xpjd1jb171zzk4m4h47q1vcm-ghc-8.4.4/lib/ghc-8.4.4/ghc-8.4.4/libHSghc-8.4.4.a
189M /gnu/store/8dp1qql6xpjd1jb171zzk4m4h47q1vcm-ghc-8.4.4/lib/ghc-8.4.4/ghc-8.4.4/libHSghc-8.4.4_p.a

78M /gnu/store/bg7qkrssd354p9ksjc1c3z0hqgqv2cdm-ghc-8.0.2/lib/ghc-8.0.2/ghc-8.0.2/libHSghc-8.0.2-ghc8.0.2.so
115M /gnu/store/bg7qkrssd354p9ksjc1c3z0hqgqv2cdm-ghc-8.0.2/lib/ghc-8.0.2/ghc-8.0.2/libHSghc-8.0.2.a
183M /gnu/store/bg7qkrssd354p9ksjc1c3z0hqgqv2cdm-ghc-8.0.2/lib/ghc-8.0.2/ghc-8.0.2/libHSghc-8.0.2_p.a

du: cannot access '/gnu/store/53ngslgf8ami8hbpnn4vzyqwndf5czyi-ghc-7.10.3/lib/ghc-7.10.3/ghc-7.10.3/*': No such file or directory

240K /gnu/store/46wz64jar8s7mvgwk6r4z1yp545pmgyg-ghc-6.10.4/lib/ghc-6.10.4/ghc-6.10.4/DynFlags.hi
19M /gnu/store/46wz64jar8s7mvgwk6r4z1yp545pmgyg-ghc-6.10.4/lib/ghc-6.10.4/ghc-6.10.4/HSghc-6.10.4.o
23M /gnu/store/46wz64jar8s7mvgwk6r4z1yp545pmgyg-ghc-6.10.4/lib/ghc-6.10.4/ghc-6.10.4/libHSghc-6.10.4.a

du: cannot access '/gnu/store/9jzk77qrq0s4sz4mhvr9qmdgpzpi524m-ghc-6.6/lib/ghc-6.6/ghc-6.6/*': Not a directory
du: cannot access '/gnu/store/rqimyicx99fg311sgny8ycm5gf2ns9rx-ghc-6.0/lib/ghc-6.0/ghc-6.0/*': Not a directory
du: cannot access '/gnu/store/i3gwjcxd11xpaqwiibfzlwsk3q0a0qss-ghc-4.08.2/lib/ghc-4.08.2/ghc-4.08.2/*': No such file or directory


Toggle quote (2 lines)
> Can we at least (re)move those ‘.a’ files?

Well, can we remove these ’.a’ files for the output ’out’ are create
another output, say ’lib’?

Cheers,
simon
L
L
Lars-Dominik Braun wrote on 23 Sep 2023 08:18
Re: bug#51928: GHC 8.10 occ upies 1.6 GiB
(name . Simon Tournier)(address . zimon.toutoune@gmail.com)
ZQ6DIVAI0YbUOQAU@noor.fritz.box
Hi,

Toggle quote (2 lines)
> still current.

I’m not so sure about that. We link (most/all?) Haskell binaries
(pandoc for example) statically, so none of them should pull in GHC any
more. If they do, that’s a bug.

It’s almost impossible to untangle GHC libraries (and also GHC itself),
since there are circular references between config files, static libraries
and shared libraries. So I believe the solution above is the best we
can do right now.

Cheers,
Lars
?