Dear Octave GUI developers,
I'd like to integrate Octave as interpreter for a DSP audio (hardware) project, which includes an IDE running on a standard Linux computer. I have succeeded to communicate with the Octave interpreter through pipes, but it is difficult or nearly impossible to correctly parse the interpreter output into variable values, error messages, script output etc.
Now, the FAQ http://wiki.octave.org/FAQ#Why_did_you_create_yet_another_GUI_instead_of_making_one_that_already_exists_better.3F
"All [previous GUIs] failed at a very important point, integration with Octave. They treated Octave as a foreign black box using pipes for communication. This approach is bound to fail with each new version. [...]
Quint was a project for an Octave GUI that actually tried to do it right. Eventually it was merged into the Octave repository and is no longer a separate project."
I knew from the beginning that I was not "doing it right", and although the pipe communicating was fine as a quick proof of concept, I want to do it right, now.
I have a hard time analyzing the code to figure out how the new GUI (or Quint) are communicating with the interpreter. Let's take a specific example: the workspace window updates the variable table after each interactive command sent to the interpreter. Can you point me to the location in the Octave sources, which is responsible to perform the update of the table view?
In my understanding the GUI should either hook a callback function into the interpreter, which the interpreter notifies whenever any variable changes, or the GUI should execute a variant of the "who" command, whenever an interactive command or script execution has finished. Where exactly is this implemented?
Are these interpreter-GUI communication concepts documented somewhere on the design level?