Ah, this is great! I'm glad to see my code being simplified and put to good use to identify it.
Sam Tobin-Hochstadt writes: > Since the dynamic wind error is definitely a Racket bug, I reproduced > it in a single file and opened an issue here: > https://github.com/racket/racket/issues/2341 > > I haven't gotten an error in RacketCS yet, but it is about 2x slower > than on traditional Racket. > > Sam > On Sun, Oct 28, 2018 at 2:05 PM Christopher Lemmer Webber > <[email protected]> wrote: >> >> 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. -- 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.

