<br><br><div class="gmail_quote">On Mon, Oct 31, 2011 at 1:45 PM, ocaml-core <span dir="ltr"><<a href="mailto:ocaml-core%2Bmsgappr@googlegroups.com">ocaml-core+msgappr@googlegroups.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

  
  <div>

  
<table style="margin:0 25px 0 25px;font-family:arial,sans-serif" cellpadding="0" cellspacing="0"">


    <tbody><tr><td><p>
    
    A message has been sent to the 
  
    <a style="color:15c;text-decoration:none" href="http://groups.google.com/group/ocaml-core?hl=en_US" target="_blank">ocaml-core</a>
  
 group and is awaiting approval. 
    We've included this message for your review.</p>

   <p>
   The message requires moderation because the user does not have permission to post.</p>

    <p>You can <a style="color:15c;text-decoration:none" href="http://groups.google.com/group/ocaml-core/pendmsg?hl=en_US" target="_blank">approve or reject</a> this message
    or you can approve this message by replying to this email.</p>

  
  <div style="margin:30px 25px 20px 24px">
   <a style="float:left;padding-right:20px">
       <img height="25px" alt="Visit Google Groups">
   </a>
   <p style="padding-top:4px;font-family:arial,sans-serif;color:#636363;font-size:11px">
      <a style="color:15c;text-decoration:none" href="https://groups.google.com/groups/create?hl=en_US&src=email" target="_blank">Start</a> your own group,
      <a style="color:15c;text-decoration:none" href="http://groups.google.com/support/?hl=en_US&src=email" target="_blank">visit</a> the help center,
      or <a style="color:15c;text-decoration:none" href="https://groups.google.com/groups/abuse?hl=en_US&src=email" target="_blank">report</a> abuse. 
   </p>
</div>

  </td></tr></tbody></table></div>

<br><br>---------- Forwarded message ----------<br>From: Nathan Linger <<a href="mailto:nlinger@janestreet.com">nlinger@janestreet.com</a>><br>To: <a href="mailto:ocaml-core@googlegroups.com">ocaml-core@googlegroups.com</a><br>
Date: Mon, 31 Oct 2011 13:45:35 -0400<br>Subject: Re: Making Async play better with others<br><br>
On 10/31/11 16:37, Anil Madhavapeddy wrote:<br>
> On 31 Oct 2011, at 15:06, Yaron Minsky wrote:<br>
><br>
> > On 31/10/11 14:29, Anil Madhavapeddy wrote:<br>
> >> You could combine most of these by basing Async on top of libuv,<br>
> >> which is a superset of libev (the event library that Lwt uses to<br>
> >> abstract network I/O).<br>
> >><br>
> >> <a href="https://github.com/joyent/libuv" target="_blank">https://github.com/joyent/libuv</a><br>
> >><br>
> >> Crucially, libuv has good support for the Windows AIO model, and is<br>
> >> also what node.js uses to drive its event loop (so has widespread<br>
> >> usage).<br>
> >><br>
> >> At first glance at Core, it looks like many of the Linux-specific<br>
> >> bits like high-res timers and thread scheduling are also covered by<br>
> >> it.<br>
> ><br>
> > How much do you know about the performance and quality of libuv?  I'm<br>
> > always nervous about shimming yet another layer between us and the<br>
> > bare metal.<br>
><br>
> Nothing beyond flicking through the source code and occasionally being<br>
> cursed with using node.js (which works pretty well until you get to<br>
> the Javascript level :)<br>
><br>
> It's pretty much the only game in town when it comes to cross-platform<br>
> C-based asynchronous programming libraries however (as far as I know).<br>
<br>
Isn't libevent[1] the same sort of thing?  I believe it is the C-based<br>
asynchronous programming library underlying memcached[2], which in turn<br>
is used by several high-profile web applications -- their website lists<br>
Wikipedia, WordPress.com, Flickr, Twitter, Typepad, Youtube, LiveJournal,<br>
Digg, Craigslist, and a handful of others I didn't recognize.<br>
<br>
I dusted off the ocaml bindings for libevent[3] at home last year and<br>
found them pretty usable for the small experiments I did (implementing a<br>
monadic interface for CML-style concurrent programming).  Their website[1]<br>
claims "Libevent should compile on Linux, *BSD, Mac OS X, Solaris,<br>
Windows, and more."<br>
<br>
[1] <a href="http://libevent.org/" target="_blank">http://libevent.org/</a><br>
[2] <a href="http://www.memcached.org/" target="_blank">http://www.memcached.org/</a><br>
[3] <a href="http://mmzeeman.home.xs4all.nl/ocaml/" target="_blank">http://mmzeeman.home.xs4all.nl/ocaml/</a><br>
<br>
<br></blockquote></div><br>