Subject: bug#19180: Weak tables harmful to GC?

From: [email-masked] (Ludovic Courtès)
Date: Thu, 26 Oct 2017 10:17:15 -0700

Hi Ricardo,

Ricardo Wurmus <[email-masked]> skribis:

> I tried building Guile with the following Guix package definition:
>
> (define-public guile-2.2-awesome
>   (package (inherit guile-2.2)
>     (name "guile-awesome")
>     (source (origin (inherit (package-source guile-2.2))
>        (patches (list "/home/rwurmus/0001-Remove-weak-tables-and-revert-to-weak-hash-tables.patch"
>                       "/home/rwurmus/0002-Keep-weak-hash-table-item-count-consistent.patch"))))

[...]

>   BOOTSTRAP GUILEC system/foreign.go
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> GC Warning: Repeated allocation of very large block (appr. size 230096896):
>         May lead to memory leak and poor performance
> Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
> /gnu/store/kpxi8h3669afr9r1bgvaf9ij3y4wdyyn-bash-minimal-4.4.12/bin/bash: line 6: 30796 Aborted                 GUILE_AUTO_COMPILE=0 ../meta/build-env guild compile --target="x86_64-unknown-linux-gnu" -O1 -L "/tmp/guix-build-guile-awesome-2.2.2.drv-0/guile-2.2.2/module" -L "/tmp/guix-build-guile-awesome-2.2.2.drv-0/guile-2.2.2/guile-readline" -o "language/scheme/compile-tree-il.go" "../module/language/scheme/compile-tree-il.scm"
> make[2]: *** [Makefile:1928: language/scheme/compile-tree-il.go] Error 134

Blech, that doesn’t sound like an improvement.

“make clean -C module && make” works for me, but now that I think of it
it might be reusing stuff from the prebuilt/ directory.

I’ll try again later.

Thanks for testing,
Ludo’.