From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA16514 for caml-red; Fri, 8 Dec 2000 09:55:46 +0100 (MET) 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 JAA09992 for ; Thu, 7 Dec 2000 09:40:01 +0100 (MET) Received: from nenuphar.saclay.cea.fr (nenuphar.saclay.cea.fr [132.166.192.7]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id eB78e0L21020 for ; Thu, 7 Dec 2000 09:40:00 +0100 (MET) Received: from muguet.saclay.cea.fr (muguet.saclay.cea.fr [132.166.192.6]) by nenuphar.saclay.cea.fr (8.9.1a/8.9.1/CEAnet-relay-5.0.D20+Y2K) with ESMTP id JAA09826 for ; Thu, 7 Dec 2000 09:40:00 +0100 (MET) Received: from harpie.saclay.cea.fr (harpie.saclay.cea.fr [132.166.133.152]) by muguet.saclay.cea.fr (8.9.1a/8.9.1/CEAnet-relay-5.2.D20+Y2K) with ESMTP id JAA29686 for ; Thu, 7 Dec 2000 09:40:00 +0100 (MET) Received: by harpie.saclay.cea.fr (8.8.8+Sun/CEANET.2.0.1) id JAA12460; Thu, 7 Dec 2000 09:40:11 +0100 (MET) Resent-From: basile@aigle.saclay.cea.fr (STARYNKEVITCH Basile) Resent-Message-ID: <14895.19690.836538.402092@gargle.gargle.HOWL> Resent-Date: Thu, 7 Dec 2000 09:40:10 +0100 Resent-To: caml-list@inria.fr MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: <14895.19186.716809.936261@gargle.gargle.HOWL> In-Reply-To: <20001206201313.28498.qmail@web9203.mail.yahoo.com> References: <20001206201313.28498.qmail@web9203.mail.yahoo.com> X-Mailer: VM 6.76 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=iso-8859-1 From: STARYNKEVITCH Basile To: Joe Lisp Subject: callcc/cps-style programming Date: Thu, 7 Dec 2000 09:31:46 +0100 Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit Sender: weis@pauillac.inria.fr >>>>> "Joe" == Joe Lisp writes: Joe> Is anyone working on callcc for OCaml? I am not working on it (although I would like to...) However, adding explicit continuations to Ocaml is an important task: the naive approach -a la Appel 1989, like SML/NJ0.93- would be to reify all continuations, ie to replace call frames by explicit continuation closures. This means drastically changing both the runtime (garbage collector) and the compiler system. Also, this would slow down every OCaml application (probably by at least 10%) - but call/cc would be rather fast (since in constant time) another approach is to segment the call stack, and to copy the call stack on each call/cc. This also require a GC change and probably some (easier) compiler change. However, each call/cc would take a time proportional to the call stack depth (which is copied). Calling a continuation obtained by call/cc would also require copying a stack segment. What I am missing more is the ability to dynamically load some compiled functions (at least the Dynlink package implemented in the native code ocamlopt, with ability to dynamically load native machine code generated by ocamlopt; ideally I would even like to generate garbage collected code on the fly and be able to call and marshall it) Regards. N.B. Any opinions expressed here are only mine, and not of my organization. N.B. Les opinions exprimees ici me sont personnelles et n engagent pas le CEA. --------------------------------------------------------------------- Basile STARYNKEVITCH ---- Commissariat à l Energie Atomique DTA/LETI/DEIN/SLA * CEA/Saclay b.528 (p111f) * 91191 GIF/YVETTE CEDEX * France phone: 1,69.08.60.55; fax: 1.69.08.83.95 home: 1,46.65.45.53 email: Basile point Starynkevitch at cea point fr web perso: http://perso.wanadoo.fr/starynkevitch/basile/