window configurations no longer (since 21.5) include windows ! ?

Henry S. Thompson ht at inf.ed.ac.uk
Mon Feb 11 05:22:26 EST 2008


My reading of the documentation goes with Stephen's, but that's pretty
much beside the point, I guess, although it's also clear that at least
one substantial application, namely ecb, depends on identity
preservation.

The substantive question is: what's the real functionality that is
lost when identity preservation is lost, and can we get it back w/o
losing the major benefits of the 21.5 promotion of much of the window
code from C to elisp?

I can see two alternative paths, doubtless there are others:

 1) (Re-)introduce identity preservation into the code.  I haven't
    looked into this in detail, but a quick look at the code suggests
    that if we a) included the windows themselves in saved
    configurations and b) factored most of split-window out into a
    function with an additional argument, namely the window to use for
    the new pane, and called _that_ from set-window-configuration, we
    could do this.  I _think_ all this would require at the C level
    would be a function which 'revived' a 'dead' window by flipping
    the relevant bit.

 2) Introduce a new souped-up version of save-window-excursion, call
    it save-window-bindings for the sake of argument, looks like this:

    (save-window-bindings (symbols. . .)
       ...)

    where the semantics is as for save-window-excursion, with the
    additional guarantee that each of the symbols which is bound to a
    window will be reset if necessary to the new window which
    corresponds (in the 'restored' configuration) to the (now dead)
    window it was bound to going in.

    This would also require adding windows themselves to saved
    configurations, but no changes at the C level.

Neither of these is perfect, this is just intended to get some
discussion started.  (1) has the flaw that it exposes entry points
which will have unpredictable and probably catastrophic effects if
used in other than the context for which they are intended.  (2) has
the flaw that it will only repair variable bindings and not, for
example, windows held in lists or vectors. . .

Thoughts?

ht
-- 
 Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                     Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
            Fax: (44) 131 650-4587, e-mail: ht at inf.ed.ac.uk
                   URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]



More information about the XEmacs-Beta mailing list