Re: [racket-users] "Dynamic-wind record doesn't match prompt!" error
Awesome! Matthew Flatt writes: > Thanks! I've pushed a repair. > > At Sun, 28 Oct 2018 15:24:27 -0400, Sam Tobin-Hochstadt wrote: >> 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 >> 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 racket-users+unsubscr...@googlegroups.com. >> > 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 racket-users+unsubscr...@googlegroups.com. >> 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] "Dynamic-wind record doesn't match prompt!" error
Thanks! I've pushed a repair. At Sun, 28 Oct 2018 15:24:27 -0400, Sam Tobin-Hochstadt wrote: > 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 > 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 racket-users+unsubscr...@googlegroups.com. > > 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 racket-users+unsubscr...@googlegroups.com. > 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] "Dynamic-wind record doesn't match prompt!" error
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 > 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 racket-users+unsubscr...@googlegroups.com. >> 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] "Dynamic-wind record doesn't match prompt!" error
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 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 racket-users+unsubscr...@googlegroups.com. > 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] "Dynamic-wind record doesn't match prompt!" error
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.
[racket-users] Goblins, and actor model library for Racket, gets its first release
Hello all, I've made the first release of Goblins (v0.1), the lightweight actor model I'm building for Racket which will be the foundation for my future distributed virtual worlds work in Racket. It is *not* production ready, consider this a pre-alpha, but you can get it from Racket's package repository, and read the docs here: https://docs.racket-lang.org/goblins/ I think the docs give a pretty nice overview of what using Goblins should "feel" like. The long term goal of Goblins is to bring secure, distributed object capability computation to Racket, inspired largely by the E programming language (Goblins borrows many of its good ideas, including the promise pipelining features). It doesn't do distributed computation yet, but I'm hoping to roll that out in the next couple of months. Be aware that there are bugs. In particular, I've hit some interesting bugs involving delimited continuations: https://gitlab.com/spritely/goblins/issues/8 (I think I may be poking at some interesting internals of Racket in the ways I'm pushing delimited continuations to their limits... recently I even managed to segfault the GC. I'll follow up on that stuff on the other thread I started recently shortly.) Anyway, I think it's an exciting foundation. I'd love to hear feedback. - Chris If you are curious about what this long term plan about building secure virtual worlds in Racket is, I wrote a blogpost named "Spritely: towards secure social spaces as virtual worlds": https://dustycloud.org/blog/spritely/ I have recently switched to working on this full time. I don't have a funding plan yet, but I am committed to make sure that the Spritely project as a whole is a public good. If you think this work is exciting, consider supporting my work: https://www.patreon.com/cwebber -- 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.
Re: [racket-users] Racket v7.1
Vincent St-Amour writes: > > * The hashing functions `sha1-bytes`, `sha224-bytes`, and > `sha256-bytes` are added to `racket/base`. > Awesome! This let me get rid of the last non-base dependency in an application I'm working on. 7.1 seems solid so far! Great job, guys! -- 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.