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 OAA27284 for caml-red; Thu, 4 Jan 2001 14:32:52 +0100 (MET) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA24305 for ; Thu, 4 Jan 2001 09:37:30 +0100 (MET) Received: from cremant.inria.fr (cremant.inria.fr [128.93.8.143]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f048bTL23721; Thu, 4 Jan 2001 09:37:30 +0100 (MET) Received: (from lefessan@localhost) by cremant.inria.fr (8.11.0/8.11.0) id f048bTn10394; Thu, 4 Jan 2001 09:37:29 +0100 X-Authentication-Warning: cremant.inria.fr: lefessan set sender to fabrice.le_fessant@inria.fr using -f From: Fabrice Le Fessant MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <14932.13896.248239.656450@cremant.inria.fr> Date: Thu, 4 Jan 2001 09:37:28 +0100 (CET) To: Alain Frisch Cc: OCAML Subject: Re: JIT-compilation for OCaml? References: <20010102203051.A18481@miss.wu-wien.ac.at> X-Mailer: VM 6.75 under Emacs 20.7.1 Reply-To: fabrice.le_fessant@inria.fr Sender: weis@pauillac.inria.fr > Hacking ocamlrun to produce native code simply by expanding > each opcode from the abstract machine seems fairly easy. Some > optimizations are lost. This has already been done by Piumarta & Riccardi (PLDI'98 ?) on the ocaml system, version 2.04 I think. > Another idea would be to make the compiler outputs the "lambda" > intermediate code (shared between ocamlc and ocamlopt) and distribute > it, The lambda code is not exactly the same for both bytecode and native code. This is however not a really big problem. It would probably be a good solution, since using both dynamic linking and ocamlopt, we can generate assembler files and then load them dynamically ... > , maybe with some modification to prevent reverse engineering. Don't understand what you want. Reverse engineering is always possible ... > For instance, it is possible to watch conditionnal jumps and > reorganize the code so that the most taken branches don't need any > jump. This has nothing to do with JIT. Using profiling information can also be done for statically compiled programs, by recompiling them with this information. (this is already done by many compilers). - Fabrice