Browse thread
[Caml-list] adding an ocaml interpreter to my C program
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| 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 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 > > <OUTPUT> > > 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