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 QAA21454; Wed, 7 Jan 2004 16:42:44 +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 QAA21046 for ; Wed, 7 Jan 2004 16:42:43 +0100 (MET) Received: from demos.bsdclusters.com (demos.bsdclusters.com [69.55.225.36]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id i07Fgf529337 for ; Wed, 7 Jan 2004 16:42:41 +0100 (MET) Received: from demos.bsdclusters.com (demos [69.55.225.36]) by demos.bsdclusters.com (8.12.8p1/8.12.8) with ESMTP id i07FgcV0039280; Wed, 7 Jan 2004 07:42:38 -0800 (PST) (envelope-from kmacy@fsmware.com) Received: from localhost (kmacy@localhost) by demos.bsdclusters.com (8.12.8p1/8.12.8/Submit) with ESMTP id i07FgcIX039277; Wed, 7 Jan 2004 07:42:38 -0800 (PST) X-Authentication-Warning: demos.bsdclusters.com: kmacy owned process doing -bs Date: Wed, 7 Jan 2004 07:42:38 -0800 (PST) From: Kip Macy X-X-Sender: kmacy@demos.bsdclusters.com To: Richard Jones cc: caml-list@inria.fr Subject: Re: [Caml-list] adding an ocaml interpreter to my C program In-Reply-To: <20040107130048.GA18624@redhat.com> Message-ID: <20040107074155.H27427@demos.bsdclusters.com> References: <20040107005029.V39150@demos.bsdclusters.com> <20040107130048.GA18624@redhat.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Loop: caml-list@inria.fr X-Spam: no; 0.00; kip:99 caml-list:01 2004:99 kip:99 callbacks:01 callbackn:01 dynamically:01 horrific:01 hacks:01 dynlink:01 gdb:01 gdb:01 freshmeat:01 footprints:01 giants:99 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Thanks. Not quite as trivial as it is with perl, but not a major undertaking. -Kip On Wed, 7 Jan 2004, Richard Jones wrote: > On Wed, Jan 07, 2004 at 01:01:00AM -0800, Kip Macy wrote: > > It is possible to add many scripting languages as configuration > > languages for an arbitrary C program. One can transfer control > > to the interpreter, let it use the C bindings to modify program > > state, and then get control back. I'll give perl as an example: > [...] > > I don't see any obvious way of doing this with ocaml. > > It's documented here (right at the bottom, in the "Advanced" section): > > http://caml.inria.fr/ocaml/htmlman/manual032.html > > Basically, you call caml_main, which runs your initialization code > (written in OCaml), which registers C callbacks, which your C can then > execute by calling callbackN (). > > What the manual doesn't tell you is that none of this stuff works at > all if your C code is contained in a dynamically linked library (.so > file), unless you undertake some pretty horrific hacks. Particularly > if you plan to use the OCaml Dynlink module at the same time. See the > code in my mod_caml project[1] for details. > > Also, it only works for bytecode. (And it only works for compiled > code - linking in the toplevel so you can parse ML directly is a > different thing entirely). > > > I'm using perl as a powerful macro language for gdb by just doing: > > (gdb) sourceperl mycoreanalyser.pl > > > > You might also be interested in [2]. > > Rich. > > [1] http://www.merjis.com/developers/mod_caml/ > [2] http://www.merjis.com/developers/perl4caml/ > > -- > Richard Jones. http://www.annexia.org/ http://freshmeat.net/users/rwmj > Merjis Ltd. http://www.merjis.com/ - improving website return on investment > If I have not seen as far as others, it is because I have been > standing in the footprints of giants. -- from Usenet > ------------------- 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