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: Re: generic-x needs to require generic Date: Tue, 22 Mar 2005 16:36:33 +0100 Message-ID: <87br9b7kvy.fsf@xs4all.nl> References: <200503212107.j2LL7g226633@raven.dms.auburn.edu> <87zmwwgke5.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 1111506383 1469 80.91.229.2 (22 Mar 2005 15:46:23 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 22 Mar 2005 15:46:23 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 22 16:46:23 2005 Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DDlZu-00071u-HE for ged-emacs-devel@m.gmane.org; Tue, 22 Mar 2005 16:45:59 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DDlrE-0007eh-4G for ged-emacs-devel@m.gmane.org; Tue, 22 Mar 2005 11:03:52 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DDloC-0006rh-19 for emacs-devel@gnu.org; Tue, 22 Mar 2005 11:00:44 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DDlnu-0006k4-Od for emacs-devel@gnu.org; Tue, 22 Mar 2005 11:00:29 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DDlns-0006gn-5E for emacs-devel@gnu.org; Tue, 22 Mar 2005 11:00:24 -0500 Original-Received: from [194.109.24.25] (helo=smtp-vbr5.xs4all.nl) by monty-python.gnu.org with esmtp (Exim 4.34) id 1DDlRI-0007jO-Ib for emacs-devel@gnu.org; Tue, 22 Mar 2005 10:37:04 -0500 Original-Received: from pijl (a80-127-67-124.adsl.xs4all.nl [80.127.67.124]) by smtp-vbr5.xs4all.nl (8.12.11/8.12.11) with ESMTP id j2MFai0P009273; Tue, 22 Mar 2005 16:36:57 +0100 (CET) (envelope-from Lute.Kamstra@xs4all.nl) Original-Received: from lute by pijl with local (Exim 3.36 #1 (Debian)) id 1DDlQw-0003JE-00; Tue, 22 Mar 2005 16:36:42 +0100 Original-To: Luc Teirlinck In-Reply-To: <87zmwwgke5.fsf@xs4all.nl> (Lute Kamstra's message of "Tue, 22 Mar 2005 09:22:26 +0100") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) Original-Lines: 105 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 X-MailScanner-To: ged-emacs-devel@m.gmane.org Xref: news.gmane.org gmane.emacs.devel:34969 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:34969 Lute Kamstra writes: > Luc Teirlinck writes: > >> What is the purpose of the following change to generic-x, which breaks >> bootstrapping: >> >> * generic-x.el: Don't prevent compilation. Don't require generic. >> Follow coding conventions. Minor code cleanup. >> >> I am referring to the "Don't require generic." part. Undoing that >> part solves the following problem during bootstrapping: > > The function generic-make-keywords-list that is called in generic-x is > defined in generic. So it should probably be autoloaded. > Alternatively generic-x could (eval-when-compile (require 'generic)) > and (eval-when-compile ...) all calls to generic-make-keywords-list as > well. > > I missed this because bootstrapping my working-tree worked just fine. > I also did an update for another tree without the generic{,-x}.el > patches and it bootstrapped fine. A clean checkout fails to > bootstraps however. > > This is quite strange. I guess that for me the define-generic-mode > calls in generic-x that precede the generic-make-keywords-list call > autoload generic so that generic is loaded when the call to > generic-make-keywords-list is compiled. Why this doesn't happen for > you of for a clean checkout beats me. > > I'll put (require 'generic) back in for now to enable bootstrapping. I've investigated this some more and I'm a bit puzzled. Maybe someone can help me. When I remove the (require 'generic) from lisp/generic-x.el and do a "make maintainer-clean", "./configure", and "make bootstrap", I see: ,---- | [...] | | Generating autoloads for generic.el... | Generating autoloads for generic.el...done | | [...] | | Compiling /soft/tmp/emacs/lisp/./generic-x.el | | In toplevel form: | generic-x.el:160:22:Warning: reference to free variable | `apache-conf-generic-mode' | generic-x.el:177:22:Warning: reference to free variable | `apache-log-generic-mode' | generic-x.el:191:22:Warning: reference to free variable `samba-generic-mode' | generic-x.el:207:22:Warning: reference to free variable `fvwm-generic-mode' | generic-x.el:233:22:Warning: reference to free variable | `x-resource-generic-mode' | generic-x.el:244:22:Warning: reference to free variable `hosts-generic-mode' | generic-x.el:255:22:Warning: reference to free variable `inf-generic-mode' | generic-x.el:267:22:Warning: reference to free variable `ini-generic-mode' | generic-x.el:287:22:Warning: reference to free variable `reg-generic-mode' | generic-x.el:303:22:Warning: reference to free variable `bat-generic-mode' | generic-x.el:444:22:Warning: reference to free variable | `mailagent-rules-generic-mode' | generic-x.el:461:22:Warning: reference to free variable | `prototype-generic-mode' | generic-x.el:484:22:Warning: reference to free variable `pkginfo-generic-mode' | generic-x.el:496:22:Warning: reference to free variable | `javascript-generic-mode' | generic-x.el:574:22:Warning: reference to free variable `vrml-generic-mode' | generic-x.el:628:22:Warning: reference to free variable | `java-manifest-generic-mode' | generic-x.el:648:22:Warning: reference to free variable | `java-properties-generic-mode' | generic-x.el:679:22:Warning: reference to free variable `alias-generic-mode' | generic-x.el:767:8:Error: Symbol's function definition is void: generic-make-keywords-list | make[1]: *** [compile] Error 1 | make[1]: Leaving directory `/soft/tmp/emacs/lisp' | make: *** [bootstrap-build] Error 2 `---- The warnings indicate that the define-generic-mode macro is not defined when generic-x.el is compiled. define-generic-mode is an autoloaded macro in generic.el and it seems that autoloads for generic.el are created. So why isn't generic loaded when generic.el is compiled? What I find puzzling as well is that when I do a second "make bootstrap" after the first failed, things just work fine: ,---- | [...] | | Compiling /soft/tmp/emacs/lisp/./generic-x.el | | In end of data: | generic-x.el:1821:1:Warning: the following functions are not known to be | defined: w32-shell-name, comint-mode, comint-exec | Wrote /soft/tmp/emacs/lisp/generic-x.elc | | [...] `---- Lute.