Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wishlist: updatel channel.scm #22

Open
kristianlm opened this issue Apr 5, 2017 · 12 comments
Open

wishlist: updatel channel.scm #22

kristianlm opened this issue Apr 5, 2017 · 12 comments

Comments

@kristianlm
Copy link

Hi,

I noticed your channel.scm is using the gochan implementation. Cool!

I've recently rewritten gochan from scratch and, while this hasn't been tested out-in-the-wild yet, it might be worth considering to upgrade. The new version has some big improvements (you can select on send channels, timeouts are now ordinary channels).

Cheers!

@alvatar
Copy link
Owner

alvatar commented Apr 5, 2017

Awesome @kristianlm !!
Thanks for this!
One question: do you have an idea of any potential limitations we might encounter with Gambit's new multithread system (real OS threads + green threads)

@kristianlm
Copy link
Author

I'm afraid I have no experience with Gambit so I can't comment on its multithreaded behaviour. But I suppose that if Gambit's mutex-lock! and mutex-unlock! still behave the same way, I don't see a reason why this shouldn't still work. gochan is using mutexes to coordinate reads/writes to a channel's memory, and condition-variables to notify/unblock sender-/receiver-threads.

@alvatar
Copy link
Owner

alvatar commented Apr 20, 2017

sorry for the delay on this @kristianlm ! I'll get to it ASAP

@alvatar
Copy link
Owner

alvatar commented Apr 22, 2017

Hey @kristianlm. You seem to be doing a lot of updates recently on gochan. Do you plan on freezing a version anytime soon?

@kristianlm
Copy link
Author

Hi Alvatar,

Yes, I've been active trying to clean up the API and making it better. The problem is that I haven't had much time to use gochan in practice! Since version 2.1, there's only been 1 API change though: gochan-select will now no longer evaluate your clause body if you don't specify an ok flag. Otherwise, the API is relatively stable.

However, I just realized that version 2.0 introduces a matchable egg dependency, and that's a dependency you may not have access to?

@alvatar
Copy link
Owner

alvatar commented Apr 25, 2017

Thanks @kristianlm
It'd need to be ported, but we certainly have matching.

@kristianlm
Copy link
Author

It's a great pattern-matching scheme library, so it's definitely not a bad library to include :) I suspect Alex Shinn has done a great job already of making matchable easily portable.

@alvatar
Copy link
Owner

alvatar commented Apr 27, 2017

Hi @kristianlm, I've started porting your new version. I think it's feasible and not too hard. I'm going to wait on you to freeze a version if that's ok. Would you be able to let me know when you have a version that you consider relatively stable, please?

@kristianlm
Copy link
Author

I will keep you updated on the gochan status. The problem is, however, that it's not in production use anywhere yet. So I don't know what you've got in mind when you say "relatively stable" :D

@alvatar
Copy link
Owner

alvatar commented Apr 27, 2017

I just mean that the API isn't expected to change for a while. How's that sound?

@kristianlm
Copy link
Author

Oh of course, you mean api stability. I'll give it a week and see if I can think of any changes that need to be done and get back to you then if the API still covers the use-cases I've run into!

Cheers and thanks for dealing with this!

@alvatar
Copy link
Owner

alvatar commented Apr 29, 2017

Cool!
No rush at all. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants