>>>> "Andy" == Andy Piper
<andy(a)xemacs.org> writes:
Andy> At 02:35 PM 3/5/00 -0800, Kyle Jones wrote:
> This code is looking more and more wrong to me. This patch has
> moved _more_ code that calls Lisp into the critical portion of
> redisplay. This is right under a comment that says we should
> be getting rid of such code.
Andy> Right, but I don't see how this can be achieved
Andy> realistically. Every time you instantiate an image instance
Andy> (and redisplay does this a lot) there is a chance that you
Andy> will call lisp code.
I guess I'm naive. It seems to me that redisplay should be given the
capability to signal Lisp that it needs some function called, and wait
on that function's completion. (Since XEmacs is single threaded, you
can currently assume that it will, I suppose, but we probably want to
reduce dependency on the assumption that XEmacs is single-threaded,
too.) I don't know what exactly "wait" means in the single-threaded
case, but I guess it would just return to Lisp at that point, which
does the work, and then redisplay starts over.
And the analogy to static images seems false, too, since tabs and
progress bars are inherently dynamic; true, they don't get updated in
real time, but they do get reinstantiated many times, multiplying the
chance for a bug to manifest.
> If you call out to Lisp inside redisplay then more state
> changes can be introduced, which might mean that redisplay
> never completes or never gets the display right.
Andy> I don't believe this is currently the case, but I'm prepared
Andy> to be proved wrong.
But if you are wrong but mostly right, these problems are going to be
devilishly hard to debug, aren't they? Especially in a year when
somebody decides to implement an oscilloscope in Lisp in the gutter
and we've all pretty much forgotten this discussion.... I think you
are violating the First Golden Law of Redisplay here.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."