<div dir="ltr"><div><div><div><div><div><div><div>Just to clarify this last one a bit.<br><br></div>I was referring to the classic byte/character/object port abstraction.<br><br></div>With the introduction of raw devices, we have a new base class of ports, which are the waitable ports.<br></div>These objects are i/o objects managed by the Gambit runtime and integrated with the Gambit scheduler.<br></div>The idea is that there exist i/o objects that don't fit the stream abstraction, and we would like to do i/o on them using specialized (ffi) methods while integrating with the Gambit scheduler.<br><br></div>UDP sockets is perfect example of such a device: they are not streams of bytes, so they don't fit the classic port abstraction. But they are i/o objects, on which you can do i/o with specialized ffi methods and you want to integrate with the Gambit scheduler to avoid blocking or spinning.<br></div><br></div>-- vyzo<br><div><div><div><div><div><br><br></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Aug 12, 2017 at 8:55 AM, Dimitris Vyzovitis <span dir="ltr"><<a href="mailto:vyzo@hackzen.org" target="_blank">vyzo@hackzen.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Ports are not the right abstraction for UDP -- UDP sockets are not streams of bytes, so userland ports are not relevant. <br><br><br></div><div>--vyzo<br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 11, 2017 at 9:28 PM, Adam <span dir="ltr"><<a href="mailto:adam.mlmb@gmail.com" target="_blank">adam.mlmb@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Guillaume,</div><div><br></div><div>For completeness - when there are userland ports, implementing UDP as a module will be trivial.</div><div><br></div><div>For more info see here <a href="https://github.com/gambit/gambit/issues/288" target="_blank">https://github.com/gambit/gamb<wbr>it/issues/288</a> .<span class="m_-8368539681464842947HOEnZb"><font color="#888888"><br></font></span></div><span class="m_-8368539681464842947HOEnZb"><font color="#888888"><div><br></div><div>Adam</div></font></span></div><div class="m_-8368539681464842947HOEnZb"><div class="m_-8368539681464842947h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-08-09 19:10 GMT+02:00 Dimitris Vyzovitis <span dir="ltr"><<a href="mailto:vyzo@hackzen.org" target="_blank">vyzo@hackzen.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>> Regarding #2<br><br></div><div>Yes, I implemented raw devices exactly for this reason.<br></div><div>Gamsock could use the socket ffi from Gerbil to provide the same interface but integrated with the Gambit i/o scheduler, <br></div><div><br></div><div>-- vyzo<br></div></div><div class="m_-8368539681464842947m_6039448362646779735HOEnZb"><div class="m_-8368539681464842947m_6039448362646779735h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 9, 2017 at 6:48 PM, Guillaume Cartier <span dir="ltr"><<a href="mailto:gcartier@jazzscheme.org" target="_blank">gcartier@jazzscheme.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hey Jeff,<div><br></div><div>I really like what I saw when I browsed Gamsock's code. The code looks clean and well implemented.</div><div><br></div><div>The two things I see missing, correct me if I'm wrong are:</div><div><br></div><div>#1 Cross-platform support, mainly Windows</div><div>#2 Some way to block on reading the UDP port that is integrated with the Gambit scheduler</div><div><br></div><div>Regarding #1, it seems a bit wasteful to have to implement cross-platform sockets as it is already done in Gambit's low-level C code, so maybe some collaboration with Marc into exposing this code in some way</div><div><br></div><div>Regarding #2, my understanding is that Marc added raw-device ports a while ago to help vyzo do exactly that in Gerbil</div><div><br></div></div><div class="m_-8368539681464842947m_6039448362646779735m_-7623502638253295059HOEnZb"><div class="m_-8368539681464842947m_6039448362646779735m_-7623502638253295059h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 4, 2017 at 4:36 PM, Jeff Read <span dir="ltr"><<a href="mailto:bitwize@gmail.com" target="_blank">bitwize@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Gamsock maintainer here. Does Gamsock somehow not fit your needs? I'm open to bug reports or feature requests.</div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-8368539681464842947m_6039448362646779735m_-7623502638253295059m_8117350511853637121h5">On Aug 3, 2017 7:56 AM, "Guillaume Cartier" <<a href="mailto:gcartier@jazzscheme.org" target="_blank">gcartier@jazzscheme.org</a>> wrote:<br type="attribution"></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-8368539681464842947m_6039448362646779735m_-7623502638253295059m_8117350511853637121h5"><div dir="ltr"><span style="font-size:12.8px">Hi everyone,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">What is the current state of UDP in Gambit?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I found</div><div style="font-size:12.8px">- an old post where Marc says he has preliminary support and<br></div><div style="font-size:12.8px">- <a href="https://github.com/bitwize/gamsock" target="_blank">https://github.com/bitwize/g<wbr>amsock</a> which looks interesting but hasn't been updated in years</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Anything else available if I need to integrate UDP in my Gambit application?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thanks</div></div>
<br></div></div><span>______________________________<wbr>_________________<br>
Gambit-list mailing list<br>
<a href="mailto:Gambit-list@iro.umontreal.ca" target="_blank">Gambit-list@iro.umontreal.ca</a><br>
<a href="https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list" rel="noreferrer" target="_blank">https://webmail.iro.umontreal.<wbr>ca/mailman/listinfo/gambit-lis<wbr>t</a><br>
<br></span></blockquote></div></div>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Gambit-list mailing list<br>
<a href="mailto:Gambit-list@iro.umontreal.ca" target="_blank">Gambit-list@iro.umontreal.ca</a><br>
<a href="https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list" rel="noreferrer" target="_blank">https://webmail.iro.umontreal.<wbr>ca/mailman/listinfo/gambit-lis<wbr>t</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Gambit-list mailing list<br>
<a href="mailto:Gambit-list@iro.umontreal.ca" target="_blank">Gambit-list@iro.umontreal.ca</a><br>
<a href="https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list" rel="noreferrer" target="_blank">https://webmail.iro.umontreal.<wbr>ca/mailman/listinfo/gambit-lis<wbr>t</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>