From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 74687BBAF for ; Tue, 24 Aug 2010 00:32:34 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AooBAL6TckzRVdg2kGdsb2JhbACYMYgBCBUBAQEBCQkMBxEDH6ISmwOFNwSENYVB X-IronPort-AV: E=Sophos;i="4.56,259,1280700000"; d="scan'208";a="57710280" Received: from mail-qw0-f54.google.com ([209.85.216.54]) by mail2-smtp-roc.national.inria.fr with ESMTP; 24 Aug 2010 00:32:33 +0200 Received: by qwg5 with SMTP id 5so7037654qwg.27 for ; Mon, 23 Aug 2010 15:32:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.75.1 with SMTP id w1mr4156820qcj.100.1282602753303; Mon, 23 Aug 2010 15:32:33 -0700 (PDT) Received: by 10.229.97.81 with HTTP; Mon, 23 Aug 2010 15:32:33 -0700 (PDT) X-Originating-IP: [99.180.100.231] In-Reply-To: References: Date: Mon, 23 Aug 2010 17:32:33 -0500 Message-ID: Subject: Re: [Caml-list] node.ocaml From: Jeffrey Barber To: Jake Donham Cc: caml-list@inria.fr Content-Type: multipart/alternative; boundary=00163646c10a7fa52a048e8539b3 X-Spam: no; 0.00; node:01 ocaml:01 threading:01 node:01 ocaml:01 syntax:01 threading:01 syntax:01 pumps:98 javascript:98 23,:98 pumps:98 javascript:98 23,:98 wrote:01 --00163646c10a7fa52a048e8539b3 Content-Type: text/plain; charset=ISO-8859-1 Hello, No I haven't, thanks for the link. In looking through the docs, it seems similiar at some level to what I am doing. I'm trying to get away from the language of threading (In my code, I use chain and io_pumps for context storage) since I'm thinking of node.ocaml as an event based io library. This is probably just a marketing decision, :/, rather than a technical decision. More context on node.ocaml: I was recently inspired by unix, memcache, and redis and realized that all you need as a packet format is a single line, so I'm taking that as the packet format and am going to try to build some neat things with it for both my own research/education. For my research, I want to build a fault tolerant JSON data store where I can get the performance benefits of Redis/Memcache but also have transactional transformations over indexed sets. But not only that, I want it to be easy to build them so it can be extended down the road. I've noticed that from using Redis, there are a lot of design patterns emerging that would be better migrated from the application server to a redis-like server. For my education, I really want to do something with Paxos that's useful. I'm not sure what, but I've yet to master it and it sounds fun. I'm tempted to build a chubby clone for distributed locking, but who knows. Oh, I may also cause the universe to explode since I may enable OCaml to call JavaScript via v8... In case it does, I'm sorry now. On Mon, Aug 23, 2010 at 4:31 PM, Jake Donham wrote: > On Sat, Aug 21, 2010 at 8:27 PM, Jeffrey Barber > wrote: > > example code: > > http://github.com/mathgladiator/node.ocaml/blob/master/test/kvp.ml > > Have you considered using Lwt (http://ocsigen.org/lwt) as a layer on > top of raw continuation-passing style? It has a lot of nice functions > for writing asynchronous code, as well as a syntax extension to make > it look more like direct-style code. It provides a select loop > already, but you don't need to use it, or you could integrate > libevent2 with Lwt's event loop. > > Jake > --00163646c10a7fa52a048e8539b3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello,

No I haven't, thanks for the link. In looking through the= docs, it seems similiar at some level to what I am doing. I'm trying t= o get away from the language of threading (In my code, I use chain and io_p= umps for context storage) since I'm thinking of node.ocaml as an event = based io library. This is probably just a marketing decision, :/, rather th= an a technical decision.

More context on node.ocaml:

I was recently inspired by unix, mem= cache, and redis and realized that all you need as a packet format is a sin= gle line, so I'm taking that as the packet format and am going to try t= o build some neat things with it for both my own research/education.

For my research, I want to build a fault tolerant JSON data store where= I can get the performance benefits of Redis/Memcache but also have transac= tional transformations over indexed sets. But not only that, I want it to b= e easy to build them so it can be extended down the road. I've noticed = that from using Redis, there are a lot of design patterns emerging that wou= ld be better migrated from the application server to a redis-like server.
For my education, I really want to do something with Paxos that's u= seful. I'm not sure what, but I've yet to master it and it sounds f= un. I'm tempted to build a chubby clone for distributed locking, but wh= o knows.

Oh, I may also cause the universe to explode since I may enable OCaml t= o call JavaScript via v8... In case it does, I'm sorry now.

On Mon, Aug 23, 2010 at 4:31 PM, Jake Donham <jake@donham.org> wrote:
On Sat, Aug 21, 2010 at 8:27 PM, Jeffrey Barber <jeff@mathgladiator.com> wrote:
> example code:
> http://github.com/mathgladiator/node.ocaml/blob/= master/test/kvp.ml

Have you considered using Lwt (http://ocsigen.org/lwt) as a layer on
top of raw continuation-passing style? It has a lot of nice functions
for writing asynchronous code, as well as a syntax extension to make
it look more like direct-style code. It provides a select loop
already, but you don't need to use it, or you could integrate
libevent2 with Lwt's event loop.

Jake

--00163646c10a7fa52a048e8539b3--