From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Bootstrapping failure Date: Thu, 13 Oct 2005 17:19:56 -0400 Message-ID: References: <200510122054.j9CKsdh14908@raven.dms.auburn.edu> <874q7liipa.fsf@pacem.orebokech.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1129238534 8918 80.91.229.2 (13 Oct 2005 21:22:14 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 13 Oct 2005 21:22:14 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 13 23:22:13 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1EQAUy-0002MQ-IM for ged-emacs-devel@m.gmane.org; Thu, 13 Oct 2005 23:20:24 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EQAUx-0005mh-Um for ged-emacs-devel@m.gmane.org; Thu, 13 Oct 2005 17:20:23 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1EQAUm-0005iF-3c for emacs-devel@gnu.org; Thu, 13 Oct 2005 17:20:12 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1EQAUk-0005fy-W9 for emacs-devel@gnu.org; Thu, 13 Oct 2005 17:20:11 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EQAUk-0005fv-TZ for emacs-devel@gnu.org; Thu, 13 Oct 2005 17:20:10 -0400 Original-Received: from [132.204.24.67] (helo=mercure.iro.umontreal.ca) by monty-python.gnu.org with esmtp (Exim 4.34) id 1EQAUk-0004JF-Q1 for emacs-devel@gnu.org; Thu, 13 Oct 2005 17:20:10 -0400 Original-Received: from hidalgo.iro.umontreal.ca (hidalgo.iro.umontreal.ca [132.204.27.50]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id 258D02CEAA3; Thu, 13 Oct 2005 17:20:05 -0400 (EDT) Original-Received: from asado.iro.umontreal.ca (asado.iro.umontreal.ca [132.204.24.84]) by hidalgo.iro.umontreal.ca (Postfix) with ESMTP id DEBC74AC010; Thu, 13 Oct 2005 17:19:56 -0400 (EDT) Original-Received: by asado.iro.umontreal.ca (Postfix, from userid 20848) id CB6B2E6C1A; Thu, 13 Oct 2005 17:19:56 -0400 (EDT) Original-To: Romain Francoise In-Reply-To: <874q7liipa.fsf@pacem.orebokech.com> (Romain Francoise's message of "Thu, 13 Oct 2005 16:40:17 +0200") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-4.849, requis 5, autolearn=not spam, AWL 0.05, BAYES_00 -4.90) X-MailScanner-From: monnier@iro.umontreal.ca 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:44004 Archived-At: >> I've just installed a change that should fix it, > It doesn't. Grrr!!! OK, here is the problem: mixal-mode.el has now a big constant built with a backquote. Originally, it blew up the byte-compiler's stack because the backquote macroexpands into a very deep expression. So I wrapped the thing in an eval-when-compile because there's really no point in byte-compiling the big expression since it actually returns a constant value and can be evaluated quickly once and for all without being byte-compiled. But as it turns out, the definition of eval-when-compile (in byte-compile-initial-macro-environment) is (byte-compile-eval (byte-compile-top-level (cons 'progn body))) I.e. it byte-compiles before evaluating. So my "fix" didn't fix anything since the deep expression still gets byte-compiled. I find this behavior to be wrong, and indeed if we change it to just (byte-compile-eval (cons 'progn body)) the problem goes away. I find it kind of silly to byte-compile the content of an eval-when-compile since the bytecode will only be evaluated once, but maybe I'm missing something? Note that this behavior dates back to version 1.1 of bytecomp.el (Jul 92). In any case if the patch below is not acceptable, I guess I'll replace the big backquote with the result of its evaluation. Stefan --- bytecomp.el 22 ao=FB 2005 10:22:50 -0400 2.178 +++ bytecomp.el 13 oct 2005 17:07:10 -0400=09 @@ -429,8 +429,7 @@ ;; (apply 'byte-compiler-options-handler forms))) (eval-when-compile . (lambda (&rest body) (list 'quote - (byte-compile-eval (byte-compile-top-level - (cons 'progn body)))))) + (byte-compile-eval (cons 'progn body))))) (eval-and-compile . (lambda (&rest body) (byte-compile-eval-before-compile (cons 'progn body)) (cons 'progn body))))