Re: [racket-dev] Implementing contracts for async channels

2015-01-15 Thread Alexis King
Sure thing, done. I’ve moved everything into racket/async-channel, added the missing functions, and added some tests. I squashed my commits into one, and the result is here: https://github.com/lexi-lambda/racket/commit/0074ba13b712a87c9d05948ae075bcd74c7651e7

Re: [racket-dev] Implementing contracts for async channels

2015-01-15 Thread Robby Findler
I think they should probably all be exported from racket/async-channel. Unless there is some reason to modify the internals of racket/contract to support them? Robby On Thu, Jan 15, 2015 at 4:50 PM, Alexis King wrote: > Sorry, I wasn’t clear. The chaperone/impersonate-async-channel functions ar

Re: [racket-dev] Implementing contracts for async channels

2015-01-15 Thread Alexis King
Sorry, I wasn’t clear. The chaperone/impersonate-async-channel functions are exported from racket/async-channel. The async-channel contracts, however, are exported from racket/contract. > On Jan 15, 2015, at 14:41, Robby Findler wrote: > > Just a small nit: why export that function from racket

Re: [racket-dev] Implementing contracts for async channels

2015-01-15 Thread Robby Findler
Just a small nit: why export that function from racket/contract and not an async-channel library? Robby On Thu, Jan 15, 2015 at 3:33 PM, Alexis King wrote: > As an update, I’ve made a bit more progress on this. I’ve implemented an > impersonate-async-channel function, and I’ve actually included

Re: [racket-dev] Implementing contracts for async channels

2015-01-15 Thread Sam Tobin-Hochstadt
On Thu, Jan 15, 2015 at 4:33 PM, Alexis King wrote: > As an update, I’ve made a bit more progress on this. I’ve implemented an > impersonate-async-channel function, and I’ve actually included this in the > exports from racket/contract. I also realized the blame information is > correct, it works f

Re: [racket-dev] Implementing contracts for async channels

2015-01-15 Thread Alexis King
As an update, I’ve made a bit more progress on this. I’ve implemented an impersonate-async-channel function, and I’ve actually included this in the exports from racket/contract. I also realized the blame information is correct, it works fine. Most of the other issues remain, as well as a few new

[racket-dev] Implementing contracts for async channels

2015-01-14 Thread Alexis King
Currently, async channels do not have contracts to check their contents. This is a problem for Typed Racket, and it prevents typed code from interacting with code that produces async channels. I started looking into how to add contracts to the language, and it seems to use the chaperones/impers