Hi,
As some people here know, we've been working on a CLIM- and Climacs-based editor for lute tablature. We're at the stage now where the performance characteristics are getting beyond our abilities to manage, so we thought we would try to open up the problem to specialists.
The issue seems to be that (with the patch I sent a week or so ago, to use the bounding-rectangle of a region union rather than the precise union itself), essentially all of the time spent in moving around a Tabcode editor buffer is spent in COMPUTE-DIFFERENCE SET. (Without the patch I sent, essentially all the time is spent in computing region unions: and it takes about 100 times as long doing that as it does computing a difference set...). Holding down a cursor key, on one-year-old hardware, leads to perceptible lag and continued cursor motion after the key is released.
We'd be happy to provide more details, or to explain other things about our application and our aims for it; any advice or suggestions for improvements to redisplay performance would be greatly appreciated.
The code itself is at http://www.doc.gold.ac.uk/~mas01cr/tabcode-20050708.tar.gz; papers discussing the application are available from http://www.doc.gold.ac.uk/~mas01cr/papers/.
Any contributions and observations welcome (though please try not to laugh too much :-)
Cheers,
Christophe