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: Is (provide 'foo) at the start good or bad? Date: Sat, 13 Jun 2009 21:19:54 +0900 Message-ID: <87eitowck5.fsf@uwakimon.sk.tsukuba.ac.jp> References: <21glws7jx732.fsf@gmail.com> <87r5xqw0s8.fsf@uwakimon.sk.tsukuba.ac.jp> <49293.130.55.118.19.1244847603.squirrel@webmail.lanl.gov> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1244895478 15331 80.91.229.12 (13 Jun 2009 12:17:58 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 13 Jun 2009 12:17:58 +0000 (UTC) Cc: Leo , emacs-devel@gnu.org To: herring@lanl.gov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Jun 13 14:17:54 2009 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.50) id 1MFSBG-0005ax-Dk for ged-emacs-devel@m.gmane.org; Sat, 13 Jun 2009 14:17:54 +0200 Original-Received: from localhost ([127.0.0.1]:48449 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MFSBF-0008Lh-GW for ged-emacs-devel@m.gmane.org; Sat, 13 Jun 2009 08:17:53 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MFSBB-0008Lc-0V for emacs-devel@gnu.org; Sat, 13 Jun 2009 08:17:49 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MFSB6-0008LP-3E for emacs-devel@gnu.org; Sat, 13 Jun 2009 08:17:48 -0400 Original-Received: from [199.232.76.173] (port=37147 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MFSB5-0008LM-TY for emacs-devel@gnu.org; Sat, 13 Jun 2009 08:17:43 -0400 Original-Received: from mtps01.sk.tsukuba.ac.jp ([130.158.97.223]:37551) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MFSB5-00078E-Eq for emacs-devel@gnu.org; Sat, 13 Jun 2009 08:17:43 -0400 Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mtps01.sk.tsukuba.ac.jp (Postfix) with ESMTP id 07C6E1537BA; Sat, 13 Jun 2009 21:17:34 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id 341F9120D68; Sat, 13 Jun 2009 21:19:54 +0900 (JST) In-Reply-To: <49293.130.55.118.19.1244847603.squirrel@webmail.lanl.gov> X-Mailer: VM 8.0.12-devo-585 under 21.5 (beta28) "fuki" 83e35df20028+ XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) 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:111487 Archived-At: Davis Herring writes: > > Putting the provide form at the beginning allows mutually recursive > > requires to succeed. > > If you have two files which require each other, why do they each have a > feature symbol? Because external packages don't know about the mutual dependency, and shouldn't have to. Multiple versions of the files may support the same interfaces, some with and some without mutual dependency. Etc. > Put differently, `provide' is supposed to "Announce that FEATURE is a > feature of the current Emacs.". If you put it at the beginning of a > package, you're lying (until the end of it). Sure. There are other standard techniques that involve such "lying", like `(defvar foo)', which does exactly the same kind of thing that a provide at the top does. In both cases, there may be a path through the code leaves something uninitialized.