re: front & back end communication / was GUI ...



>>>>> "CY" == C Y <smustudent1@yahoo.com> writes:

    CY> Maybe you can help me straighten this out in my head...

    CY> I'd like to have a lisp based GUI for Maxima which is aware of what is
    CY> going on in the kernel, but the consensus is that we want to use a
    CY> kernel-GUI connection so that implies a certain disconnection between
    CY> the two.  What I (naively) would like to do in such a case is have a
    CY> way to let the two lisp environments, GUI and kernel, sync all their
    CY> changed variables after a command is executed in either, so they both
    CY> effectively are still in the same lisp environment.  For example, if
    CY> the GUI wants to update a dialouge due to a package being loaded it is
    CY> aware of all the changes the package made to the kernel environment,
    CY> and likewise if the GUI is resized the line breaking algorithm
    CY> operating in the kernel gets told about that.  I realise this is a
    CY> rather redundant setup, but it a) ensures that anything either kernel
    CY> or GUI wants to know about the other process they do know, b) if either
    CY> fails, the other can restore it to the state right before failure, and
    CY> c) it could be handy for generating useful bug reports.  Is there any
    CY> good way to do this?

I think emacs talks to gdb in a similar fashion.  gdb sends extra
stuff that emacs uses, but doesn't display.

In any case, I think trying to maintain 2 sets of info is sure to go
wrong.  It would seem much better that, if the GUI needed some info,
the GUI would just ASK maxima to give back the info, hiding any output
from the user.  If the GUI changes something, then it sends the
appropriate command to the kernel.  At least this way, you can never
get out of sync.

Ray