[cells-devel] Current DP ... not GE pulse ... of cell ...?

Peter Hildebrandt peter.hildebrandt at gmail.com
Thu May 15 16:46:29 UTC 2008


Ken,

thanks for the quick response.

>  I have not put any thought into recovery. We could certainly do something
> primitive like simply not make such a big fuss over the error, either
> allowing the setf with a big noisy warning about "don't think you just
> triggered some dataflow", or /not/ allowing the setf (and warning to that
> effect) but not do the *stop* thing. I guess you could also do (setf
> cells::*stop* nil) and see what happens.

Maybe that'd help, maybe we could have a debug mode in which such
stuff only triggers big and ugly warnings, but goes through.  I tend
to do silly things frequently.

>  That *stop* stuff is the only way to stop Lisp applications being fed
> events by a GUI library, and I went thru this twice with two different
> OSes/window managers so it's a solid problem... hmmm, I have never messed
> with fancy restarts, but that is a possibility.

I'm not quite sure whether I'm following you.  The question is (for
me) *why* do we need to stop everything?  Maybe I'm missing the
obvious, but couldn't cells just keep on working as if nothing
happened, and keep processing GUI events?

>  One problem is that we set *stop* precisely to stop Cells machinery from
> running, so a lot of things happen that do not get handled. Just clearing
> the *stop* does not get those things handled. But it sounds like you have a
> case where you have a long-enough running process that you cannot just
> restart /and/ you feel you could just carry on... well, maybe the above has
> you reconsidering.

Hm, so you're saying that the state is so messed up after a cells stop
that I won't do any good to work on?

> > I used to do a (cells-reset), but all too often the next cells
> > operation runs into something like that:
> >
> > Current DP 28 not GE pulse 1160 of cell
> >
> > ... and somehow I don't get anything done until I restart lisp.
> >
>
>  Ah, you have to restart the Lisp? Is this because of what I see on the
> Windows side: if I close my Gtk window I lock up my Lisp?

Not quite sure whether this is related.  What do you mean by lock up?
It does not return to the repl?  I might have fixed that a while ago,
definitely in cells-gtk3.  Or you cannot open another window from the
same lisp instance?  Or what is going on?

For me what happens is:

- I do something in my GUI app
- this triggers an illegal cells operation (usually a setf)
- i get to the debugger
- i drop to the repl
- i do (cells-reset)
- i fix some stuff
- i restart my app ---> Boom, DP error shows up

... so how do I tell cells to discard all state and start from scratch then?

>  For me it is just abort/fix/rerun. If /that/ is the problem, to tell you
> the truth I would not rest until I could get Gtk to come down without taking
> my Lisp with it. It ain't just Lisp if it isn't interactive (by which I mean
> I should be able to run, crash, and start over at will.

Well, I think I *can* do this with GTK -- I just can't figure out how
to tell cells to let me rerun.

Peter



More information about the cells-devel mailing list