From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Davis Herring" Newsgroups: gmane.emacs.devel Subject: Re: Is (provide 'foo) at the start good or bad? Date: Mon, 15 Jun 2009 11:20:41 -0700 (PDT) Message-ID: <42424.130.55.118.19.1245090041.squirrel@webmail.lanl.gov> References: <21glws7jx732.fsf@gmail.com> <87r5xqw0s8.fsf@uwakimon.sk.tsukuba.ac.jp> <49293.130.55.118.19.1244847603.squirrel@webmail.lanl.gov> <87eitowck5.fsf@uwakimon.sk.tsukuba.ac.jp> <51511.130.55.118.19.1245007816.squirrel@webmail.lanl.gov> <877hzeci43.fsf@uwakimon.sk.tsukuba.ac.jp> Reply-To: herring@lanl.gov NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1245090062 22614 80.91.229.12 (15 Jun 2009 18:21:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 15 Jun 2009 18:21:02 +0000 (UTC) Cc: Leo , emacs-devel@gnu.org To: "Stephen J. Turnbull" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jun 15 20:20:59 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 1MGGni-0005Wp-Db for ged-emacs-devel@m.gmane.org; Mon, 15 Jun 2009 20:20:58 +0200 Original-Received: from localhost ([127.0.0.1]:58762 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MGGnh-0005kV-6a for ged-emacs-devel@m.gmane.org; Mon, 15 Jun 2009 14:20:57 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MGGnb-0005jb-QC for emacs-devel@gnu.org; Mon, 15 Jun 2009 14:20:51 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MGGnV-0005h4-WD for emacs-devel@gnu.org; Mon, 15 Jun 2009 14:20:50 -0400 Original-Received: from [199.232.76.173] (port=55092 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MGGnV-0005gl-NN for emacs-devel@gnu.org; Mon, 15 Jun 2009 14:20:45 -0400 Original-Received: from proofpoint2.lanl.gov ([204.121.3.26]:48240) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MGGnV-0000rb-BL for emacs-devel@gnu.org; Mon, 15 Jun 2009 14:20:45 -0400 Original-Received: from mailrelay1.lanl.gov (mailrelay1.lanl.gov [128.165.4.101]) by proofpoint2.lanl.gov (8.14.3/8.14.3) with ESMTP id n5FIKf8x015754; Mon, 15 Jun 2009 12:20:41 -0600 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by mailrelay1.lanl.gov (Postfix) with ESMTP id 875891602B6; Mon, 15 Jun 2009 12:20:41 -0600 (MDT) X-NIE-2-Virus-Scanner: amavisd-new at mailrelay1.lanl.gov Original-Received: from webmail1.lanl.gov (webmail1.lanl.gov [128.165.4.106]) by mailrelay1.lanl.gov (Postfix) with ESMTP id 7381A1602A8; Mon, 15 Jun 2009 12:20:41 -0600 (MDT) Original-Received: by webmail1.lanl.gov (Postfix, from userid 48) id 715831518033; Mon, 15 Jun 2009 12:20:41 -0600 (MDT) Original-Received: from 130.55.118.19 (SquirrelMail authenticated user 196434) by webmail.lanl.gov with HTTP; Mon, 15 Jun 2009 11:20:41 -0700 (PDT) In-Reply-To: <877hzeci43.fsf@uwakimon.sk.tsukuba.ac.jp> User-Agent: SquirrelMail/1.4.8-5.7.lanl1 X-Priority: 3 (Normal) Importance: Normal X-Proofpoint-Virus-Version: vendor=fsecure engine=1.12.8161:2.4.5, 1.2.40, 4.0.166 definitions=2009-06-15_10:2009-06-01, 2009-06-15, 2009-06-15 signatures=0 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:111524 Archived-At: > > > 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. > > > > That was case #3, wasn't it? > > No. You're missing the "multiple versions" case. (Although GNU Emacs > prefers to "support" 3rd party libraries by incorporating them, other > Emacsen try to support third parties as independent projects, and that > doesn't necessarily mean there's a blessed third party for each such > library, either.) (I think most of the productive ideas here have been stated. Purely for my edification:) Why, if we have Av1 and Bv1, neither of which requires the other (or at least only one requires the other), and Av2 and Bv2, which are mutually dependent, can't we merge only the latter and have ABv2 (perhaps with one or two tiny files that let (require 'A) and (require 'B) find it) while still leaving the old, independent versions separate? ...I suppose you could have the situation where Av1 requires Bv1, and then Bv2 also requires Av1, and you'd like to not have to modify A. But then you could either make Av1.0.1 that just changes the `require's (not much of a hassle since people that would need it are upgrading B anyway), or else make A(+B)v2 (and a B stub) rather than Bv2 at all. Right? Later you said that the (mutually-dependent versions of the) libraries might continue to be developed separately. That seems odd to me, since they will always be loaded together, and they might need to be upgraded together. But if it does happen, then perhaps the right thing is to put `require's as late as possible and `provide's right before them, so that both mutual recursion and `eval-after-load' will work (most of the time). Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping.