changeset 892:52c2a7139db0

[xemacs-hg @ 2002-07-02 12:27:53 by stephent] slow killing FAQ <877kkeco4v.fsf@tleepslib.sk.tsukuba.ac.jp>
author stephent
date Tue, 02 Jul 2002 12:27:58 +0000
parents bf76db2b446e
children c9f067fd71a3
files ChangeLog PROBLEMS man/ChangeLog man/xemacs-faq.texi
diffstat 4 files changed, 85 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Jul 02 12:12:13 2002 +0000
+++ b/ChangeLog	Tue Jul 02 12:27:58 2002 +0000
@@ -1,3 +1,7 @@
+2002-07-02  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* PROBLEMS (Running XEmacs; General): Xref FAQ Q3.10.6.
+
 2002-05-22  Andy Piper  <andy@xemacs.org>
 
 	* build-msw-release.sh (TMPINSTALL): install to a tmpdir so that
--- a/PROBLEMS	Tue Jul 02 12:12:13 2002 +0000
+++ b/PROBLEMS	Tue Jul 02 12:27:58 2002 +0000
@@ -631,6 +631,11 @@
 * Problems with running XEmacs
 ==============================
 ** General
+*** Starting with 21.4.x, killing text is absurdly slow.
+
+See FAQ Q3.10.6.  Should be available on the web near
+http://www.xemacs.org/faq/xemacs-faq.html#SEC160.
+
 *** Whenever I try to retrieve a remote file, I have problems.
 
 A typical error: FTP Error: USER request failed; 500 AUTH not understood.
--- a/man/ChangeLog	Tue Jul 02 12:12:13 2002 +0000
+++ b/man/ChangeLog	Tue Jul 02 12:27:58 2002 +0000
@@ -1,3 +1,8 @@
+2002-07-02  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* xemacs-faq.texi (Top, Customization, Q3.10.5, Q3.10.6):
+	New "killing is slow" FAQ and link updates.
+
 2002-06-17  Jerry James  <james@xemacs.org>
 
 	* emodules.texi (Loading other Modules): Describe why we do not
--- a/man/xemacs-faq.texi	Tue Jul 02 12:12:13 2002 +0000
+++ b/man/xemacs-faq.texi	Tue Jul 02 12:27:58 2002 +0000
@@ -7,7 +7,7 @@
 @finalout
 @titlepage
 @title XEmacs FAQ
-@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2002/06/11 19:28:15 $
+@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2002/07/02 12:27:58 $
 @sp 1
 @author Tony Rossini <rossini@@biostat.washington.edu>
 @author Ben Wing <ben@@xemacs.org>
@@ -268,6 +268,7 @@
 * Q3.10.3::     Can I turn off the highlight during isearch?
 * Q3.10.4::     How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
 * Q3.10.5::     The region disappears when I hit the end of buffer while scrolling.
+* Q3.10.6::     Why is killing so slow?
 
 Major Subsystems
 
@@ -2515,6 +2516,7 @@
 * Q3.10.3::     Can I turn off the highlight during isearch?
 * Q3.10.4::     How do I turn off highlighting after @kbd{C-x C-p} (mark-page)?
 * Q3.10.5::     The region disappears when I hit the end of buffer while scrolling.
+* Q3.10.6::     Why is killing so slow?
 @end menu
 
 @node Q3.0.1, Q3.0.2, Customization, Customization
@@ -3807,7 +3809,7 @@
 
 Also see @ref{Q3.10.1}.
 
-@node Q3.10.5,  , Q3.10.4, Customization
+@node Q3.10.5, Q3.10.6, Q3.10.4, Customization
 @unnumberedsubsec Q3.10.5: The region disappears when I hit the end of buffer while scrolling.
 
 This has been fixed by default starting with XEmacs-20.3.
@@ -3838,6 +3840,73 @@
 Thanks to @email{raman@@adobe.com, T. V. Raman} for assistance in deriving this
 answer.
 
+@node Q3.10.6,  , Q3.10.5, Customization
+@unnumberedsubsec Q3.10.6: Why is killing so slow?
+
+This actually is an X Windows question, although you'll notice it with
+keyboard operations as well as while using the GUI.  Basically, there
+are four ways to communicate interprogram via the X server:
+
+@table @strong
+@item Primary selection
+a transient selection that gets replaced every time a new selection is made
+
+@item Secondary selection
+for "exchanging" with the primary selection
+
+@item Cut buffers
+a clipboard internal to the X server (deprecated)
+
+@item Clipboard selection
+a selection with a notification protocol that allows a separate app to
+manage the clipboard
+@end table
+
+The cut buffers are deprecated because managing them is even more
+inefficient than the clipboard notification protocol.  The primary
+selection works fine for many users and applications, but is not very
+robust under intensive or sophisticated use.
+
+In Motif and MS Windows, a clipboard has become the primary means for
+managing cut and paste.  These means that "modern" applications tend to
+be oriented toward a true clipboard, rather than the primary selection.
+(On Windows, there is nothing equivalent to the primary selection.)
+It's not that XEmacs doesn't support the simple primary selection
+method, it's that more and more other applications don't.
+
+So the slowdown occurs because XEmacs now engages in the clipboard
+notification protocol on @emph{every} kill.  This is especially slow on
+Motif.
+
+With most people running most clients and server on the same host, and
+many of the rest working over very fast communication, you may expect
+that the situation is not going to improve.
+
+There are a number of workarounds.  The most effective is to use a
+special command to do selection ownership only when you intend to paste
+to another application.  Useful commands are @code{kill-primary-selection}
+and @code{copy-primary-selection}.  These work only on text selected
+with the mouse (probably; experiment), and are bound by default to the
+@kbd{Cut} and @kbd{Copy}, respectively, buttons on the toolbar.
+@code{copy-primary-selection} is also bound to @kbd{C-Insert}.  You can
+yank the clipboard contents with @code{yank-primary-selection}, bound to
+the @kbd{Paste} toolbar button and @kbd{Sh-Insert}.
+
+If you are communicating by cut and paste with applications that use the
+primary selection, then you can customize
+@code{interprogram-cut-function} to @code{nil}, restoring the XEmacs
+version 20 behavior.  How can you tell if a program will support this?
+Motifly-correct programs require the clipboard; you lose.  For others,
+only by trying it.  You also need to customize the complementary
+@code{interprogram-paste-function} to @code{nil}.  (Otherwise
+XEmacs-to-XEmacs pastes will not work correctly.)
+
+You may get some relief on Motif by setting
+@code{x-selection-strict-motif-ownership} to nil, but this means you will
+only intermittently be able to paste XEmacs kills to Motif applications.
+
+Thanks to Jeff Mincy and Glynn Clements for corrections.
+
 @node Subsystems, Miscellaneous, Customization, Top
 @unnumbered 4 Major Subsystems