Re: out-of-control GC

2017-09-09 Thread Linas Vepstas
To make this conversation less crazy, and more down-to-earth, here is a demo that seems to spend most of its time in GC. Hard for me to to say that this is "wrong", right now, but it illustrates the scandalous nature of the problem. Its a simple loop, about 6 lines of code total, it mostly just wa

Re: Guile bugs

2017-09-09 Thread Linas Vepstas
Hi Marko, On Sat, Sep 9, 2017 at 5:31 PM, Marko Rauhamaa wrote: > Linas Vepstas : > > So if you used GC_malloc_atomic() in your code, then gc will NOT scan > > that region for pointers. guile-2.2 does this correctly for strings (I > > checked) because strings will never contain pointers. I have

Re: Guile bugs

2017-09-09 Thread Marko Rauhamaa
Linas Vepstas : > So if you used GC_malloc_atomic() in your code, then gc will NOT scan > that region for pointers. guile-2.2 does this correctly for strings (I > checked) because strings will never contain pointers. I have not > checked other uses. The question about mmap(2) is addressed more dir

Re: Guile bugs

2017-09-09 Thread Linas Vepstas
Stale reply to old message, but maybe its still helpful: On Fri, Jul 21, 2017 at 1:15 AM, Marko Rauhamaa wrote: > Mark H Weaver : > > > Marko Rauhamaa writes: > > > >> l...@gnu.org (Ludovic Courtès): > >> > >>> libgc knows which regions it must scan and mmap’d regions like this > >>> are not am

Re: Guile bugs

2017-09-09 Thread Linas Vepstas
Hi Ludo, a very late reply... On Thu, Jul 20, 2017 at 10:28 AM, Ludovic Courtès wrote: > > > String handling in guile is a disaster area: If I give it a > > 10-megabyte-long string in utf8, it promptly tries to convert all of that > > string in utf32, for utterly pointless reasons. This just mak

out-of-control GC

2017-09-09 Thread Linas Vepstas
I've been experiencing problems with guile GC for a while now, that I've mostly been able to ignore, but that are becoming debilitating, and I need help, or need to find some solution. Background: I have a C++ library that has guile bindings; it is wrapped up as a guile module. It manages a lot of