From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Obsoleting end-user-functions Date: Mon, 05 Apr 2010 09:48:01 -0400 Message-ID: References: <50365.130.55.132.97.1270318658.squirrel@webmail.lanl.gov> <622A6B6A-AC87-4229-B40D-CCD28A3B5C25@mit.edu> <7BC79A0C-3709-4FD4-A678-0F235B789213@mit.edu> <87r5mupr6l.fsf@uwakimon.sk.tsukuba.ac.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1270475304 23237 80.91.229.12 (5 Apr 2010 13:48:24 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 5 Apr 2010 13:48:24 +0000 (UTC) Cc: Chad Brown , emacs-devel@gnu.org To: "Stephen J. Turnbull" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 05 15:48:17 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Nymf0-00061m-2E for ged-emacs-devel@m.gmane.org; Mon, 05 Apr 2010 15:48:14 +0200 Original-Received: from localhost ([127.0.0.1]:56524 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nymez-0007E8-Fj for ged-emacs-devel@m.gmane.org; Mon, 05 Apr 2010 09:48:13 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nymeu-0007Cy-Rl for emacs-devel@gnu.org; Mon, 05 Apr 2010 09:48:08 -0400 Original-Received: from [140.186.70.92] (port=46010 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nymer-0007CY-FL for emacs-devel@gnu.org; Mon, 05 Apr 2010 09:48:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nymep-0006MK-T8 for emacs-devel@gnu.org; Mon, 05 Apr 2010 09:48:05 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.183]:42926 helo=ironport2-out.pppoe.ca) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nymep-0006M9-QU for emacs-devel@gnu.org; Mon, 05 Apr 2010 09:48:03 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvsEAIGGuUvO+K6K/2dsb2JhbACbSnK0V4UHBIsq X-IronPort-AV: E=Sophos;i="4.51,366,1267419600"; d="scan'208";a="60219115" Original-Received: from 206-248-174-138.dsl.teksavvy.com (HELO pastel.home) ([206.248.174.138]) by ironport2-out.pppoe.ca with ESMTP; 05 Apr 2010 09:48:02 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id C10758053; Mon, 5 Apr 2010 09:48:01 -0400 (EDT) In-Reply-To: <87r5mupr6l.fsf@uwakimon.sk.tsukuba.ac.jp> (Stephen J. Turnbull's message of "Mon, 05 Apr 2010 11:29:54 +0900") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123185 Archived-At: >> [C]urrently we don't have any good way to obsolete end-user-functions, >> since the obsolescence-info is only used by the byte-compiler > Two easy, non-invasive ideas: > (1) Have help functions such as describe-function present the o-info > (and maybe apropos could have a very abbreviated notation) Done since Emacs-22. But in my experience most users won't use C-h f on a function they already use in their .emacs: that code will just sit there to rot until it breaks. > (2) Provide a help-obsolete (maybe apropos-obsolete is a better name?) > function which lists all symbols with o-info in apropos style. Even less likely to be used. >> which the end-user is likely to never run on his .emacs). > A harder, invasive idea: get rid of explicit byte-compilation, by > default. If Emacs always byte-compiles out-of-date libraries at load > time, the warnings would be generated. Yes, that's one of the two possible directions I see: - output a warning when the obsolete function is called. [ I use that in my locally patched Emacs, but people would scream when their obsolete function gets called in a loop and they get an apparently endless stream of repeated warnings. ] - apply at least the analysis&warnings part of the byte-compiler to the .emacs when loading it. Stefan PS: The problem with auto-byte-compiling is that I don't want to waste my time arguing about the old issue of "prefer an old .elc to a new .el".