From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: William Xu Newsgroups: gmane.emacs.devel Subject: Re: Is (provide 'foo) at the start good or bad? Date: Fri, 12 Jun 2009 18:15:55 +0300 Organization: the Church of Emacs Message-ID: <21glws7hmqj8.fsf@gmail.com> References: <21glws7jx732.fsf@gmail.com> <87r5xqw0s8.fsf@uwakimon.sk.tsukuba.ac.jp> <21glski6hwpf.fsf@gmail.com> <87ljnxwxwv.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: ger.gmane.org 1244820332 17808 80.91.229.12 (12 Jun 2009 15:25:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 12 Jun 2009 15:25:32 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jun 12 17:25:29 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 1MF8dA-0007xt-Fw for ged-emacs-devel@m.gmane.org; Fri, 12 Jun 2009 17:25:24 +0200 Original-Received: from localhost ([127.0.0.1]:49234 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MF8d9-0002lY-WD for ged-emacs-devel@m.gmane.org; Fri, 12 Jun 2009 11:25:24 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MF8cu-0002f9-US for emacs-devel@gnu.org; Fri, 12 Jun 2009 11:25:08 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MF8cq-0002Zh-TR for emacs-devel@gnu.org; Fri, 12 Jun 2009 11:25:08 -0400 Original-Received: from [199.232.76.173] (port=42577 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MF8cq-0002ZQ-Lc for emacs-devel@gnu.org; Fri, 12 Jun 2009 11:25:04 -0400 Original-Received: from main.gmane.org ([80.91.229.2]:54223 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MF8cq-0000fu-1E for emacs-devel@gnu.org; Fri, 12 Jun 2009 11:25:04 -0400 Original-Received: from root by ciao.gmane.org with local (Exim 4.43) id 1MF8co-0003Tu-TT for emacs-devel@gnu.org; Fri, 12 Jun 2009 15:25:02 +0000 Original-Received: from 62.237.32.162 ([62.237.32.162]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Jun 2009 15:25:02 +0000 Original-Received: from william.xwl by 62.237.32.162 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 12 Jun 2009 15:25:02 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 34 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 62.237.32.162 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.91 (windows-nt) Cancel-Lock: sha1:VwE6ZjwVpriP6De6qnWQrRQpvGs= 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:111452 Archived-At: "Stephen J. Turnbull" writes: > Provide at the bottom is an obtuse way to find out > how much memory you have. No choice. Well, seems elisp evaluator detects this quite early, as shown below: ,---- | Debugger entered--Lisp error: (error "Recursive `require' for feature `a'") | require(a) | eval-buffer(#> nil "q:/.emacs.d/site-lisp/b.el" nil t) ; Reading at buffer position 13 | . | . | eval-buffer(#> nil "q:/.emacs.d/site-lisp/b.el" nil t) ; Reading at buffer position 13 | load-with-code-conversion("q:/.emacs.d/site-lisp/b.el" "q:/.emacs.d/site-lisp/b.el" nil t) | require(b) | eval-buffer(# nil "q:/.emacs.d/site-lisp/a.el" nil t) ; Reading at buffer position 13 | load-with-code-conversion("q:/.emacs.d/site-lisp/a.el" "q:/.emacs.d/site-lisp/a.el" nil t) | require(a) | eval((require (quote a))) | eval-last-sexp-1(nil) | eval-last-sexp(nil) | call-interactively(eval-last-sexp nil nil) `---- So, the most reliable way would be just-in-time requires like you explained. Providing at the top might solve some problem, it look likes a treat. OTOH, this took me quite a while to figure out what is going wrong. -- William http://xwl.appspot.com