From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#34757: Invalid bytecode from byte compiler Date: Fri, 15 Mar 2019 19:40:48 +0000 Message-ID: References: <838sxg1rwz.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="108806"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 34757@debbugs.gnu.org, chuntaro@sakura-games.jp To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Mar 15 20:42:17 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h4sif-000SCp-5J for geb-bug-gnu-emacs@m.gmane.org; Fri, 15 Mar 2019 20:42:17 +0100 Original-Received: from localhost ([127.0.0.1]:60516 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4sie-0000wy-2i for geb-bug-gnu-emacs@m.gmane.org; Fri, 15 Mar 2019 15:42:16 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:42373) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h4siS-0000w4-9w for bug-gnu-emacs@gnu.org; Fri, 15 Mar 2019 15:42:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h4siQ-0005jg-Tv for bug-gnu-emacs@gnu.org; Fri, 15 Mar 2019 15:42:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60213) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h4siQ-0005iS-8L for bug-gnu-emacs@gnu.org; Fri, 15 Mar 2019 15:42:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1h4siP-00011Z-Tn for bug-gnu-emacs@gnu.org; Fri, 15 Mar 2019 15:42:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 15 Mar 2019 19:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34757 X-GNU-PR-Package: emacs Original-Received: via spool by 34757-submit@debbugs.gnu.org id=B34757.15526788973905 (code B ref 34757); Fri, 15 Mar 2019 19:42:01 +0000 Original-Received: (at 34757) by debbugs.gnu.org; 15 Mar 2019 19:41:37 +0000 Original-Received: from localhost ([127.0.0.1]:45524 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h4si0-00010v-Nn for submit@debbugs.gnu.org; Fri, 15 Mar 2019 15:41:36 -0400 Original-Received: from mail-oi1-f173.google.com ([209.85.167.173]:44151) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h4shw-00010f-E3 for 34757@debbugs.gnu.org; Fri, 15 Mar 2019 15:41:32 -0400 Original-Received: by mail-oi1-f173.google.com with SMTP id i21so4895887oib.11 for <34757@debbugs.gnu.org>; Fri, 15 Mar 2019 12:41:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=c4OyfsASyRybHwSQ1ljQHW70WpfWVL11rds6eZLlyus=; b=pOZ/UN6nYfICPEVjld/ilJb82m2CdIJS2796jocNEwq/tuEziPP7HifLhJqGDg7lWc oqYYppycGFZvjjnHTbklHVzbogp3LRCHnB/eJfkKVRQPPMQ1g0iFlYb5dq1M8ruZwWUH CvxrOIa/uLuP4JanfmKSo2rqdqCuidAeJlANC25G9ubuxbzvobvjAdHzQ6FwN8fQzX5F yqD805O3H22Z6PJ++4EPK3Hv+R5GF05P5N0NoRsldaC9DotLts9W7Tk1jXUy40kAEGnN EDFsIisaE/5QcvH96ERXE34/y1g90C2WqcWuHZbxNqPdsa+S14RdkseTmiEOYzI9+Cae M3Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=c4OyfsASyRybHwSQ1ljQHW70WpfWVL11rds6eZLlyus=; b=chjPHdaBL1wXZQ67jB9QjLOmUQ58rAMj2VWBshHHWsiu1QcZlSxGsERI0wJLhwc2hl oSps64cLsPhJ2LTAUOdCZtHapz/Ims4WZjLZ1LTaeKC0yo3weUJrTl2GyMYSb+1RuwB6 BLk8xNuJOBMQESZzGtWEvJU0HzHvA2KkeNXoq3rhjXmdLOEywUacYVkrpmVBv1qg3M7W nlqaMZCZndq6Bz4vss2w+mE8BNpj71pkFkgmRjU//H2zuPJenaRAwFtajw21to5sZ3Gy Lo5wQO/jV3JQthfynhNoRGwc/EsDVsmMGcgF//jutdt26q/ZK+ym50hyyO5wE1glX5+T nZxQ== X-Gm-Message-State: APjAAAVWoqTln9i2UD5EpHuTEFY3kG0J53z4Au2W+Z67uOB1798mSPAX wEnNb7BfEkr3Bot1hArABYPzE9JX3CeaeD+Jdgg= X-Google-Smtp-Source: APXvYqze5efRsShp1w8O9pxRovhYWg0xmnAqvPdA0cvZh3XKDZHd+yFvTGCO9vSfAQPMzd7I0/Z0lNCaMB3jqxdblBY= X-Received: by 2002:aca:52c2:: with SMTP id g185mr2682582oib.128.1552678886581; Fri, 15 Mar 2019 12:41:26 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:156397 Archived-At: On Fri, Mar 15, 2019 at 2:08 PM Stefan Monnier wrote: > >> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el > >> index 0b8f8824b4c..4e54e08ce14 100644 > >> --- a/lisp/emacs-lisp/bytecomp.el > >> +++ b/lisp/emacs-lisp/bytecomp.el > >> @@ -3025,6 +3025,7 @@ byte-compile-out-toplevel > >> (or (null (cdr rest)) > >> (and (memq output-type '(file progn t)) > >> (cdr (cdr rest)) > >> + (eql (length body) (cdr (car rest))) > >> (eq (car (nth 1 rest)) 'byte-discard) > >> (progn (setq rest (cdr rest)) t)))) > >> (setq maycall nil) ; Only allow one real function call. > > > > Stefan, any comments? > > Looks good to me, thanks. > > I'm personally running with the following patch instead, which is much > more risky and hasn't been sufficiently tested yet. Just to be sure I understand correctly, you would like to remove the decompilation of trivial function calls entirely? That seems good to me. It seems the special case is necessary to avoid compilation errors, and that it's used for (byte-compile 3), so I think the comment could be improved a little. I'm not sure this case can actually happen without doing something silly, but (byte-compile '(internal-get-closed-var 0)) throws an error with Stefan's patch, because the byte code is (byte-constant . 0) (byte-return).