From octave-maintainers-request at bevo dot che dot wisc dot edu Mon Oct 27 08:58:08 2003 Subject: Re: using octave from a C++ program From: Paul Kienzle To: Jonathan Hudson Cc: octave-maintainers at bevo dot che dot wisc dot edu Date: Mon, 27 Oct 2003 09:57:58 -0500 --qlTNgmc+xy1dBmNv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Jonathan, As well as the initialization code you included from octave.cc, you also need to do the initialization and cleanup in top_level.cc. Since I'm keen to see you succeed in this (I want to embed octave in Tcl for example), I got your example to compile and run. In addition to init_octave, I've defined call_octave which prepares the interpreter state, calls eval_string and returns. There is a lot of work left to be done of course, but I hope this is enough to get you started. Please try to keep a C-compatible interface to whatever octave features you need, with opaque pointers to octave's data structures. This will make it easier to embed in a variety of environments. You do not want to maintain your own fork of top_level.cc and octave.cc! Please submit patches which break up octave.cc and top_level.cc in such a way that octave's read-eval-print loop is separate from the initialization and evaluation code. Paul Kienzle pkienzle at users dot sf dot net On Fri, Oct 24, 2003 at 02:31:05PM -0800, Jonathan Hudson wrote: > Oops- I forgot to attach the code. > > In regards to writing it as an octave script first, > right now I wrote an expect script that > lets me run octave commands from python. > But exchanging the data between octave and python > is slower then attaching octave directly as a module > since I need to convert the text output each time > a variable changes. > > -- > http://www.fastmail.fm - One of many happy users: > http://www.fastmail.fm/docs/quotes.html --qlTNgmc+xy1dBmNv Content-Type: application/x-tar-gz Content-Disposition: attachment; filename="octave_embed.tar.gz" Content-Transfer-Encoding: base64 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 j38DQnnaqwBQAAA= --qlTNgmc+xy1dBmNv--