From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: byte-compile-warn in do-after-load-evaluation - a bug? Date: Fri, 21 Jan 2022 21:33:30 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10214"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jan 21 22:36:46 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nB1aP-0002WU-6C for ged-emacs-devel@m.gmane-mx.org; Fri, 21 Jan 2022 22:36:45 +0100 Original-Received: from localhost ([::1]:44284 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nB1aO-0001V9-38 for ged-emacs-devel@m.gmane-mx.org; Fri, 21 Jan 2022 16:36:44 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:42546) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nB1XM-0007vP-7z for emacs-devel@gnu.org; Fri, 21 Jan 2022 16:33:36 -0500 Original-Received: from colin.muc.de ([193.149.48.1]:40470 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1nB1XJ-0005QC-Si for emacs-devel@gnu.org; Fri, 21 Jan 2022 16:33:35 -0500 Original-Received: (qmail 39962 invoked by uid 3782); 21 Jan 2022 21:33:31 -0000 Original-Received: from acm.muc.de (p4fe159a7.dip0.t-ipconnect.de [79.225.89.167]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Fri, 21 Jan 2022 22:33:31 +0100 Original-Received: (qmail 22424 invoked by uid 1000); 21 Jan 2022 21:33:30 -0000 Content-Disposition: inline In-Reply-To: X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.1; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:285164 Archived-At: Hello, Stefan. On Fri, Jan 21, 2022 at 13:39:26 -0500, Stefan Monnier wrote: > > Might it be that somebody not having a good day just used that function > > thinking it was a general purpose warning function? > No, and I think the code makes it pretty clear: Sorry, yes it does. I think it's me that's having the bad day. > [...] > (cond > ((bound-and-true-p byte-compile-current-file) > ;; Don't warn about obsolete files using other obsolete files. > (unless (and (stringp byte-compile-current-file) > (string-match-p "/obsolete/[^/]*\\'" > (expand-file-name > byte-compile-current-file > byte-compile-root-dir))) > (byte-compile-warn "%s" msg))) > [...] > The intention is to use this code when the load was performed by the > byte-compiler (presumably because of a `require`). I think I've got it sorted out, now. By pushing an element onto byte-compile-form-stack when handling a `require', we can ensure byte-compile-warn will have something to chew on. (scratch/correct-warning-pos branch.) > > The problem with it is that it uses an implicit (compilation) source > > position in the message it outputs. There is no compilation going on at > > the moment. > I suspect that what we should do here is to make the byte-compiler > provide more info. E.g. instead of just testing > `byte-compile-current-file`, which is a kind of "accidental" info, we > should have `bytecomp.el` do a > (let ((byte-compile-triggered-load-source )) > ...) > so `do-after-load-evaluation` can check this specific var and use its > info to provide proper source information. > WDYT? I'm not convinced. I think byte-compile-form-stack already provides (or can provide) sufficient source position information. > Stefan -- Alan Mackenzie (Nuremberg, Germany).