From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Lute Kamstra Newsgroups: gmane.emacs.devel Subject: Bootstrap problem. Date: Wed, 30 Mar 2005 10:45:18 +0200 Message-ID: <87u0mtsesh.fsf@xs4all.nl> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1112173242 19051 80.91.229.2 (30 Mar 2005 09:00:42 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 30 Mar 2005 09:00:42 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Mar 30 11:00:40 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DGZ3k-0005YA-F4 for ged-emacs-devel@m.gmane.org; Wed, 30 Mar 2005 11:00:20 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DGZKB-0000lY-C1 for ged-emacs-devel@m.gmane.org; Wed, 30 Mar 2005 04:17:19 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DGZ9u-0006Kh-4g for emacs-devel@gnu.org; Wed, 30 Mar 2005 04:06:46 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DGZ9n-0006JB-S3 for emacs-devel@gnu.org; Wed, 30 Mar 2005 04:06:38 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DGZ9m-0006FS-PI for emacs-devel@gnu.org; Wed, 30 Mar 2005 04:06:35 -0500 Original-Received: from [194.109.24.27] (helo=smtp-vbr7.xs4all.nl) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DGYpE-0003NI-4g for emacs-devel@gnu.org; Wed, 30 Mar 2005 03:45:20 -0500 Original-Received: from pijl (a80-127-67-124.adsl.xs4all.nl [80.127.67.124]) by smtp-vbr7.xs4all.nl (8.12.11/8.12.11) with ESMTP id j2U8jIls011972 for ; Wed, 30 Mar 2005 10:45:18 +0200 (CEST) (envelope-from Lute.Kamstra@xs4all.nl) Original-Received: from lute by pijl with local (Exim 3.36 #1 (Debian)) id 1DGYpC-00017t-00 for ; Wed, 30 Mar 2005 10:45:18 +0200 Original-To: emacs-devel@gnu.org User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) Original-Lines: 35 X-Virus-Scanned: by XS4ALL Virus Scanner 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:35349 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:35349 Consider the following situation. Add a definition to lisp file A and make it available to other lisp files by adding an autoload cookie. Commit the change. Then add some code to lisp file B that depends on the presence of this definition to compile. Commit this change as well. As I found out the hard way, this leads to problems in two cases: 1. Someone does a fresh checkout from CVS and does a make bootstrap. This fails because bootstrap-emacs that tries to compile file B uses the autoloads in ldefs-boot.el which wasn't updated and thus doesn't contain an autoload of the required definition in file A. This can, of course, be solved by regenerating ldefs-boot.el and committing it. It's probably a good idea to mention this explicitly somewhere. 2. Someone has a CVS tree and did the last update before the change in file A. Then that person does per next update after the change to file B and then does a make bootstrap. bootstrap-emacs uses the old loaddefs.el that does not contain an autoload of the required definition in file A and fails to compile file B. A second make bootstrap would work fine as this would use the new loaddefs.el that was created during the first make bootstrap that failed. Can't the bootstrap process be changed so that bootstrap-emacs uses loaddefs.el with autoloads that are up to date? This would make ldefs-boot.el obsolete and one wouldn't have to think about regenerating it under some circumstances. It would also solve the second problem. Lute.