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 racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to