From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id EAA01377; Sun, 29 Aug 2004 04:31:10 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 EAA00308; Sun, 29 Aug 2004 04:31:09 +0200 (MET DST) Received: from smtp3.adl2.internode.on.net (smtp3.adl2.internode.on.net [203.16.214.203]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id i7T2V6Pl029536; Sun, 29 Aug 2004 04:31:07 +0200 Received: from [192.168.1.200] (ppp212-216.lns2.syd3.internode.on.net [203.122.212.216]) by smtp3.adl2.internode.on.net (8.12.9/8.12.9) with ESMTP id i7T2V3HY011928; Sun, 29 Aug 2004 12:01:04 +0930 (CST) Subject: Re: [Caml-list] Re: (GC issues) Alternative Bytecodes for OCaml From: skaller Reply-To: skaller@users.sourceforge.net To: Basile "Starynkevitch [local]" Cc: caml-list In-Reply-To: <20040828204554.GA9252@bourg.inria.fr> References: <004f01c48c19$9950d8e0$0100a8c0@warp> <412F9059.2080808@orcaware.com> <20040827221801.GB1545@annexia.org> <20040828.083835.21913928.yoriyuki@mbg.ocn.ne.jp> <20040828164012.GA6420@bourg.inria.fr> <003f01c48d20$fa1497e0$0100a8c0@warp> <20040828204554.GA9252@bourg.inria.fr> Content-Type: text/plain Message-Id: <1093746662.15255.2206.camel@pelican.wigram> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.2.2 (1.2.2-4) Date: 29 Aug 2004 12:31:02 +1000 Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 41313FEA.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 bytecodes:01 sourceforge:01 2004:99 basile:01 2004:99 cannasse:01 fwiw:01 triggers:01 coders:01 slower:01 speedup:01 ocamlopt:01 fallback:01 dynlink:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Sun, 2004-08-29 at 06:45, Basile Starynkevitch [local] wrote: > On Sat, Aug 28, 2004 at 07:03:44PM +0200, Nicolas Cannasse wrote: > > Ocaml does scan *explicitly* the C stack. Telling *explicitly* what > are the local GC roots of C routines is the task of CAML_param & > CAML_local macros (FWIW, my Qish GC use very similar tricks,and every > exact GC has to do similarily.). The Felix GC does not. You may wonder how this can possibly work. The answer is -- the GC is called by the driver, and the driver is not called by the program -- the driver *calls* the program. So the C stack is always empty whilst executing the driver code, hence the GC does not need to scan the C stack. Of course -- your proposition is technically not contradicted in this architecture -- more precisely it remains true 'in vaccuo' :) > This interesting discussion triggers another interesting question: > would Ocaml coders still use Ocaml if its implementation was (say) 3 > or 10 times slower than the current implementation? Yes they would. John Goerzen already made that quite clear: there are plenty of times when performance just isn't the issue. I am assuming you have two choices -- use the fast Ocaml and lose interoperability, or use the slow Ocaml to get it. > Alternatively, do > people use my OcamlJitRun program which could provide (on several > programs) a speedup of nearly 2 on their bytecode program. I have an application which I would like to enhance with dynamic loading. This application does need to perform well. I'm using ocamlopt, with bytecode as a fallback, but I have to mandate bytecode to use Dynlink. A decision to do that is likely to be strongly influenced by the existence of OcamJitRun -- there is huge difference between a a 5 minute compile and a 15 minute compile: 5 is enough to make a cup of coffee, 15 is enough to go out for lunch :) -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners