IRC channel logs

2026-05-28.log

back to list of logs

<resica>I'm curious to know more about how the garbage collector works. What actually causes the GC to run and how can I test it for myself?
<identity>resica: see (info "(guile) Memory Management") and (info "(guile) Garbage Collection")
<resica>I've seen that manual online, half of it is C related and it appears it's more tailored to how memory management works when using C rather than using guile directly.
<mwette>"If the total amount of allocation since the last collection is less than the heap size divided by GC_free_space_divisor, we try to expand the heap. Otherwise, we initiate a garbage collection." see https://www.hboehm.info/gc/gcdescr.html
<mwette>It's all in C, pretty much. There is work on a new GC: https://github.com/wingo/whippet
<mwette>The role of guile for this GC, as far as I understand, is to call the memory allocator and mark the roots.
<resica>I didn't think to read up on the third party library that does the actual garbage collection. Thanks for the heads up, mwette.
<mwette>yw
<dthompson>did wingo write a new pretty printer recently or am I misremembering things?
<dthompson>I went looking for it but couldn't find it
<dthompson>(ice-9 pretty-print) in main hasn't been touched since 2023 it seems