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.

Reply via email to