2008/11/17 Andy Wingo <[EMAIL PROTECTED]>: > Hi Linas, > > I was about to write about how your patch looked incorrect to me, > because GC could see a half-initialized struct (and potentially sweep > it, with a bad free function);
Well, I tried to think that through. I tried to find a need for a "remember_up_to_here", but it didn't look like the code needed it -- it seemed like everything was on stack or in registers, and so would be safe from accidental GC. I did not carefully audit all the routines that are called; there may be problems in there. Whether there is a "global variable" lurking somewhere in there was also unclear. In general, I notice that "global variables" are not highlighted in any way in the guile code, thus making it hard to determine if one is manipulating something which is completely local to the thread, or is possibly accessed from multiple threads. I'm thinking it would be a wise long-term strategy to provide this kind of markup, although I don't know how. --linas
