From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id C064CBB84 for ; Fri, 10 Oct 2008 16:25:26 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmgDABMD70jAXQIniGdsb2JhbACBcpFpAQEBFSKpZoFs X-IronPort-AV: E=Sophos;i="4.33,390,1220220000"; d="scan'208";a="30184500" Received: from concorde.inria.fr ([192.93.2.39]) by mail4-smtp-sop.national.inria.fr with ESMTP; 10 Oct 2008 16:25:17 +0200 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m9AEPG0u003878 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Fri, 10 Oct 2008 16:25:16 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjQLAHgC70jVBJXyWmdsb2JhbACBcpFfARYICwgRBKl2gWw X-IronPort-AV: E=Sophos;i="4.33,390,1220220000"; d="scan'208";a="18551619" Received: from outmailhost.telefonica.net (HELO ctsmtpout1.frontal.correo) ([213.4.149.242]) by mail1-smtp-roc.national.inria.fr with ESMTP; 10 Oct 2008 16:25:16 +0200 Received: from NANA.localdomain (83.60.161.73) by ctsmtpout1.frontal.correo (7.2.056.6) (authenticated as ferferse$telefonica.net) id 48EE305E000ACBF9 for caml-list@inria.fr; Fri, 10 Oct 2008 16:25:15 +0200 Received: from mfp by NANA.localdomain with local (Exim 4.69) (envelope-from ) id 1KoIvb-0002d3-1s for caml-list@inria.fr; Fri, 10 Oct 2008 16:25:15 +0200 Date: Fri, 10 Oct 2008 16:25:14 +0200 From: Mauricio Fernandez To: caml-list@inria.fr Subject: Re: [Caml-list] - Convert Caml to C/C++, C#, PHP, etc - Message-ID: <20081010142514.GF14395@NANA.localdomain> Mail-Followup-To: caml-list@inria.fr References: <19791755.post@talk.nabble.com> <200810100526.49635.jon@ffconsultancy.com> <20081010143053.275b0ca3.mle+ocaml@mega-nerd.com> <200810100555.03765.jon@ffconsultancy.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200810100555.03765.jon@ffconsultancy.com> User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Miltered: at concorde with ID 48EF65CC.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; 0100,:01 ocaml's:01 bytecodes:01 ocaml:01 compiler:01 ocaml's:01 bytecodes:01 byterun:01 interp:01 camlcvs:01 cvsweb:01 cdk:01 asmdynlink:01 interp:01 interpretor:01 On Fri, Oct 10, 2008 at 05:55:03AM +0100, Jon Harrop wrote: > On Friday 10 October 2008 04:30:53 Erik de Castro Lopo wrote: > > Jon Harrop wrote: > > > You mean the program that generates OCaml's bytecodes is > > > written in OCaml. > > > > Commonly known as a compiler. > > One of the compilers, yes. > > > > the program that executes OCaml's bytecodes > > > > Commonly known as a virtual machine. > > No, I was referring specifically to the interpreter (byterun/interp.c) and not > the run time. So not the whole VM. What is done with the rest of the VM is up > in the air. http://camlcvs.inria.fr/cgi-bin/cvsweb/cdk/asmdynlink/interp.ml $ head -18 interp.ml | tail -7 (* This module implement an interpretor for OCAML bytecode. The bytecode is supposed to be linked (ie symbols are resolved). Closures are compiled as native closures taking only one argument each time. For example, GRAB creates a native closure waiting for "arity" arguments, then putting them on the stack and calling the interpretor with a new pc. *) -- Mauricio Fernandez - http://eigenclass.org