Christopher Lemmer Webber writes:

> Matthew Flatt writes:
>
>> Is your example something I can run myself to track down the problem?
>> The trigger for these kinds of bugs is often difficult to extract into
>> a small example.
>
> It is, but there's currently another bug intertwined which is causing
> memory exhaustion in this same case.  I don't think they're interrelated
> anymore, but let me fix that one so you can see the problem in isolation
> without blowing through your RAM :)
>
> I'll try to clean it up today/tomorrow and will respond with an example
> you can run once I've done so.

So I actually didn't get rid of the memory exhaustion problem, but I
*did* get rid of the "Dynamic-wind record doesn't match prompt!" error.
I'm not sure exactly how the "fix" fixed it though, I mostly moved the
code shape closer to the shape it was previously before the error
happened.

To reproduce, clone goblins:
  https://gitlab.com/spritely/goblins.git

Now check out the commit 1db58e8, which is the v0.1 release

Now follow the instructions on the top of:
  https://gitlab.com/spritely/goblins/issues/8

(the second code block there has some code you can run yourself to
reproduce the bug.)

More about the "fix":
https://gitlab.com/spritely/goblins/issues/8#note_112548932

Note that I still am hitting problems, but they aren't this problem:
 - Still have the memory leak.  It's very hard for me to figure out
   why references to the promises, promise resolvers, and listeners
   are not being cleaned up.
 - A couple of the fixes I've tried have managed to segfault Racket...
   one crashed the GC.  I guess those might be of interest.

I didn't have these problems before I moved to the promise-based
architecture I'm now using.  There's a lot more allocation of
intermediate actors powering things now, and I'm okay with some
performance tradeoff if it means a cleaner design, but I should probably
sort out the leaks and crashes :)

 - Chris

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to