From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: *-loaddefs.el files are not byte-compiled after being regenerated Date: Thu, 04 Aug 2022 20:18:13 +0300 Message-ID: <834jys2ai2.fsf@gnu.org> References: <83a68k2btw.fsf@gnu.org> <87v8r8dk6n.fsf@gnus.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21010"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Lars Ingebrigtsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Aug 04 19:27:33 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 1oJedB-0005ME-71 for ged-emacs-devel@m.gmane-mx.org; Thu, 04 Aug 2022 19:27:33 +0200 Original-Received: from localhost ([::1]:50592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oJedA-00083m-BU for ged-emacs-devel@m.gmane-mx.org; Thu, 04 Aug 2022 13:27:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48638) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJeUE-0005dZ-3t for emacs-devel@gnu.org; Thu, 04 Aug 2022 13:18:18 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:46328) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJeUD-0008JY-Pv; Thu, 04 Aug 2022 13:18:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=PRVSwbkVWCuyG3p35/vL1lQCX0HFJ1jkNnBL4LMACB8=; b=RHEFiRc9v2rH jr7iK1wrmsMa5Rvw0JfyLZxzHAyXsn6iQqgKFXiesKuFwGQHDufPKBZwqJzmKlPrnPMK89mfltiM8 3gxJvbAUKu2vii1YpoB0IEz9mUkKwquPHfelaqR4KzgmWs/2tdIFJI9XlJu5G73RdgyoGh1rw6E2K BGQgLpAuj7hbKPra8kx6NavrCx18hwkJtRf9wC4F0qdw5Gd9nYrZ9UoketVLvvBgoIq2OEjmkaYSO N88RK2WvBwJLH04Ng/lAxX0TC9BKOlWHALDEnieabrzI6INCOY/SShtznX1NjOPrpqXynW2Hx7oU2 6PJkJMJ9YD7Ot46pUrQzqw==; Original-Received: from [87.69.77.57] (port=4421 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJeUD-0007VN-9p; Thu, 04 Aug 2022 13:18:17 -0400 In-Reply-To: <87v8r8dk6n.fsf@gnus.org> (message from Lars Ingebrigtsen on Thu, 04 Aug 2022 18:53:36 +0200) 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:293083 Archived-At: > From: Lars Ingebrigtsen > Cc: emacs-devel@gnu.org > Date: Thu, 04 Aug 2022 18:53:36 +0200 > > Eli Zaretskii writes: > > > Something's wrong with the Makefile rules for these files: I see quite > > a lot that they are regenerated, but the results are not subsequently > > byte-compiled, causing warnings when I start Emacs after building it. > > Sounds like the loaddefs files are being generated too early in some > circumstances to be picked up by compile-main? > > Do you have a recipe to reproduce this problem? Unfortunately, no. I use "make -j4", maybe that somehow triggers the problem. Another thing that perhaps is relevant is that the generation of the *-loaddefs.el files happens in parallel with (and close to the end of) the byte-compilation of updated *.el files. Here's an example: Finding pointers to doc strings... Finding pointers to doc strings...done Growing hash table to: 120000 Pure-hashed: 18227 strings, 5621 vectors, 50818 conses, 5088 bytecodes, 330 others Dumping under the name emacs.pdmp Dumping fingerprint: 4d49c5e06c09d7ec789816d97b378812d91a300716e9553969c02f8f43918a9d Dump complete Byte counts: header=100 hot=7205544 discardable=130440 cold=3728296 Reloc counts: hot=439088 discardable=5359 Adding name emacs-29.0.50.1611.exe Adding name emacs-29.0.50.1611.pdmp cp -f emacs.pdmp bootstrap-emacs.pdmp make[1]: Leaving directory `/d/gnu/git/emacs/trunk/src' make -C lisp all make[1]: Entering directory `/d/gnu/git/emacs/trunk/lisp' make -C ../leim all EMACS="../src/emacs.exe" make -C ../admin/grammars all EMACS="../../src/emacs.exe" make[2]: Entering directory `/d/gnu/git/emacs/trunk/admin/grammars' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/d/gnu/git/emacs/trunk/admin/grammars' make[2]: Entering directory `/d/gnu/git/emacs/trunk/leim' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/d/gnu/git/emacs/trunk/leim' GEN autoloads rm ./emacs-lisp/autoload.elc rm ./net/netrc.elc make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp' make[2]: Nothing to be done for `compile-targets'. make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' Source file `d:/gnu/git/emacs/trunk/lisp/emacs-lisp/loaddefs-gen.el' newer than byte-compiled file; using older file INFO Scraping files for loaddefs... make[2]: Entering directory `/d/gnu/git/emacs/trunk/doc/misc' make[2]: `org.texi' is up to date. make[2]: `modus-themes.texi' is up to date. make[2]: Leaving directory `/d/gnu/git/emacs/trunk/doc/misc' make[2]: Entering directory `/d/gnu/git/emacs/trunk/leim' make[2]: Nothing to be done for `generate-ja-dic'. make[2]: Leaving directory `/d/gnu/git/emacs/trunk/leim' make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp' make[2]: Nothing to be done for `compile-targets'. make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' INFO Scraping files for loaddefs...10% make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp' ELC auth-source.elc ELC cus-dep.elc ELC dired-aux.elc ELC dired-loaddefs.elc ELC find-dired.elc ELC ibuffer-loaddefs.elc ELC makesum.elc ELC ps-print-loaddefs.elc INFO Scraping files for loaddefs...20% ELC calc/calc-loaddefs.elc ELC calendar/cal-loaddefs.elc ELC calendar/diary-loaddefs.elc ELC calendar/holiday-loaddefs.elc ELC cedet/ede/loaddefs.elc ELC cedet/semantic/loaddefs.elc ELC cedet/srecode/loaddefs.elc INFO Scraping files for loaddefs...30% make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp' ELC emacs-lisp/checkdoc.elc ELC emacs-lisp/cl-loaddefs.elc ELC emacs-lisp/loaddefs-gen.elc INFO Scraping files for loaddefs...40% ELC emacs-lisp/package.elc ELC erc/erc-loaddefs.elc ELC eshell/em-extpipe.elc ELC eshell/esh-groups.elc ELC gnus/nnimap.elc INFO Scraping files for loaddefs...50% ELC gnus/nntp.elc INFO Scraping files for loaddefs...60% make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' INFO Scraping files for loaddefs...70% make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp' ELC mh-e/mh-loaddefs.elc ELC net/eww.elc ELC net/tramp-adb.elc ELC net/tramp-loaddefs.elc INFO Scraping files for loaddefs...80% ELC net/tramp-sh.elc ELC net/tramp.elc ELC obsolete/autoload.elc ELC obsolete/netrc.elc INFO Scraping files for loaddefs...90% ELC org/ob-lilypond.elc ELC org/org-loaddefs.elc ELC progmodes/meta-mode.elc INFO Scraping files for loaddefs...100% INFO Scraping files for loaddefs...done GEN textmodes/reftex-loaddefs.el GEN textmodes/texinfo-loaddefs.el GEN org/org-loaddefs.el GEN net/tramp-loaddefs.el GEN mh-e/mh-loaddefs.el GEN eshell/esh-groups.el GEN erc/erc-loaddefs.el GEN emacs-lisp/cl-loaddefs.el GEN cedet/srecode/loaddefs.el GEN cedet/semantic/loaddefs.el GEN cedet/ede/loaddefs.el make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' GEN calendar/diary-loaddefs.el GEN calendar/holiday-loaddefs.el GEN calendar/cal-loaddefs.el GEN calc/calc-loaddefs.el GEN ps-print-loaddefs.el GEN ibuffer-loaddefs.el GEN dired-loaddefs.el make[2]: Entering directory `/d/gnu/git/emacs/trunk/lisp' ELC textmodes/reftex-loaddefs.elc ELC textmodes/texinfo-loaddefs.elc make[2]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' GEN loaddefs.el make[1]: Leaving directory `/d/gnu/git/emacs/trunk/lisp' make -C doc/misc info make[1]: Entering directory `/d/gnu/git/emacs/trunk/doc/misc' make[1]: Nothing to be done for `info'. make[1]: Leaving directory `/d/gnu/git/emacs/trunk/doc/misc' Shouldn't the loaddefs files be the dependency of every .elc file?