Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: yminsky@gmail.com
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] [ANN] Async, a monadic concurrency library
Date: Wed, 26 Oct 2011 14:31:24 +0200	[thread overview]
Message-ID: <1319632284.18639.181.camel@thinkpad> (raw)
In-Reply-To: <CADKNfhLVRw8=+F07dj7HwJtfTr6JK9w7epoq=mZ5UubJ1LJ5Ug@mail.gmail.com>

Am Mittwoch, den 26.10.2011, 06:57 -0400 schrieb Yaron Minsky:
> I admit to a certain amount of ambivalence to releasing Yet Another
> Monadic Concurrency library.  (I don't think Equeue is in quite the
> same category, since it has such a different style of interface.) 

Equeue offers several styles. On the lower level it is quite different,
but the version offered by the Uq_engines module is pretty much the same
with its own naming style (e.g. seq instead of bind etc.).

>  But I think we had good reasons for creating Async.  As I said in my
> blog post, the differences in error-handling and interleaving policy
> were enough that we really felt we needed a different library.

In deed this is interesting. Equeue also follows Lwt's idea not to
interleave when possible, simply for performance reasons. You can,
however, demand at any time to interleave (with the eps_e operator), and
a user wanting this always could build a little layer on top of Equeue
to force it.

Exceptions are specially represented in Equeue as a different kind of
return value. Most operators catch exceptions, cancel the remaining part
of the execution flow (which is also specially supported, simulating a
"falling through" effect), and return the exception. Effectively, this
means that exceptions do not need that much attention, and often the
right thing is done anyway.

> And now that we've created it, there are multiple reasons to release
> it.  For one thing, we want it for out own open-source projects
> outside of the office!  And it's a precondition for us for releasing
> other software that we've developed internally that depends on Async.

Honestly, I'm a bit concerned about the yet-another-async library,
because a library writer can usually only support one library, and
remains incompatible with the other ones. What would you do if you
wanted to use NetAMQP, which is for Equeue? It would be complicated (and
maybe even impossible) to integrate this library into a program using
Async otherwise.

For Equeue+Lwt in the same program there is now at least a partial
solution, but it is not really pleasant.

What I fear is that the community is split up into fractions. The
community is not so large that we can afford this.

> As an aside, we use lots of OCaml libraries developed outside our
> walls: RES, PCRE, Lacaml, Postgres bindings and OUnit and xml-light,
> to name some off the top of my head.

Where some of the developers happen to be Jane Street employees...
Seriously, in many companies there is a culture to block everything from
outside, and that's the other half of my concerns.

Not that all this means you shouldn't publish your code. It's great but
certainly not substituting community interaction.

Gerd

> 
> 
> y
> 
> 
> On Wed, Oct 26, 2011 at 3:33 AM, Gerd Stolpmann
> <info@gerd-stolpmann.de> wrote:
>         Which is already the third one (Equeue and Lwt being the
>         others). I'm
>         very up to reinventing the wheel, but I guess there is some
>         reason.
>         
>         Does Janestreet use any open source libraries? Or does the
>         commitment
>         not go that far?
>         
>         Gerd
>         
>         Am Dienstag, den 25.10.2011, 20:32 -0400 schrieb Yaron Minsky:
>         
>         > While we're in the announcing mood, I wanted to announce the
>         first
>         > public release of Async, Jane Street's monadic concurrency
>         library.
>         >
>         > You can find out more about Async here:
>         >
>         >
>         >    http://ocaml.janestreet.com/?q=node/100
>         >
>         >
>         > y
>         
>         
>         --
>         ------------------------------------------------------------
>         Gerd Stolpmann, Darmstadt, Germany    gerd@gerd-stolpmann.de
>         Creator of GODI and camlcity.org.
>         Contact details:        http://www.camlcity.org/contact.html
>         Company homepage:       http://www.gerd-stolpmann.de
>         *** Searching for new projects! Need consulting for system
>         *** programming in Ocaml? Gerd Stolpmann can help you.
>         ------------------------------------------------------------
>         
> 
> 

-- 
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    gerd@gerd-stolpmann.de
Creator of GODI and camlcity.org.
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
*** Searching for new projects! Need consulting for system
*** programming in Ocaml? Gerd Stolpmann can help you.
------------------------------------------------------------


  parent reply	other threads:[~2011-10-26 12:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-26  0:32 Yaron Minsky
2011-10-26  5:31 ` Cedric Cellier
2011-10-26 10:40   ` Yaron Minsky
2011-10-26  7:33 ` Gerd Stolpmann
2011-10-26 10:57   ` Yaron Minsky
2011-10-26 11:18     ` rixed
2011-10-26 11:34       ` Yaron Minsky
2011-10-26 12:49         ` Jérémie Dimino
2011-10-26 12:31     ` Gerd Stolpmann [this message]
2011-10-27 17:36       ` Milan Stanojević
2011-10-27 18:34         ` Gerd Stolpmann
2011-10-27 19:10           ` Milan Stanojević
2011-10-28  7:29             ` Gerd Stolpmann
2011-10-26  8:07 ` Jérémie Dimino
2011-10-26 11:03   ` Yaron Minsky
2011-10-26 11:06     ` Mark Shinwell
2011-10-26 11:20       ` Anil Madhavapeddy
2011-10-26 11:37         ` Mark Shinwell
2011-10-29  0:52       ` oliver
2011-10-31  9:12         ` Mark Shinwell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1319632284.18639.181.camel@thinkpad \
    --to=info@gerd-stolpmann.de \
    --cc=caml-list@inria.fr \
    --cc=yminsky@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox