From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id EA1C3BBBB for ; Wed, 1 Mar 2006 10:26:40 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k219Qe3T008685 for ; Wed, 1 Mar 2006 10:26:40 +0100 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id KAA27272 for ; Wed, 1 Mar 2006 10:26:39 +0100 (MET) Received: from xproxy.gmail.com (xproxy.gmail.com [66.249.82.196]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id k219QcNV008677 for ; Wed, 1 Mar 2006 10:26:39 +0100 Received: by xproxy.gmail.com with SMTP id i31so59008wxd for ; Wed, 01 Mar 2006 01:26:38 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=BZq2dQq6KSC16R1Zi4r2PonTuZI+MCXeDDIEyy4XBIddUN8YAbK4ITow4BK7dr/+gx2BEBach/NVj0bXka//l+mOLo385dD7rmrz7SrjQ7HiUBYUEheLmcb0J8OREYr2P+DtUWyEP8KKinNn4JPXi9gSuWrWfj+pS2S2/rq+TUc= Received: by 10.70.116.13 with SMTP id o13mr1688160wxc; Wed, 01 Mar 2006 01:26:38 -0800 (PST) Received: by 10.70.126.16 with HTTP; Wed, 1 Mar 2006 01:26:38 -0800 (PST) Message-ID: <9d3ec8300603010126q4086821cp976b082f1b2b7885@mail.gmail.com> Date: Wed, 1 Mar 2006 10:26:38 +0100 From: "Till Varoquaux" To: "Jacques Carette" Subject: Re: [Caml-list] Native delimited continuations for bytecode OCaml Cc: caml-list@inria.fr, oleg@pobox.com In-Reply-To: <9d3ec8300603010113t608db113x3c5bc06477c3111a@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: <4403A889.9070708@mcmaster.ca> <9d3ec8300603010113t608db113x3c5bc06477c3111a@mail.gmail.com> X-Miltered: at nez-perce with ID 440568D0.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 440568CE.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 delimited:01 bytecode:01 ocaml:01 oups:01 marshal:01 marshal:01 closures:01 typing:01 bin:01 bin:01 exists:01 native:02 sys:03 sys:03 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_BY_IP autolearn=disabled version=3.0.3 Oups, sorry the mail was sent while I was typing (someone accidentally pressed enter...). Can your code be used for unlimited continuation? I am currently using code that looks somewhat like this: let suspend ()=3D and save_state k=3D let oc=3Dopen_out_bin "state" in Marshal.to_channel oc k [Marshal.Closures]); close_out oc; (* Skips a warning because this function does not return (it is an exi= t point)*) ignore(exit 0) in callcc save_state (* If there is a resume point skip to it *) let _ =3D if (Sys.file_exists "state") then ( let oi =3D open_in_bin "state" in let k=3DMarshal.from_channel oi in Sys.remove("state"); close_in oi; throw k ()); [note]This code was simplified for sake of clarity and might have small err= ors. I was wondering if something similar is possible with your library? Regards, Till Varoquaux