From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Stefan Monnier" Newsgroups: gmane.emacs.devel Subject: Re: bytecomp warning for CL functions Date: Fri, 19 Jul 2002 13:49:47 -0400 Sender: emacs-devel-admin@gnu.org Message-ID: <200207191749.g6JHnlw16800@rum.cs.yale.edu> References: <200206261410.g5QEASU11961@rum.cs.yale.edu> <200207081819.g68IJxN12844@aztec.santafe.edu> <200207191654.g6JGsH326961@aztec.santafe.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1027101027 20503 127.0.0.1 (19 Jul 2002 17:50:27 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 19 Jul 2002 17:50:27 +0000 (UTC) Cc: d.love@dl.ac.uk, monnier+gnu/emacs@rum.cs.yale.edu, emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 17Vbta-0005Ka-00 for ; Fri, 19 Jul 2002 19:50:26 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17Vc64-0002zt-00 for ; Fri, 19 Jul 2002 20:03:20 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17VbtX-0005rx-00; Fri, 19 Jul 2002 13:50:23 -0400 Original-Received: from rum.cs.yale.edu ([128.36.229.169]) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17Vbsy-0005qm-00; Fri, 19 Jul 2002 13:49:48 -0400 Original-Received: (from monnier@localhost) by rum.cs.yale.edu (8.11.6/8.11.6) id g6JHnlw16800; Fri, 19 Jul 2002 13:49:47 -0400 X-Mailer: exmh version 2.4 06/23/2000 with nmh-1.0.4 Original-To: Richard Stallman Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:5915 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:5915 > As far as I know, they're different things. My code was specifically > testing CL stuff, even if it would be present at runtime, whereas > Stefan's would check for problems with functions not being available > at runtime generally. > > The way I changed your code, it warns about run-time calls to CL > functions from a file that doesn't necessarily load CL at run time. > Stefan, in your code, is the criterion the same: call to a function > in file X, from another file Y that doesn't necessarily load X at run time? Mostly, but the devil is in the details. It complaints when: the file calls F and F is known to exist during compilation but not at runtime (because it was made available through (eval-when-compile (require 'foo))). But it doesn't work so well if `bar' gets loaded by foo.elc (and is thus marked as "not available at runtime") but is later on required explicitly. I don't check this case. Also, if `foo' was already loaded when the compilation started, the results depend on how it was loaded, so it doesn't work too well with recompile-directory unless the file is either always required directly or always required through `eval-when-compile'. Stefan