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.bugs Subject: bug#53164: (After an ELC+ELN build, don't load the source file into a buffer.) fixed. Date: Mon, 10 Jan 2022 20:21:40 +0000 Message-ID: References: <83v8yr8o0t.fsf@gnu.org> <83ilur8j0f.fsf@gnu.org> 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="18416"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 53164@debbugs.gnu.org, acm@muc.de To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jan 10 21:22:11 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1n71BB-0004Ws-Pw for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 10 Jan 2022 21:22:09 +0100 Original-Received: from localhost ([::1]:44332 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n71BA-0006aq-8L for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 10 Jan 2022 15:22:08 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:59814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n71B4-0006ah-N2 for bug-gnu-emacs@gnu.org; Mon, 10 Jan 2022 15:22:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60475) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n71B4-0006mi-EQ for bug-gnu-emacs@gnu.org; Mon, 10 Jan 2022 15:22:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n71B4-0000LD-Ad for bug-gnu-emacs@gnu.org; Mon, 10 Jan 2022 15:22:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Alan Mackenzie Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Jan 2022 20:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53164 X-GNU-PR-Package: emacs Original-Received: via spool by 53164-submit@debbugs.gnu.org id=B53164.16418461121293 (code B ref 53164); Mon, 10 Jan 2022 20:22:02 +0000 Original-Received: (at 53164) by debbugs.gnu.org; 10 Jan 2022 20:21:52 +0000 Original-Received: from localhost ([127.0.0.1]:53378 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n71At-0000Km-Q5 for submit@debbugs.gnu.org; Mon, 10 Jan 2022 15:21:52 -0500 Original-Received: from colin.muc.de ([193.149.48.1]:23619 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1n71Aq-0000KX-2U for 53164@debbugs.gnu.org; Mon, 10 Jan 2022 15:21:50 -0500 Original-Received: (qmail 87401 invoked by uid 3782); 10 Jan 2022 20:21:41 -0000 Original-Received: from acm.muc.de (p4fe15a8e.dip0.t-ipconnect.de [79.225.90.142]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 10 Jan 2022 21:21:41 +0100 Original-Received: (qmail 4305 invoked by uid 1000); 10 Jan 2022 20:21:40 -0000 Content-Disposition: inline In-Reply-To: <83ilur8j0f.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:223902 Archived-At: Hello, Eli. On Mon, Jan 10, 2022 at 21:53:36 +0200, Eli Zaretskii wrote: > > Date: Mon, 10 Jan 2022 19:34:58 +0000 > > Cc: 53164@debbugs.gnu.org > > From: Alan Mackenzie > > > FTR, I didn't see any build problems due to this issue, not even > > > once. So I wonder what exactly did you see and in what scenario. > > > Please elaborate. > > It took me practically three days solid to diagnose this bug. The > > symptom, whilst bootstrapping the scratch/correct-warning-pos, was the > > following message on stderr: > > Error: (invalid-function #) > > .. I quickly tracked down the source of the `=' symbol to lisp/subr.el, > > in the code for `zerop'. Further progress was elusive. In the course > > of debugging it, I ended up writing my own backtrace routine, free of > > dependencies, which can work early in the bootstrap, unlike the standard > > backtrace. > > The course of events which led to that error message is this: > > 1. During the bootstrap with native compile, ELC+ELN compiles subr.el. > > It does so by getting the LAP code from bytecomp.el via a side > > channel. It completes the compilation. > > 2. bootstrap-emacs now contains the native-compiled version of subr.el. > > Unfortunately, the macro `zerop--anon-cmacro' a complier macro for > > `zerop', still contains symbols with position. > > 3. Having finished the native compilation, ELC+ELN visited subr.el in a > > buffer, due to this bug. > > 4. As part of visiting subr.el, Emacs calls after-find-file, which > > invokes find-file-hook. > > 5. One of the entries in find-file-hook is vc-refresh-state, which gets > > called. > > 6. This causes vc-git.elc to be loaded. Eventually, vc-git--out-ok gets > > called. > > 7. vc-git--out-ok invokes `zerop', or more precisely the code generated > > by the macro `zerop--anon-cmacro'. This contains # > 18944>. > > 8. eval signals an error, since symbols-with-pos-enabled is nil and it > > thus can't handle the symbol with position. This error gets blocked > > from reaching a backtrace function by an inconsiderate condition-case, > > which just dumps the message onto stderr. > > The most obvious cause of the error seems to be at step 3, where > > bootstrap-emacs spuriously visits the source file. > After reading this, I still don't understand how come you bump into > this problem, whereas I don't, and neither does anyone else who builds > the release branch with native-compilation. Is this something > specific to that branch you are working on? Indeed, yes. It is the symbols with position which escaped from a compiler macro. > If so, why is it urgent to have the fix on the release branch? The > branch on which you ware working will land on master. There was no urgency. I though the convention was for documentation fixes and simple safe code fixes to go onto the release branch. The fix to this bug, a single line, is well understood and certainly comes into the category of simple and safe. > > As I said above, please consider putting the fix to this bug back. I do > > not want anybody else to have to go through what I had to to track the > > bug down. Leaving stale arguments on the command line, later to be > > visited, cannot possibly be the Right Thing. I'm pretty sure it was not > > done deliberately, it was just a minor oversight which didn't seem to > > matter. > There's always one more bug. When we are so far into the pretest > process, problems that take unusual steps to reproduce are not > important enough to delay the release. OK. But can I ask you to consider announcing on emacs-devel when the criteria for making bug fixes on the release branch change? Apologies if you have done, and I missed it. > The judgment call I need to make is how important is it to have this in > the release branch, and that's only after I understand how to trigger > the problem in the first place. It is not particularly important for the release branch. But it is a positive step (making the build faster, and removing a potential bug source). As for triggering it, I cannot give you a recipe except for committing my recent changes to scratch/correct-warning-pos, and asking you to repeat what I did (basically, a make bootstrap). Somebody else may trigger it in some other way, and the debugging effort is potentially unbounded. So, I still think it would be better in the release branch, but can see that it's not very important. There're three ways we could go. Commit it in emacs-28, master, or scratch/correct-warning-pos. I'm willing to commit it again in any of these places. > Thanks. -- Alan Mackenzie (Nuremberg, Germany).