GNU logs - #78606, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#78606: 31.0.50; [nativecomp] native-ice in emit_mvar_rval
Resent-From: Pip Cet <pipcet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 27 May 2025 13:39:02 +0000
Resent-Message-ID: <handler.78606.B.174835311431221 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 78606
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: acorallo@HIDDEN, 78606 <at> debbugs.gnu.org
X-Debbugs-Original-To: Andrea Corallo <acorallo@HIDDEN>, bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.174835311431221
          (code B ref -1); Tue, 27 May 2025 13:39:02 +0000
Received: (at submit) by debbugs.gnu.org; 27 May 2025 13:38:34 +0000
Received: from localhost ([127.0.0.1]:40291 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uJuVl-00087T-Ni
	for submit <at> debbugs.gnu.org; Tue, 27 May 2025 09:38:34 -0400
Received: from lists.gnu.org ([2001:470:142::17]:42238)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1uJuVi-000872-5h
 for submit <at> debbugs.gnu.org; Tue, 27 May 2025 09:38:30 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>)
 id 1uJuVc-0001KY-4P
 for bug-gnu-emacs@HIDDEN; Tue, 27 May 2025 09:38:24 -0400
Received: from mail-24417.protonmail.ch ([109.224.244.17])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>)
 id 1uJuVW-0002rd-GA
 for bug-gnu-emacs@HIDDEN; Tue, 27 May 2025 09:38:23 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1748353087; x=1748612287;
 bh=jFM6OxKATGtZMNoAZWOkJ46DWGe0g3QYrrKj0MeG050=;
 h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:
 Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:
 List-Unsubscribe:List-Unsubscribe-Post;
 b=mXXg4Nl1pz+Z4wDaZHQSE+aAqv4meEDNZmYuTVnwVVdncytJjiHlJcSQipNoUWpF3
 jjFLUSBwt5NyqJYjQl+wXiY6gafDtNzqgipkK79z1NsdqTZ2fK74pPEnAX14ewQW5k
 OyLwwJxZwCZxs7Qmg5grM4nXn826mpo/bQv6grBivIdwMz/jt1utUpl2N1dQNQz5gR
 jTC+m48wSTrTA44pQQlvi21AfmA9iRVyfUz/tlfbfq2UN7Gx0TJhaG6F1vvSx3rA2s
 SJGpexx2SsYIcGaFDWh8Jom8z0+292OLlbJ4YcsXREkEkvqnl3j/76SIgA/Q0MrV4k
 SSzjmTWNxReuQ==
Date: Tue, 27 May 2025 13:38:02 +0000
From: Pip Cet <pipcet@HIDDEN>
Message-ID: <87v7pm6uoa.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 11a6fbcc8ca228401b1ecd3783815a3b8fa616c9
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=109.224.244.17;
 envelope-from=pipcet@HIDDEN; helo=mail-24417.protonmail.ch
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

This reduced test case:

;; -*- lexical-binding: t; -*-

(defun f (x)
  (and (=3D x 1)
       (if (eql x 1)
           1
         x)))

causes a native-ice:

Error: native-ice (\"can't find data in relocation containers\")

when Emacs is run as:

./src/emacs -Q --batch --eval '(native-compile "native.el")'

The problem, as far as I can see, is that emit_mvar_rval appears to
assume that if the constraint part of an mvar allows only a single
value, that value can also be fetched from the reloc array.  In this
case, the constraints on x make it so only 1.0 is a legal value in one
basic block, but 1.0 isn't in the data array.

Note that it is not a valid fix to make obj_to_reloc fail gently if it
cannot find obj in either data container: if 1.0 is present in the
ephemeral vector but not in the default vector, referring to the
ephemeral vector after top_level_run has completed will fail.

The problem is this limple insn:

(set #(mvar 17592188503872 1 (member 1.0)) #(mvar 17592188503233 0 (member =
1.0)))

The RHS mvar was not created with :constant 1.0 (so 1.0 was never added
to the data container), but it is comp-cstr-imm-vld-p.

The test case is reduced from mule-diag.el:

(defun list-block-of-chars (charset row min max)
  (let (i ch)
    (insert-char ?- (+ 7 (* 4 16)))
    (insert "\n     ")
    (setq i 0)
    (while (< i 16)
      (insert (format "%4X" i))
      (setq i (1+ i)))
    (setq i (* (/ min 16) 16))
    (while (<=3D i max)
      (if (=3D (% i 16) 0)
=09  (insert (format "\n%6Xx" (/ (+ (* row 256) i) 16))))
      (setq ch (if (< i min)
=09=09   32
=09=09 (or (decode-char charset (+ (* row 256) i))
=09=09     32)))=09=09; gap in mapping
      ;; Don't insert control codes, non-Unicode characters.
      (if (or (< ch 32) (=3D ch 127))
=09  (setq ch (single-key-description ch))
=09(if (and (>=3D ch 128) (< ch 160))
=09    (setq ch (format "%02Xh" ch))
=09  (if (> ch #x10FFFF)
=09      (setq ch 32))))
      (insert "\t" ch)
      (setq i (1+ i))))
  (insert "\n"))

But the original problem in mule-diag.el (generating a basic block which
would call (single-key-description 127.0) ) only showed up with other
modifications to the nativecomp compiler.

There are several ways to fix this, but I must note that adding a
constant that is highly likely to be already present in the register
file is usually wasteful: in this case, we don't want to create the
constant 1.0, we simply want to return the register which we now know to
contain 1.0.





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Pip Cet <pipcet@HIDDEN>
Subject: bug#78606: Acknowledgement (31.0.50; [nativecomp] native-ice in
 emit_mvar_rval)
Message-ID: <handler.78606.B.174835311431221.ack <at> debbugs.gnu.org>
References: <87v7pm6uoa.fsf@HIDDEN>
X-Gnu-PR-Message: ack 78606
X-Gnu-PR-Package: emacs
Reply-To: 78606 <at> debbugs.gnu.org
Date: Tue, 27 May 2025 13:39:03 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 78606 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
78606: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D78606
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#78606: 31.0.50; [nativecomp] native-ice in emit_mvar_rval
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Sat, 07 Jun 2025 08:43:01 +0000
Resent-Message-ID: <handler.78606.B78606.174928573122160 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 78606
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: acorallo@HIDDEN, Pip Cet <pipcet@HIDDEN>
Cc: 78606 <at> debbugs.gnu.org
Received: via spool by 78606-submit <at> debbugs.gnu.org id=B78606.174928573122160
          (code B ref 78606); Sat, 07 Jun 2025 08:43:01 +0000
Received: (at 78606) by debbugs.gnu.org; 7 Jun 2025 08:42:11 +0000
Received: from localhost ([127.0.0.1]:46827 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1uNp7z-0005lL-71
	for submit <at> debbugs.gnu.org; Sat, 07 Jun 2025 04:42:11 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:54718)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uNp7x-0005l9-Mn
 for 78606 <at> debbugs.gnu.org; Sat, 07 Jun 2025 04:42:10 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1uNp7s-0005aI-Dn; Sat, 07 Jun 2025 04:42:04 -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=/cvnFRpUvn8++q+1rSehsp40pMilzUMH0+U+uQMuJoM=; b=ELj/JYyao9Lw
 yQWn88AUiPpzWKogL1DLfFN+bG1vIeYVKksNqe7UMa/Euhz7+kzeF13GldMNKRtsc89JU/lSX1llz
 oUfeuwkeFwKFe7BQy98q0JQWHebQYcws5vmj0GwtZ44qinU/6fLUHuQP6WF6jrjMtGvNgVVLepNIe
 4U7jcyy9zaTXNA/3nRbkqjRT9dwaLV5lUSvTcKk+LK+VCAsL+QAmCF2WtBPxdTKuKozad/Zjfbb10
 SqdXLAeSRbvFIabovmK4K8G0F9CU5/deLockZf0uccYgoSkRsMdINviFBbtwuCTSkWozD8S0ARWXX
 m4z8cXOftioF1xm19gcuXg==;
Date: Sat, 07 Jun 2025 11:42:02 +0300
Message-Id: <86v7p8hrj9.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87v7pm6uoa.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN)
References: <87v7pm6uoa.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ping!  Andrea, any comments or suggestions?

> Date: Tue, 27 May 2025 13:38:02 +0000
> From:  Pip Cet via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> This reduced test case:
> 
> ;; -*- lexical-binding: t; -*-
> 
> (defun f (x)
>   (and (= x 1)
>        (if (eql x 1)
>            1
>          x)))
> 
> causes a native-ice:
> 
> Error: native-ice (\"can't find data in relocation containers\")
> 
> when Emacs is run as:
> 
> ./src/emacs -Q --batch --eval '(native-compile "native.el")'
> 
> The problem, as far as I can see, is that emit_mvar_rval appears to
> assume that if the constraint part of an mvar allows only a single
> value, that value can also be fetched from the reloc array.  In this
> case, the constraints on x make it so only 1.0 is a legal value in one
> basic block, but 1.0 isn't in the data array.
> 
> Note that it is not a valid fix to make obj_to_reloc fail gently if it
> cannot find obj in either data container: if 1.0 is present in the
> ephemeral vector but not in the default vector, referring to the
> ephemeral vector after top_level_run has completed will fail.
> 
> The problem is this limple insn:
> 
> (set #(mvar 17592188503872 1 (member 1.0)) #(mvar 17592188503233 0 (member 1.0)))
> 
> The RHS mvar was not created with :constant 1.0 (so 1.0 was never added
> to the data container), but it is comp-cstr-imm-vld-p.
> 
> The test case is reduced from mule-diag.el:
> 
> (defun list-block-of-chars (charset row min max)
>   (let (i ch)
>     (insert-char ?- (+ 7 (* 4 16)))
>     (insert "\n     ")
>     (setq i 0)
>     (while (< i 16)
>       (insert (format "%4X" i))
>       (setq i (1+ i)))
>     (setq i (* (/ min 16) 16))
>     (while (<= i max)
>       (if (= (% i 16) 0)
> 	  (insert (format "\n%6Xx" (/ (+ (* row 256) i) 16))))
>       (setq ch (if (< i min)
> 		   32
> 		 (or (decode-char charset (+ (* row 256) i))
> 		     32)))		; gap in mapping
>       ;; Don't insert control codes, non-Unicode characters.
>       (if (or (< ch 32) (= ch 127))
> 	  (setq ch (single-key-description ch))
> 	(if (and (>= ch 128) (< ch 160))
> 	    (setq ch (format "%02Xh" ch))
> 	  (if (> ch #x10FFFF)
> 	      (setq ch 32))))
>       (insert "\t" ch)
>       (setq i (1+ i))))
>   (insert "\n"))
> 
> But the original problem in mule-diag.el (generating a basic block which
> would call (single-key-description 127.0) ) only showed up with other
> modifications to the nativecomp compiler.
> 
> There are several ways to fix this, but I must note that adding a
> constant that is highly likely to be already present in the register
> file is usually wasteful: in this case, we don't want to create the
> constant 1.0, we simply want to return the register which we now know to
> contain 1.0.
> 
> 
> 
> 
> 





Last modified: Sat, 7 Jun 2025 08:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.