Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] adding an ocaml interpreter to my C program
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-01-07 (15:42)
From: Kip Macy <kmacy@f...>
Subject: Re: [Caml-list] adding an ocaml interpreter to my C program
Thanks. Not quite as trivial as it is with perl, but not a major


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):
> 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
> > <OUTPUT>
> You might also be interested in [2].
> Rich.
> [1]
> [2]
> --
> Richard Jones.
> Merjis Ltd. - 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 Archives:
Bug reports: FAQ:
Beginner's list: