From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: RE: with-output-to-temp-buffer and help-mode Date: Sat, 26 Jul 2014 10:10:25 +0900 Message-ID: <87a97worge.fsf@uwakimon.sk.tsukuba.ac.jp> References: <1yppgtua5n.fsf@fencepost.gnu.org> <61a1087c-3e21-46df-a12c-22dce14e82b1@default> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-Trace: ger.gmane.org 1406337061 2381 80.91.229.3 (26 Jul 2014 01:11:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 26 Jul 2014 01:11:01 +0000 (UTC) Cc: Leo Liu , emacs-devel@gnu.org To: Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jul 26 03:10:54 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XAqVh-00005K-Gg for ged-emacs-devel@m.gmane.org; Sat, 26 Jul 2014 03:10:53 +0200 Original-Received: from localhost ([::1]:57385 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAqVg-000858-W8 for ged-emacs-devel@m.gmane.org; Fri, 25 Jul 2014 21:10:53 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48779) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAqVW-00084q-IZ for emacs-devel@gnu.org; Fri, 25 Jul 2014 21:10:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XAqVP-0002js-2A for emacs-devel@gnu.org; Fri, 25 Jul 2014 21:10:42 -0400 Original-Received: from mgmt1.sk.tsukuba.ac.jp ([130.158.97.223]:34804) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XAqVO-0002jO-GK for emacs-devel@gnu.org; Fri, 25 Jul 2014 21:10:34 -0400 Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mgmt1.sk.tsukuba.ac.jp (Postfix) with ESMTP id 04C593FA0B1B; Sat, 26 Jul 2014 10:10:26 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id ED2B61A28DD; Sat, 26 Jul 2014 10:10:25 +0900 (JST) In-Reply-To: <61a1087c-3e21-46df-a12c-22dce14e82b1@default> X-Mailer: VM undefined under 21.5 (beta34) "kale" acf1c26e3019 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 130.158.97.223 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:173158 Archived-At: Drew Adams writes: > No. Please read what I wrote. tl;dr Your point is actually rather subtle (though the general outline is well-known), and some important ideas were left implicit. I don't really quarrel with the notion that long-timers on this list probably should "get" it without it being made explicit, but if not, don't put the burden on the reader. Not everybody is a long-time reader, and not all of the long-timers will necessarily have their heads in the right place. Rather than argue who said what, point by point, here's the argument in much more explicit form. 1. The "traditional" implementation of `with-output-to-temp-buffer' provides (by default, and without option) many features to support help-mode. (Fact: nobody argues with this.) 2. Use cases where those features are important are in fact common, both in Emacs and in third-party code. 3. The argument does not depend at all on the existence or frequency of use cases that don't use the help features. Where they actually get in the way, it's probably rarely visible to the user as existing code has *already* worked around those issues. 4. Because of (2), backward-compatibility demands that the traditional name continue to have these traditional semantics -- any change causes widespread breakage, not all of which is possible to fix. (Leo seems to be ignoring this.) 5. The strategy to deal with this (provide a new alias indicating the traditional semantics properly, and a new function with an appropriate name to indicate the non-help semantics) is well-known, is well-known to have worked well in similar circumstances, and should be adopted here, too. We even know *why* it works well: because of (3), only new code has need for the new function, and in new code it's almost as easy to use a function with a new name as the documentation for the "obvious" name will indicate that it's a backward compatibility kludge. 6. Accept that the "best" name for the new function is unavailable, and move on. (This seems to be hard for many developers to do, not just in Emacs. ;-) 7. Implementation strategy (duplicate the simple logic for a non-help buffer, reimplement `with-output-to-temp-buffer' using the new function, something else) is up to the implementer. (Of course.) It's true that you've written almost all of that, almost all in equivalent words, but it's spread over many more lines and several posts.