GNU logs - #46988, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Sun, 07 Mar 2021 13:48:01 +0000
Resent-Message-ID: <handler.46988.B.161512487223383 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 46988 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.161512487223383
          (code B ref -1); Sun, 07 Mar 2021 13:48:01 +0000
Received: (at submit) by debbugs.gnu.org; 7 Mar 2021 13:47:52 +0000
Received: from localhost ([127.0.0.1]:39003 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lItl9-000654-M1
	for submit <at> debbugs.gnu.org; Sun, 07 Mar 2021 08:47:51 -0500
Received: from lists.gnu.org ([209.51.188.17]:46562)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1lItl7-00064w-EN
 for submit <at> debbugs.gnu.org; Sun, 07 Mar 2021 08:47:50 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:54194)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>) id 1lItl7-0004eN-6F
 for bug-gnu-emacs@HIDDEN; Sun, 07 Mar 2021 08:47:49 -0500
Received: from mail-ot1-x335.google.com ([2607:f8b0:4864:20::335]:45628)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <pipcet@HIDDEN>) id 1lItl5-0001J1-Dr
 for bug-gnu-emacs@HIDDEN; Sun, 07 Mar 2021 08:47:48 -0500
Received: by mail-ot1-x335.google.com with SMTP id d9so6589338ote.12
 for <bug-gnu-emacs@HIDDEN>; Sun, 07 Mar 2021 05:47:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:from:date:message-id:subject:to;
 bh=GLLSTw9VY8Fh9aOTcNbUnFHXo/9K5t0ZQre2Pu8rqx4=;
 b=mXwz8IgSA0ZToAYLIA5cZM2KzhLBESll9N34lm+wgpjGVKOtS3STxCLFCYeUArq+Gp
 NhTSoeFUotTkeAsB7LLWt3a5CG2ext/c9JDb9Rp6m9vnnTLcwp3jXSUn6njiz+yyaNbD
 P88ALJwesK1Hi50M2pYLGmE9FaolyJ8okgMi+oxNuH5UBQV069mz8nJjMs5LDrX4sjQB
 0Z8i6ui739u3DGRi74rUlwF6YBIyR2k7zDJQxVmNBrp5srT9BvVqb3vavSHli18o2TWb
 hhQmes7fD1tW6e82cYPQNzOui/q/c3c2YaY1apB7XlUYTJ3vzl0JzjeHAdjv1MY5VJfA
 iWQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
 bh=GLLSTw9VY8Fh9aOTcNbUnFHXo/9K5t0ZQre2Pu8rqx4=;
 b=NAxSGYdW1cwAr0K5WY49E6q4R3M4xKW37xhseKnNFhMl0pYyMcDv1BB/XgNeVqq4Ug
 ZOLTSZsVmavfjy7e4h5D6IP0ClpDlbYPv4zqqOvew7eO+DQSmnIxXM3JIOzle3YpPOL2
 ktMD2ASw8j+yWbxwdfcYC83ui+PeMXs/Xixh2JB0WShA4E5LKo+dJ4jlovBmvz69Z+v1
 CKrBCBbLHVjC72u9wIzPorKQfQzwW5AqydAukyOwsMU1uGhFSY5tmPxbkkNx3cnfKFoI
 crHVYOG37HLlj0+Yjy4S8/2L8IpxodSEGZ7xluyu9Um57puoUGoQnRdXlVJssTm2MhIn
 B6/A==
X-Gm-Message-State: AOAM532tqdDYJJqRZECELdNtvcMVTviJWWPDfQfWZz6JXJCmX5NKaT+n
 PTekX3e/MnOjfnpEliScBDDzG8te8tAE0hSHRwOKEpQqX5sB6g==
X-Google-Smtp-Source: ABdhPJwucaNwKLQIuwRD7NdDeJnDWP5D3fj/R8rdlawgF7jWhmfGhlhSKHYN6rNyzvdDb716tKUYsW8qbP5m9jbYdfM=
X-Received: by 2002:a05:6830:1011:: with SMTP id
 a17mr13789252otp.154.1615124866157; 
 Sun, 07 Mar 2021 05:47:46 -0800 (PST)
MIME-Version: 1.0
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 7 Mar 2021 13:47:10 +0000
Message-ID: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=2607:f8b0:4864:20::335;
 envelope-from=pipcet@HIDDEN; helo=mail-ot1-x335.google.com
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_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.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: -2.3 (--)

This is a request for a debugging feature which would verify (at run
time or at compile time or both) that functions we know shouldn't call
GC don't call GC.

See https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00306.html

Proof-of-concept patch for a runtime check will be attached once this
has a bug number.




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#46988: Acknowledgement (28.0.50; Documenting and verifying
 assumptions about C code not calling quit or GCing)
Message-ID: <handler.46988.B.161512487223383.ack <at> debbugs.gnu.org>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
X-Gnu-PR-Message: ack 46988
X-Gnu-PR-Package: emacs
Reply-To: 46988 <at> debbugs.gnu.org
Date: Sun, 07 Mar 2021 13:48:02 +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 46988 <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
46988: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D46988
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Sun, 07 Mar 2021 14:07:02 +0000
Resent-Message-ID: <handler.46988.B46988.161512600525166 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.161512600525166
          (code B ref 46988); Sun, 07 Mar 2021 14:07:02 +0000
Received: (at 46988) by debbugs.gnu.org; 7 Mar 2021 14:06:45 +0000
Received: from localhost ([127.0.0.1]:39012 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lIu3Q-0006Xp-N4
	for submit <at> debbugs.gnu.org; Sun, 07 Mar 2021 09:06:45 -0500
Received: from mail-ot1-f52.google.com ([209.85.210.52]:41251)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1lIu3P-0006Xc-HL
 for 46988 <at> debbugs.gnu.org; Sun, 07 Mar 2021 09:06:44 -0500
Received: by mail-ot1-f52.google.com with SMTP id f8so1606396otp.8
 for <46988 <at> debbugs.gnu.org>; Sun, 07 Mar 2021 06:06:43 -0800 (PST)
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;
 bh=kJt+84CNxO0aVq5GAm6rL5MfYVYdaJa4CVQnYuHBT1I=;
 b=rHuMTsLx/ejdoUYDAa49GAkZO+Bys8AlNCUI2UuTEjbafe1Qn8Tz5Zuq30e0z46rVg
 BjSw3GwnTcFaiYvgaEnI9Af5fYYOgJpALGOydwjU79IwZk1KY7N+Hisb4cVCH3viJThf
 H4vIp8MsVwynCWHoTeX1kUoTuDjrl1MBXcVt/vLV1ENqny12+P2etG89SUGvLgkfzfkH
 ZLfjXA/DsQXCvSLIQPXF69JoqkcVc9iWscT21DBuqCFb0OLdFdQfBm/nfC8vO7YzOHNX
 ODBeYp7Q7G/ko75EURhlgHFBYwcKPIn4VpH3N7W3g2MiwmMryhv8lrhecKMNYRsPnEDo
 Sj0Q==
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;
 bh=kJt+84CNxO0aVq5GAm6rL5MfYVYdaJa4CVQnYuHBT1I=;
 b=apnk+Uvr3L3Ko9rtzBQB0UoDwk1q+o52Efp++zk0HpoVZlW0EgY0vZNkJnR1W6/r8F
 9kK7pFOOeZsRvXG83ZsAHKMfBPkmTYWtVV66NaJf3LLKyYaJUCam4kii3mnds+58VPJn
 OByA/s3hmsPCZ6MMTP/Dy8yf24y8hENqYzSQNiOlYDyfNCYnJz4U0orLZL/AKJxy1AiG
 zSxtt/By3a98jFs84fbqdeKL1Nws9iXc+YIWXxkH20QAy8xWJ7Yri2blmP+aH47BVj13
 fsBHgYFs/lQyevPFvUu55ZgaKVQR9lsKIXbPi6Q16Ufv2e2LnoRPjsXqC7PMXd9LO+k+
 0y9g==
X-Gm-Message-State: AOAM533YpSX1fJsGObpIULRqJQgJiVTFtxJs9zwMRKSOZL1hdgyLTA3J
 N/9ucse6dVTretpdkoqGHu9PyTKVcHzF63Xcg2m3kfrJRKA=
X-Google-Smtp-Source: ABdhPJzQUQYphGW1/BWA1IovI/JN85/9fZ/Q1AAIgs0bm2K1ivikl12RWhYuG1T0a6OvxnlNb5H0U/RqgkV7ThG9cBg=
X-Received: by 2002:a05:6830:1e51:: with SMTP id
 e17mr15896974otj.292.1615125997955; 
 Sun, 07 Mar 2021 06:06:37 -0800 (PST)
MIME-Version: 1.0
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
In-Reply-To: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Sun, 7 Mar 2021 14:06:01 +0000
Message-ID: <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000604f9905bcf2d3ca"
X-Spam-Score: -0.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: -1.0 (-)

--000000000000604f9905bcf2d3ca
Content-Type: text/plain; charset="UTF-8"

On Sun, Mar 7, 2021 at 1:48 PM Pip Cet <pipcet@HIDDEN> wrote:
> Proof-of-concept patch for a runtime check will be attached once this
> has a bug number.

Patch attached. It assumes the standard stack growth direction, and
that __builtin_frame_address (0) is available and works. Uses GCC's
__attribute__ ((cleanup (...))).

My point here is that the technical implementation isn't the problem,
the question is whether we're disciplined enough to run with checking
enabled and react to bug reports about the fatal error being thrown.

Pip

--000000000000604f9905bcf2d3ca
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Runtime-check-that-some-functions-don-t-GC-bug-46988.patch"
Content-Disposition: attachment; 
	filename="0001-Runtime-check-that-some-functions-don-t-GC-bug-46988.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_klz87h3c0>
X-Attachment-Id: f_klz87h3c0

RnJvbSBmNWFkNTc2ZWUwYWE2YzJiMzk3NWIwY2ExMzFhZWE0NDQ0YzdlMzM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTdW4s
IDcgTWFyIDIwMjEgMTM6NTk6MzIgKzAwMDAKU3ViamVjdDogW1BBVENIXSBSdW50aW1lIGNoZWNr
IHRoYXQgc29tZSBmdW5jdGlvbnMgZG9uJ3QgR0MgKGJ1ZyM0Njk4OCkKCiogc3JjL2FsbG9jLmMg
KG1hcmtfb2JqZWN0KTogTWFyayBhcyBET05UX0FMTE9XX0dDICgpLgooZ2xvYmFsX2RvbnRfYWxs
b3dfZ2MpOiBOZXcgdmFyaWFibGUuCiogc3JjL2V2YWwuYyAocHVzaF9oYW5kbGVyKTogUmVxdWly
ZSBhbiBzcCBhcmd1bWVudC4gQWxsIGNhbGxlcnMKY2hhbmdlZC4KKHB1c2hfaGFuZGxlcl9ub3Np
Z25hbCk6IFJlcXVpcmUgYW4gc3AgYXJndW1lbnQuIEFsbCBjYWxsZXJzIGNoYW5nZWQuClNhdmUg
c3AgYXJndW1lbnQgaW4gaGFuZGxlciBzdHJ1Y3R1cmUuCih1bndpbmRfdG9fY2F0Y2gpOiBIYW5k
bGUgZG9udF9hbGxvd19nYyBzdGFjay4KKEZ0aHJvdyk6IE1hcmsgYXMgRE9OVF9BTExPV19HQyAo
KS4KKiBzcmMvbGlzcC5oIChzdHJ1Y3QgaGFuZGxlcik6IEFkZCBzcCBmaWVsZCwgZm9yIGN1c3Rv
bSBzdGFjawp1bndpbmRpbmcuCihzdHJ1Y3QgZG9udF9hbGxvd19nYyk6IE5ldyBzdHJ1Y3QuCihk
b250X2FsbG93X2djX2luaXQpOiBOZXcgZnVuY3Rpb24uCihkb250X2FsbG93X2djX2Rlc3Ryb3kp
OiBOZXcgZnVuY3Rpb24uCihET05UX0FMTE9XX0dDKTogTmV3IG1hY3JvLgoobWF5YmVfZ2MpOiBD
aGVjayB3aGV0aGVyIEdDIGlzIGFsbG93ZWQsIHRocm93IGEgZmF0YWwgZXJyb3IgaWYgbm90Lgot
LS0KIHNyYy9hbGxvYy5jICAgICAgICB8ICAzICsrKwogc3JjL2J5dGVjb2RlLmMgICAgIHwgIDMg
KystCiBzcmMvZW1hY3MtbW9kdWxlLmMgfCAgMiArLQogc3JjL2V2YWwuYyAgICAgICAgIHwgMzUg
KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9saXNwLmggICAgICAgICB8
IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogc3JjL3RocmVhZC5jICAgICAg
IHwgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2FsbG9jLmMgYi9zcmMvYWxsb2MuYwppbmRleCBlNzJmYzRj
NDMzMmRlLi41ZmU2MmVmOTUzMTE3IDEwMDY0NAotLS0gYS9zcmMvYWxsb2MuYworKysgYi9zcmMv
YWxsb2MuYwpAQCAtNjU2NSw2ICs2NTY1LDcgQEAgbWFya19vYmplY3RzIChMaXNwX09iamVjdCAq
b2JqLCBwdHJkaWZmX3QgbikKIHZvaWQKIG1hcmtfb2JqZWN0IChMaXNwX09iamVjdCBhcmcpCiB7
CisgIERPTlRfQUxMT1dfR0MgKCk7CiAgIHJlZ2lzdGVyIExpc3BfT2JqZWN0IG9iajsKICAgdm9p
ZCAqcG87CiAjaWYgR0NfQ0hFQ0tfTUFSS0VEX09CSkVDVFMKQEAgLTc2NjgsMyArNzY2OSw1IEBA
IHN5bXNfb2ZfYWxsb2MgKHZvaWQpCiAgIGVudW0gZGVmaW5lZF9IQVZFX1hfV0lORE9XUyBkZWZp
bmVkX0hBVkVfWF9XSU5ET1dTOwogfSBjb25zdCBFWFRFUk5BTExZX1ZJU0lCTEUgZ2RiX21ha2Vf
ZW51bXNfdmlzaWJsZSA9IHswfTsKICNlbmRpZgkvKiBfX0dOVUNfXyAqLworCitzdHJ1Y3QgZG9u
dF9hbGxvd19nYyAqZ2xvYmFsX2RvbnRfYWxsb3dfZ2M7CmRpZmYgLS1naXQgYS9zcmMvYnl0ZWNv
ZGUuYyBiL3NyYy9ieXRlY29kZS5jCmluZGV4IDRmZDQxYWNhYjg1NmEuLjVhODVmZTgxYWU2ZGEg
MTAwNjQ0Ci0tLSBhL3NyYy9ieXRlY29kZS5jCisrKyBiL3NyYy9ieXRlY29kZS5jCkBAIC03NzYs
NyArNzc2LDggQEAgI2RlZmluZSBERUZJTkUobmFtZSwgdmFsdWUpIExBQkVMIChuYW1lKSAsCiAJ
ICB0eXBlID0gQ09ORElUSU9OX0NBU0U7CiAJcHVzaGhhbmRsZXI6CiAJICB7Ci0JICAgIHN0cnVj
dCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChQT1AsIHR5cGUpOworCSAgICBzdHJ1Y3QgaGFu
ZGxlciAqYyA9IHB1c2hfaGFuZGxlciAoUE9QLCB0eXBlLAorCQkJCQkgICAgICBfX2J1aWx0aW5f
ZnJhbWVfYWRkcmVzcyAoMCkpOwogCSAgICBjLT5ieXRlY29kZV9kZXN0ID0gRkVUQ0gyOwogCSAg
ICBjLT5ieXRlY29kZV90b3AgPSB0b3A7CiAKZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy1tb2R1bGUu
YyBiL3NyYy9lbWFjcy1tb2R1bGUuYwppbmRleCBmOGZiNTRjMDcyODIzLi42M2ZlNDk1YjkxYTE3
IDEwMDY0NAotLS0gYS9zcmMvZW1hY3MtbW9kdWxlLmMKKysrIGIvc3JjL2VtYWNzLW1vZHVsZS5j
CkBAIC0yNzIsNyArMjcyLDcgQEAgI2RlZmluZSBNT0RVTEVfSEFORExFX05PTkxPQ0FMX0VYSVQo
cmV0dmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICBpZiAobW9kdWxlX25vbl9s
b2NhbF9leGl0X2NoZWNrIChlbnYpICE9IGVtYWNzX2Z1bmNhbGxfZXhpdF9yZXR1cm4pCVwKICAg
ICByZXR1cm4gcmV0dmFsOwkJCQkJCQlcCiAgIHN0cnVjdCBoYW5kbGVyICppbnRlcm5hbF9oYW5k
bGVyID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgcHVzaF9oYW5k
bGVyX25vc2lnbmFsIChRdCwgQ0FUQ0hFUl9BTEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgcHVzaF9oYW5kbGVyX25vc2lnbmFsIChRdCwgQ0FUQ0hFUl9BTEwsIF9fYnVpbHRp
bl9mcmFtZV9hZGRyZXNzICgwKSk7IFwKICAgaWYgKCFpbnRlcm5hbF9oYW5kbGVyKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB7CQkJCQkJCQkJ
XAogICAgICAgbW9kdWxlX291dF9vZl9tZW1vcnkgKGVudik7CQkJCQlcCmRpZmYgLS1naXQgYS9z
cmMvZXZhbC5jIGIvc3JjL2V2YWwuYwppbmRleCBkZGFhOGVkZDgxNzA2Li5iMzk2NGI1MWExZWQx
IDEwMDY0NAotLS0gYS9zcmMvZXZhbC5jCisrKyBiL3NyYy9ldmFsLmMKQEAgLTI0Myw3ICsyNDMs
NyBAQCBpbml0X2V2YWwgKHZvaWQpCiAgICAgICAgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGxlYWsg
ZXZlcnkgdGltZSB3ZSB1bndpbmQgYmFjayB0byB0b3AtbGV2ZWwuICAgKi8KICAgICBoYW5kbGVy
bGlzdF9zZW50aW5lbCA9IHh6YWxsb2MgKHNpemVvZiAoc3RydWN0IGhhbmRsZXIpKTsKICAgICBo
YW5kbGVybGlzdCA9IGhhbmRsZXJsaXN0X3NlbnRpbmVsLT5uZXh0ZnJlZSA9IGhhbmRsZXJsaXN0
X3NlbnRpbmVsOwotICAgIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChRdW5ib3Vu
ZCwgQ0FUQ0hFUik7CisgICAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKFF1bmJv
dW5kLCBDQVRDSEVSLCBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyAoMCkpOwogICAgIGVhc3NlcnQg
KGMgPT0gaGFuZGxlcmxpc3Rfc2VudGluZWwpOwogICAgIGhhbmRsZXJsaXN0X3NlbnRpbmVsLT5u
ZXh0ZnJlZSA9IE5VTEw7CiAgICAgaGFuZGxlcmxpc3Rfc2VudGluZWwtPm5leHQgPSBOVUxMOwpA
QCAtMTE3OCw3ICsxMTc4LDcgQEAgaW50ZXJuYWxfY2F0Y2ggKExpc3BfT2JqZWN0IHRhZywKIAkJ
TGlzcF9PYmplY3QgKCpmdW5jKSAoTGlzcF9PYmplY3QpLCBMaXNwX09iamVjdCBhcmcpCiB7CiAg
IC8qIFRoaXMgc3RydWN0dXJlIGlzIG1hZGUgcGFydCBvZiB0aGUgY2hhaW4gYGNhdGNobGlzdCcu
ICAqLwotICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlciAodGFnLCBDQVRDSEVSKTsK
KyAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKHRhZywgQ0FUQ0hFUiwgX19idWls
dGluX2ZyYW1lX2FkZHJlc3MgKDApKTsKIAogICBpZiAoRVEgKHRhZywgUWV4aXQpKQogICAgIG1p
bmlidWZmZXJfcXVpdF9sZXZlbCA9IDA7CkBAIC0xMjU4LDYgKzEyNTgsOSBAQCB1bndpbmRfdG9f
Y2F0Y2ggKHN0cnVjdCBoYW5kbGVyICpjYXRjaCwgZW51bSBub25sb2NhbF9leGl0IHR5cGUsCiAK
ICAgbGlzcF9ldmFsX2RlcHRoID0gY2F0Y2gtPmZfbGlzcF9ldmFsX2RlcHRoOwogCisgIHZvaWQg
KnNwID0gY2F0Y2gtPnNwOworICB3aGlsZSAoZ2xvYmFsX2RvbnRfYWxsb3dfZ2MgJiYgKHZvaWQg
KilnbG9iYWxfZG9udF9hbGxvd19nYyA8IHNwKQorICAgIGdsb2JhbF9kb250X2FsbG93X2djID0g
Z2xvYmFsX2RvbnRfYWxsb3dfZ2MtPnByZXY7CiAgIHN5c19sb25nam1wIChjYXRjaC0+am1wLCAx
KTsKIH0KIApAQCAtMTI2Nyw2ICsxMjcwLDcgQEAgREVGVU4gKCJ0aHJvdyIsIEZ0aHJvdywgU3Ro
cm93LCAyLCAyLCAwLAogICAgICAgIGF0dHJpYnV0ZXM6IG5vcmV0dXJuKQogICAocmVnaXN0ZXIg
TGlzcF9PYmplY3QgdGFnLCBMaXNwX09iamVjdCB2YWx1ZSkKIHsKKyAgRE9OVF9BTExPV19HQyAo
KTsKICAgc3RydWN0IGhhbmRsZXIgKmM7CiAKICAgaWYgKCFOSUxQICh0YWcpKQpAQCAtMTM3Niw3
ICsxMzgwLDggQEAgaW50ZXJuYWxfbGlzcF9jb25kaXRpb25fY2FzZSAoTGlzcF9PYmplY3QgdmFy
LCBMaXNwX09iamVjdCBib2R5Zm9ybSwKICAgICAgIExpc3BfT2JqZWN0IGNvbmRpdGlvbiA9IENP
TlNQIChjbGF1c2UpID8gWENBUiAoY2xhdXNlKSA6IFFuaWw7CiAgICAgICBpZiAoIUNPTlNQIChj
b25kaXRpb24pKQogCWNvbmRpdGlvbiA9IGxpc3QxIChjb25kaXRpb24pOwotICAgICAgc3RydWN0
IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKGNvbmRpdGlvbiwgQ09ORElUSU9OX0NBU0UpOwor
ICAgICAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKGNvbmRpdGlvbiwgQ09ORElU
SU9OX0NBU0UsCisJCQkJCV9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzICgwKSk7CiAgICAgICBpZiAo
c3lzX3NldGptcCAoYy0+am1wKSkKIAl7CiAJICBMaXNwX09iamVjdCB2YWwgPSBoYW5kbGVybGlz
dC0+dmFsOwpAQCAtMTQyNiw3ICsxNDMxLDggQEAgaW50ZXJuYWxfbGlzcF9jb25kaXRpb25fY2Fz
ZSAoTGlzcF9PYmplY3QgdmFyLCBMaXNwX09iamVjdCBib2R5Zm9ybSwKIGludGVybmFsX2NvbmRp
dGlvbl9jYXNlIChMaXNwX09iamVjdCAoKmJmdW4pICh2b2lkKSwgTGlzcF9PYmplY3QgaGFuZGxl
cnMsCiAJCQkgTGlzcF9PYmplY3QgKCpoZnVuKSAoTGlzcF9PYmplY3QpKQogewotICBzdHJ1Y3Qg
aGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlciAoaGFuZGxlcnMsIENPTkRJVElPTl9DQVNFKTsKKyAg
c3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXIgKGhhbmRsZXJzLCBDT05ESVRJT05fQ0FT
RSwKKwkJCQkgICAgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApKTsKICAgaWYgKHN5c19zZXRq
bXAgKGMtPmptcCkpCiAgICAgewogICAgICAgTGlzcF9PYmplY3QgdmFsID0gaGFuZGxlcmxpc3Qt
PnZhbDsKQEAgLTE0NTAsNyArMTQ1Niw4IEBAIGludGVybmFsX2NvbmRpdGlvbl9jYXNlXzEgKExp
c3BfT2JqZWN0ICgqYmZ1bikgKExpc3BfT2JqZWN0KSwgTGlzcF9PYmplY3QgYXJnLAogCQkJICAg
TGlzcF9PYmplY3QgaGFuZGxlcnMsCiAJCQkgICBMaXNwX09iamVjdCAoKmhmdW4pIChMaXNwX09i
amVjdCkpCiB7Ci0gIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChoYW5kbGVycywg
Q09ORElUSU9OX0NBU0UpOworICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlciAoaGFu
ZGxlcnMsIENPTkRJVElPTl9DQVNFLAorCQkJCSAgICBfX2J1aWx0aW5fZnJhbWVfYWRkcmVzcyAo
MCkpOwogICBpZiAoc3lzX3NldGptcCAoYy0+am1wKSkKICAgICB7CiAgICAgICBMaXNwX09iamVj
dCB2YWwgPSBoYW5kbGVybGlzdC0+dmFsOwpAQCAtMTQ3Nyw3ICsxNDg0LDggQEAgaW50ZXJuYWxf
Y29uZGl0aW9uX2Nhc2VfMiAoTGlzcF9PYmplY3QgKCpiZnVuKSAoTGlzcF9PYmplY3QsIExpc3Bf
T2JqZWN0KSwKIAkJCSAgIExpc3BfT2JqZWN0IGhhbmRsZXJzLAogCQkJICAgTGlzcF9PYmplY3Qg
KCpoZnVuKSAoTGlzcF9PYmplY3QpKQogewotICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFu
ZGxlciAoaGFuZGxlcnMsIENPTkRJVElPTl9DQVNFKTsKKyAgc3RydWN0IGhhbmRsZXIgKmMgPSBw
dXNoX2hhbmRsZXIgKGhhbmRsZXJzLCBDT05ESVRJT05fQ0FTRSwKKwkJCQkgICAgX19idWlsdGlu
X2ZyYW1lX2FkZHJlc3MgKDApKTsKICAgaWYgKHN5c19zZXRqbXAgKGMtPmptcCkpCiAgICAgewog
ICAgICAgTGlzcF9PYmplY3QgdmFsID0gaGFuZGxlcmxpc3QtPnZhbDsKQEAgLTE1MDYsNyArMTUx
NCw4IEBAIGludGVybmFsX2NvbmRpdGlvbl9jYXNlX24gKExpc3BfT2JqZWN0ICgqYmZ1bikgKHB0
cmRpZmZfdCwgTGlzcF9PYmplY3QgKiksCiAJCQkJCQlwdHJkaWZmX3QgbmFyZ3MsCiAJCQkJCQlM
aXNwX09iamVjdCAqYXJncykpCiB7Ci0gIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVy
IChoYW5kbGVycywgQ09ORElUSU9OX0NBU0UpOworICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hf
aGFuZGxlciAoaGFuZGxlcnMsIENPTkRJVElPTl9DQVNFLAorCQkJCSAgICBfX2J1aWx0aW5fZnJh
bWVfYWRkcmVzcyAoMCkpOwogICBpZiAoc3lzX3NldGptcCAoYy0+am1wKSkKICAgICB7CiAgICAg
ICBMaXNwX09iamVjdCB2YWwgPSBoYW5kbGVybGlzdC0+dmFsOwpAQCAtMTUzMyw3ICsxNTQyLDgg
QEAgaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2VfbiAoTGlzcF9PYmplY3QgKCpiZnVuKSAocHRyZGlm
Zl90LCBMaXNwX09iamVjdCAqKSwKIGludGVybmFsX2NhdGNoX2FsbCAoTGlzcF9PYmplY3QgKCpm
dW5jdGlvbikgKHZvaWQgKiksIHZvaWQgKmFyZ3VtZW50LAogICAgICAgICAgICAgICAgICAgICBM
aXNwX09iamVjdCAoKmhhbmRsZXIpIChlbnVtIG5vbmxvY2FsX2V4aXQsIExpc3BfT2JqZWN0KSkK
IHsKLSAgc3RydWN0IGhhbmRsZXIgKmMgPSBwdXNoX2hhbmRsZXJfbm9zaWduYWwgKFF0LCBDQVRD
SEVSX0FMTCk7CisgIHN0cnVjdCBoYW5kbGVyICpjID0gcHVzaF9oYW5kbGVyX25vc2lnbmFsIChR
dCwgQ0FUQ0hFUl9BTEwsCisJCQkJCSAgICAgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApKTsK
ICAgaWYgKGMgPT0gTlVMTCkKICAgICByZXR1cm4gUWNhdGNoX2FsbF9tZW1vcnlfZnVsbDsKIApA
QCAtMTU1NSwxNiArMTU2NSwxOCBAQCBpbnRlcm5hbF9jYXRjaF9hbGwgKExpc3BfT2JqZWN0ICgq
ZnVuY3Rpb24pICh2b2lkICopLCB2b2lkICphcmd1bWVudCwKIH0KIAogc3RydWN0IGhhbmRsZXIg
KgotcHVzaF9oYW5kbGVyIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBlbnVtIGhhbmRsZXJ0eXBl
IGhhbmRsZXJ0eXBlKQorcHVzaF9oYW5kbGVyIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBlbnVt
IGhhbmRsZXJ0eXBlIGhhbmRsZXJ0eXBlLAorCSAgICAgIHZvaWQgKnNwKQogewotICBzdHJ1Y3Qg
aGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlcl9ub3NpZ25hbCAodGFnX2NoX3ZhbCwgaGFuZGxlcnR5
cGUpOworICBzdHJ1Y3QgaGFuZGxlciAqYyA9IHB1c2hfaGFuZGxlcl9ub3NpZ25hbCAodGFnX2No
X3ZhbCwgaGFuZGxlcnR5cGUsIHNwKTsKICAgaWYgKCFjKQogICAgIG1lbW9yeV9mdWxsIChzaXpl
b2YgKmMpOwogICByZXR1cm4gYzsKIH0KIAogc3RydWN0IGhhbmRsZXIgKgotcHVzaF9oYW5kbGVy
X25vc2lnbmFsIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBlbnVtIGhhbmRsZXJ0eXBlIGhhbmRs
ZXJ0eXBlKQorcHVzaF9oYW5kbGVyX25vc2lnbmFsIChMaXNwX09iamVjdCB0YWdfY2hfdmFsLCBl
bnVtIGhhbmRsZXJ0eXBlIGhhbmRsZXJ0eXBlLAorCQkgICAgICAgdm9pZCAqc3ApCiB7CiAgIHN0
cnVjdCBoYW5kbGVyICpDQUNIRUFCTEUgYyA9IGhhbmRsZXJsaXN0LT5uZXh0ZnJlZTsKICAgaWYg
KCFjKQpAQCAtMTU4NSw2ICsxNTk3LDcgQEAgcHVzaF9oYW5kbGVyX25vc2lnbmFsIChMaXNwX09i
amVjdCB0YWdfY2hfdmFsLCBlbnVtIGhhbmRsZXJ0eXBlIGhhbmRsZXJ0eXBlKQogICBjLT5wZGxj
b3VudCA9IFNQRUNQRExfSU5ERVggKCk7CiAgIGMtPnBvbGxfc3VwcHJlc3NfY291bnQgPSBwb2xs
X3N1cHByZXNzX2NvdW50OwogICBjLT5pbnRlcnJ1cHRfaW5wdXRfYmxvY2tlZCA9IGludGVycnVw
dF9pbnB1dF9ibG9ja2VkOworICBjLT5zcCA9IHNwOwogICBoYW5kbGVybGlzdCA9IGM7CiAgIHJl
dHVybiBjOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2xpc3AuaCBiL3NyYy9saXNwLmgKaW5kZXggYjk1
ZjM4OWI4OTAyNC4uOWQ5NDM3NmI1Yjg5NyAxMDA2NDQKLS0tIGEvc3JjL2xpc3AuaAorKysgYi9z
cmMvbGlzcC5oCkBAIC0zMjU5LDYgKzMyNTksNyBAQCBTUEVDUERMX0lOREVYICh2b2lkKQogICBw
dHJkaWZmX3QgcGRsY291bnQ7CiAgIGludCBwb2xsX3N1cHByZXNzX2NvdW50OwogICBpbnQgaW50
ZXJydXB0X2lucHV0X2Jsb2NrZWQ7CisgIHZvaWQgKnNwOwogfTsKIAogZXh0ZXJuIExpc3BfT2Jq
ZWN0IG1lbW9yeV9zaWduYWxfZGF0YTsKQEAgLTQxNDMsOCArNDE0NCw5IEBAIHhzaWduYWwgKExp
c3BfT2JqZWN0IGVycm9yX3N5bWJvbCwgTGlzcF9PYmplY3QgZGF0YSkKICAgICAoTGlzcF9PYmpl
Y3QgKCopIChwdHJkaWZmX3QsIExpc3BfT2JqZWN0ICopLCBwdHJkaWZmX3QsIExpc3BfT2JqZWN0
ICosCiAgICAgIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCAoKikgKExpc3BfT2JqZWN0LCBwdHJk
aWZmX3QsIExpc3BfT2JqZWN0ICopKTsKIGV4dGVybiBMaXNwX09iamVjdCBpbnRlcm5hbF9jYXRj
aF9hbGwgKExpc3BfT2JqZWN0ICgqKSAodm9pZCAqKSwgdm9pZCAqLCBMaXNwX09iamVjdCAoKikg
KGVudW0gbm9ubG9jYWxfZXhpdCwgTGlzcF9PYmplY3QpKTsKLWV4dGVybiBzdHJ1Y3QgaGFuZGxl
ciAqcHVzaF9oYW5kbGVyIChMaXNwX09iamVjdCwgZW51bSBoYW5kbGVydHlwZSk7Ci1leHRlcm4g
c3RydWN0IGhhbmRsZXIgKnB1c2hfaGFuZGxlcl9ub3NpZ25hbCAoTGlzcF9PYmplY3QsIGVudW0g
aGFuZGxlcnR5cGUpOworZXh0ZXJuIHN0cnVjdCBoYW5kbGVyICpwdXNoX2hhbmRsZXIgKExpc3Bf
T2JqZWN0LCBlbnVtIGhhbmRsZXJ0eXBlLCB2b2lkICopOworZXh0ZXJuIHN0cnVjdCBoYW5kbGVy
ICpwdXNoX2hhbmRsZXJfbm9zaWduYWwgKExpc3BfT2JqZWN0LCBlbnVtIGhhbmRsZXJ0eXBlLAor
CQkJCQkgICAgICB2b2lkICopOwogZXh0ZXJuIHZvaWQgc3BlY2JpbmQgKExpc3BfT2JqZWN0LCBM
aXNwX09iamVjdCk7CiBleHRlcm4gdm9pZCByZWNvcmRfdW53aW5kX3Byb3RlY3QgKHZvaWQgKCop
IChMaXNwX09iamVjdCksIExpc3BfT2JqZWN0KTsKIGV4dGVybiB2b2lkIHJlY29yZF91bndpbmRf
cHJvdGVjdF9hcnJheSAoTGlzcF9PYmplY3QgKiwgcHRyZGlmZl90KTsKQEAgLTUwNTAsOSArNTA1
MiwzNiBAQCAjZGVmaW5lIEZPUl9FQUNIX0FMSVNUX1ZBTFVFKGhlYWRfdmFyLCBsaXN0X3Zhciwg
dmFsdWVfdmFyKQkJXAogCiAvKiBDaGVjayB3aGV0aGVyIGl0J3MgdGltZSBmb3IgR0MsIGFuZCBy
dW4gaXQgaWYgc28uICAqLwogCisvKiBEbyBub3Qgd3JhcCBpbnRvIGRvIHsgfSB3aGlsZSAoMCku
ICovCisKK3N0cnVjdCBkb250X2FsbG93X2djOworc3RydWN0IGRvbnRfYWxsb3dfZ2MKK3sKKyAg
c3RydWN0IGRvbnRfYWxsb3dfZ2MgKnByZXY7Cit9OworCitleHRlcm4gc3RydWN0IGRvbnRfYWxs
b3dfZ2MgKmdsb2JhbF9kb250X2FsbG93X2djOworCitJTkxJTkUgdm9pZAorZG9udF9hbGxvd19n
Y19pbml0IChzdHJ1Y3QgZG9udF9hbGxvd19nYyAqZGFnKQoreworICBkYWctPnByZXYgPSBnbG9i
YWxfZG9udF9hbGxvd19nYzsKKyAgZ2xvYmFsX2RvbnRfYWxsb3dfZ2MgPSBkYWc7Cit9CisKK0lO
TElORSB2b2lkCitkb250X2FsbG93X2djX2Rlc3Ryb3kgKHN0cnVjdCBkb250X2FsbG93X2djICpk
YWcpCit7CisgIGdsb2JhbF9kb250X2FsbG93X2djID0gZGFnLT5wcmV2OworfQorCisjZGVmaW5l
IERPTlRfQUxMT1dfR0MoKSBzdHJ1Y3QgZG9udF9hbGxvd19nYyBfX2F0dHJpYnV0ZV9fICgoY2xl
YW51cCAoZG9udF9hbGxvd19nY19kZXN0cm95KSkpIGRvbnRfYWxsb3dfZ2M7IGRvbnRfYWxsb3df
Z2NfaW5pdCAoJmRvbnRfYWxsb3dfZ2MpCisKIElOTElORSB2b2lkCiBtYXliZV9nYyAodm9pZCkK
IHsKKyAgaWYgKGdsb2JhbF9kb250X2FsbG93X2djKQorICAgIGZhdGFsICgiR0MgZGlzYWxsb3dl
ZCIpOwogICBpZiAoY29uc2luZ191bnRpbF9nYyA8IDApCiAgICAgbWF5YmVfZ2FyYmFnZV9jb2xs
ZWN0ICgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3RocmVhZC5jIGIvc3JjL3RocmVhZC5jCmluZGV4
IGY3NGY2MTExNDg2NDcuLjZmNWRlYjQxMDEwMzIgMTAwNjQ0Ci0tLSBhL3NyYy90aHJlYWQuYwor
KysgYi9zcmMvdGhyZWFkLmMKQEAgLTc0OCw3ICs3NDgsNyBAQCBydW5fdGhyZWFkICh2b2lkICpz
dGF0ZSkKICAgICAgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGxlYWsgZXZlcnkgdGltZSB3ZSB1bndp
bmQgYmFjayB0byB0b3AtbGV2ZWwuICAgKi8KICAgaGFuZGxlcmxpc3Rfc2VudGluZWwgPSB4emFs
bG9jIChzaXplb2YgKHN0cnVjdCBoYW5kbGVyKSk7CiAgIGhhbmRsZXJsaXN0ID0gaGFuZGxlcmxp
c3Rfc2VudGluZWwtPm5leHRmcmVlID0gaGFuZGxlcmxpc3Rfc2VudGluZWw7Ci0gIHN0cnVjdCBo
YW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChRdW5ib3VuZCwgQ0FUQ0hFUik7CisgIHN0cnVjdCBo
YW5kbGVyICpjID0gcHVzaF9oYW5kbGVyIChRdW5ib3VuZCwgQ0FUQ0hFUiwgX19idWlsdGluX2Zy
YW1lX2FkZHJlc3MgKDApKTsKICAgZWFzc2VydCAoYyA9PSBoYW5kbGVybGlzdF9zZW50aW5lbCk7
CiAgIGhhbmRsZXJsaXN0X3NlbnRpbmVsLT5uZXh0ZnJlZSA9IE5VTEw7CiAgIGhhbmRsZXJsaXN0
X3NlbnRpbmVsLT5uZXh0ID0gTlVMTDsKLS0gCjIuMzAuMQoK
--000000000000604f9905bcf2d3ca--




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
Resent-From: Lars Ingebrigtsen <larsi@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 08 Mar 2021 19:43:01 +0000
Resent-Message-ID: <handler.46988.B46988.161523257728126 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.161523257728126
          (code B ref 46988); Mon, 08 Mar 2021 19:43:01 +0000
Received: (at 46988) by debbugs.gnu.org; 8 Mar 2021 19:42:57 +0000
Received: from localhost ([127.0.0.1]:44890 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lJLmL-0007Ja-6u
	for submit <at> debbugs.gnu.org; Mon, 08 Mar 2021 14:42:57 -0500
Received: from quimby.gnus.org ([95.216.78.240]:42404)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1lJLmJ-0007JL-Nk
 for 46988 <at> debbugs.gnu.org; Mon, 08 Mar 2021 14:42:56 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=pDIBCVoqcd94julypzhXb/WErB7YNX63ISJxotZC4Fc=; b=ckeL2K3stSU+VqpnRLaoSFw+OA
 HqzbvP4RVDEOkeRzH+eU9NaDEOx4alLrEVKg+0X7A16JYowBKzuXXu72YwsR8P3qcyiIjWdraTmp2
 F/wWhIIW/D9+4/qd+aB9ui2V3/jJ4VhVukw4uwL7+s8kOQOPfgTucZBmVjFkAnw67cHs=;
Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1lJLmB-0005hm-Hj; Mon, 08 Mar 2021 20:42:49 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
X-Now-Playing: Coil's _Black Antlers (1)_: "The Wraiths And Strays Of Paris"
Date: Mon, 08 Mar 2021 20:42:46 +0100
In-Reply-To: <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 (Pip Cet's message of "Sun, 7 Mar 2021 14:06:01 +0000")
Message-ID: <875z21mnyh.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Pip Cet <pipcet@HIDDEN> writes: > Patch attached. It
 assumes
 the standard stack growth direction, and > that __builtin_frame_address (0)
 is available and works. Uses GCC's > __attribute__ ((cleanup (...))). > >
 My point here is that [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.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: -1.0 (-)

Pip Cet <pipcet@HIDDEN> writes:

> Patch attached. It assumes the standard stack growth direction, and
> that __builtin_frame_address (0) is available and works. Uses GCC's
> __attribute__ ((cleanup (...))).
>
> My point here is that the technical implementation isn't the problem,
> the question is whether we're disciplined enough to run with checking
> enabled and react to bug reports about the fatal error being thrown.

This is something that comes up again and again, so having
infrastructure to getting feedback faster on this stuff sounds like a
good idea to me.

Even better would be to have build-time warnings, but I guess that's
pretty much impossible?

On the other hand, even if this just gives us run-time feedback, I guess
the test suite would give some coverage here...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Mon, 08 Mar 2021 19:58:01 +0000
Resent-Message-ID: <handler.46988.B46988.16152334715003 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Lars Ingebrigtsen <larsi@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.16152334715003
          (code B ref 46988); Mon, 08 Mar 2021 19:58:01 +0000
Received: (at 46988) by debbugs.gnu.org; 8 Mar 2021 19:57:51 +0000
Received: from localhost ([127.0.0.1]:44907 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lJM0k-0001Id-SU
	for submit <at> debbugs.gnu.org; Mon, 08 Mar 2021 14:57:51 -0500
Received: from mail-oo1-f41.google.com ([209.85.161.41]:32828)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1lJM0j-0001IO-8V
 for 46988 <at> debbugs.gnu.org; Mon, 08 Mar 2021 14:57:49 -0500
Received: by mail-oo1-f41.google.com with SMTP id z22so2484802oop.0
 for <46988 <at> debbugs.gnu.org>; Mon, 08 Mar 2021 11:57:49 -0800 (PST)
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=sTrCfs1TcEpoeZekyEQZjPGP+H2MltmncqaXT2G0Li8=;
 b=hs3+V74EwwpkJmJh9VWTvPkj9pwbU5QbhbMbfoWu0aKkt/thbKmVioW/dfzPK5ixQZ
 CRW3tZvDY/CaEvtxvlb+duQcFWDwmdmuLOrrCQlXFf6RPXlF1H25dZHSTSnGXFklJM5c
 XF/6q+HpILpQ2mIBwL9FyFc7UfSA8r77n8J2fHPEeZF66x6LI+ABr3empbLcl07YYT12
 CWLznksujK0EHzjZP6dVcsICqM6eQG0YmuvuyMZl7a237YjOTpiEkM2/Tg/yiagJIAd6
 4myf2JQbLfnOy/1QYJ1wVJD/EmV3e8mnot2ERNbaHKqYVhvUhvlIwcQbj/lbdL/htUST
 4OEg==
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=sTrCfs1TcEpoeZekyEQZjPGP+H2MltmncqaXT2G0Li8=;
 b=aN8wRiwEfCyqL5XU4iD1x5f9mp/HR52e7VT8NZ+uJLSA+22Mr0a7g13TQgekj4dz5y
 w+41KHEfuofGxBHdHR6YhQ4TvJm3JepQTFAieRPiG7F8cgqTRN2LEsTG95hnm9G8MJWN
 BKg+EaO5DOsrzUKZYRpoBuZzijVCS6vqRd1eOCgAF18x5T1wmr4Y0ibCUs2joq7oqE72
 vtyWQDa6mZ/1LUXMrMtxff9Ru7No2fk8RqH8apaaDl9F5j18iXJByjAgMertYbvjMEGw
 /nFUxPZ71BOfhrHsaLJC6z0kLv97MkmnmZNr3aKuj0NPWH3SS8vdOpuNPDvoKeMOo6V5
 tkjg==
X-Gm-Message-State: AOAM533M9xb34au1Dq40WG86T3Uk9cTAAjcboabQs61TZxH2UV53ijZu
 Zk/NmL6uuRH4HsnWYyRNe1seg+yUZ+iYemX/GVY=
X-Google-Smtp-Source: ABdhPJx4B7hrPevLhpvx5P5yEiLTgZu2jyApuCnE/TkydDyiTHUqhPBaEfDqlA7zdCRm1w0aPK3ixLy4vDaDPzeO+FU=
X-Received: by 2002:a4a:2511:: with SMTP id g17mr20155100ooa.22.1615233463497; 
 Mon, 08 Mar 2021 11:57:43 -0800 (PST)
MIME-Version: 1.0
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <875z21mnyh.fsf@HIDDEN>
In-Reply-To: <875z21mnyh.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Mon, 8 Mar 2021 19:57:07 +0000
Message-ID: <CAOqdjBcwbAcAsTUZO498b_mygp5nuBNVKRv11EOHPqg5jGHYhg@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.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: -1.0 (-)

On Mon, Mar 8, 2021 at 7:42 PM Lars Ingebrigtsen <larsi@HIDDEN> wrote:
> Pip Cet <pipcet@HIDDEN> writes:
>
> > Patch attached. It assumes the standard stack growth direction, and
> > that __builtin_frame_address (0) is available and works. Uses GCC's
> > __attribute__ ((cleanup (...))).
> >
> > My point here is that the technical implementation isn't the problem,
> > the question is whether we're disciplined enough to run with checking
> > enabled and react to bug reports about the fatal error being thrown.
>
> This is something that comes up again and again, so having
> infrastructure to getting feedback faster on this stuff sounds like a
> good idea to me.
>
> Even better would be to have build-time warnings, but I guess that's
> pretty much impossible?

It would be very easy if we could categorize our functions into "don't
call this unless you can accept GC" and "I won't GC", but there's a
third category, "depending on my arguments, I may or may not call GC"
(and, of course, a fourth category, "uncategorized").

It's easy to warn about category 1 functions being called from
category 2 functions, but category 3 ruins everything.

I'm very impressed with gcc's -fanalyzer (in conjunction with -flto)
If you have 20 GB of RAM and 15 minutes to spare, you can get it to
find a few places in the Emacs sources that really do look suspicious
and should be fixed to more obviously not dereference NULL.

Essentially, it does a lot of hard work trying to prove your code is
okay; but, if it can't, it will warn even though it might be (and, in
the case of Emacs, is) wrong.

So "all" we'd have to do is to teach it about some category 1
functions, some category 2 functions, and have it prove there's no
valid control flow from the second to the first. If it can't, we just
might have to accept that our arguments are not obvious enough, and
make them explicit enough for the analyzer to understand.

But I haven't figured out how to do that, yet. My suspicion is the
analyzer works on local variables and ignores the state of global
variables, and our state vars would have to be global.

And I realize I'm poking a hornet's nest, but what this really is is
dynamic scope, which might be easier for the analyzer to grok than
general global variables... hmm.

In summary, I think we can install the run-time check, and when the
analyzer is ready, we'll automatically get compile-time warnings! Even
though it might require a terabyte of RAM!

I also like the way we can build specbind-free dynamic C bindings
using stack structures, global variables, __attribute__((cleanup)),
and some code in unwind_to_catch, but of course that's a GCC extension
and not something we can do outside the realm of debugging.

Pip




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
Resent-From: Lars Ingebrigtsen <larsi@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 09 Mar 2021 14:06:01 +0000
Resent-Message-ID: <handler.46988.B46988.161529874020932 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.161529874020932
          (code B ref 46988); Tue, 09 Mar 2021 14:06:01 +0000
Received: (at 46988) by debbugs.gnu.org; 9 Mar 2021 14:05:40 +0000
Received: from localhost ([127.0.0.1]:46030 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lJczU-0005RU-0D
	for submit <at> debbugs.gnu.org; Tue, 09 Mar 2021 09:05:40 -0500
Received: from quimby.gnus.org ([95.216.78.240]:51718)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1lJczR-0005RF-Qg
 for 46988 <at> debbugs.gnu.org; Tue, 09 Mar 2021 09:05:38 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=yAbZQsuOfNAFbjnAlTNS4/2oF3n6NRkfErRpoO2zmTA=; b=NRyLqLw2YN306nN1ElVNkoCkjj
 iBKLKj3l/aE+izVz6ADyd7+fLVuxi3sASvSl9aBn6+Mx+vN+wbamUlZXqgO3/hDt3UAfeYWHpwx1u
 tlIZy4y8DRYZGB8sr6Q5JwSvbJHKNwa3KHepJC/QmcnLXkEW9CbN8ssEVA5ssm5/yb/8=;
Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1lJczI-00074L-QZ; Tue, 09 Mar 2021 15:05:31 +0100
From: Lars Ingebrigtsen <larsi@HIDDEN>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <875z21mnyh.fsf@HIDDEN>
 <CAOqdjBcwbAcAsTUZO498b_mygp5nuBNVKRv11EOHPqg5jGHYhg@HIDDEN>
X-Now-Playing: The Ex's _Turn_: "3-45 AM"
Date: Tue, 09 Mar 2021 15:05:27 +0100
In-Reply-To: <CAOqdjBcwbAcAsTUZO498b_mygp5nuBNVKRv11EOHPqg5jGHYhg@HIDDEN>
 (Pip Cet's message of "Mon, 8 Mar 2021 19:57:07 +0000")
Message-ID: <87r1kol8wo.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Pip Cet <pipcet@HIDDEN> writes: > In summary, I think we
 can install the run-time check, and when the > analyzer is ready,
 we'll automatically
 get compile-time warnings! Even > though it might require a terabyte of RAM!
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.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: -1.0 (-)

Pip Cet <pipcet@HIDDEN> writes:

> In summary, I think we can install the run-time check, and when the
> analyzer is ready, we'll automatically get compile-time warnings! Even
> though it might require a terabyte of RAM!

Makes sense to me.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
Resent-From: Matt Armstrong <matt@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Wed, 10 Mar 2021 18:30:02 +0000
Resent-Message-ID: <handler.46988.B46988.161540094517634 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>, 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.161540094517634
          (code B ref 46988); Wed, 10 Mar 2021 18:30:02 +0000
Received: (at 46988) by debbugs.gnu.org; 10 Mar 2021 18:29:05 +0000
Received: from localhost ([127.0.0.1]:51827 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lK3Zx-0004aM-Df
	for submit <at> debbugs.gnu.org; Wed, 10 Mar 2021 13:29:05 -0500
Received: from relay11.mail.gandi.net ([217.70.178.231]:57499)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <matt@HIDDEN>) id 1lK3Zu-0004Zr-S1
 for 46988 <at> debbugs.gnu.org; Wed, 10 Mar 2021 13:29:03 -0500
Received: from mdeb (24-113-169-116.wavecable.com [24.113.169.116])
 (Authenticated sender: matt@HIDDEN)
 by relay11.mail.gandi.net (Postfix) with ESMTPSA id B541B100004;
 Wed, 10 Mar 2021 18:28:55 +0000 (UTC)
Received: from matt by mdeb with local (Exim 4.94)
 (envelope-from <matt@HIDDEN>)
 id 1lK3Zk-000mlB-41; Wed, 10 Mar 2021 10:28:52 -0800
From: Matt Armstrong <matt@HIDDEN>
In-Reply-To: <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
Date: Wed, 10 Mar 2021 10:28:52 -0800
Message-ID: <87a6ra7ti3.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
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: -1.7 (-)

Pip Cet <pipcet@HIDDEN> writes:

Hey Pip, just minor comments from me.

(I assume you already plan to put the use of the cleanup attribute
behind conditional macros for portability)

Why a linked list/stack implementation?  How about a global count var
that is incremented, decremented, and asserted zero?

You wrote that this impl depends on the stack direction, but I can't
figure out why.  If it is indeed the case, add a comment explaining
this?

As a macro name, I think something like ASSERT_NO_GC_IN_SCOPE would be
clearer.

Signaling that this is a "magical" scope based construct is useful
because this sort of thing is so unusual in C.  The first thing I looked
for was an "END_SCOPE" macro and started scratching my head.

I'd also use a clear that indicates a debug time check (ASSERT,
CRASH_IF, etc.)

"Don't allow" states an invariant but does not clearly indicate a
consequence or other intent.  It could imply something as polite as "GC
is disabled for this scope".

For the C level stuff, maybe call it gc_forbidden_scope?


> + /* Do not wrap into do { } while (0). */

Move the comment next to the #define.  Ideally, don't issue a command
for the next programmer but instead explain why the code is the way is.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Wed, 10 Mar 2021 19:11:02 +0000
Resent-Message-ID: <handler.46988.B46988.161540341221347 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Matt Armstrong <matt@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.161540341221347
          (code B ref 46988); Wed, 10 Mar 2021 19:11:02 +0000
Received: (at 46988) by debbugs.gnu.org; 10 Mar 2021 19:10:12 +0000
Received: from localhost ([127.0.0.1]:51863 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lK4Dk-0005YF-3P
	for submit <at> debbugs.gnu.org; Wed, 10 Mar 2021 14:10:12 -0500
Received: from mail-oi1-f171.google.com ([209.85.167.171]:34706)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1lK4Di-0005Xx-PF
 for 46988 <at> debbugs.gnu.org; Wed, 10 Mar 2021 14:10:11 -0500
Received: by mail-oi1-f171.google.com with SMTP id x78so20339377oix.1
 for <46988 <at> debbugs.gnu.org>; Wed, 10 Mar 2021 11:10:10 -0800 (PST)
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=rN/EEtdD/7Y+1gqW8NfGJCwkKvULmoPBWWajBeMkznU=;
 b=rwKY8hsKBoV4P2NXHKBHMTq9uMmgoU1bsM986m9/azt9OJFsaFS+JPNiQM/CmiF7f6
 4T37yIpbG4BnTTXz3bOnSudirLpVepn8dvHVy12RfbIewBr7jcwPJJd0tXh6ezcILJRG
 rJmGW51KbY+IGZEULvpTSqIcVlbcT4eCDW03K6toVcKhv1XI5pi90qUiA6ahjYIPTG5G
 wcblKC0rnLmF+6o2v6ck/1/afR8wjeRDEbYStaPRr0kkGdFQSOrPQO5mngtPPQacOwgs
 XalVyThDUts5s4qyt8IltvsSB1KJV8MJipSB8PVy3OEfP06a6owlHZ8CkfgmM90CjTYj
 gJ+g==
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=rN/EEtdD/7Y+1gqW8NfGJCwkKvULmoPBWWajBeMkznU=;
 b=HhvaomvAZgECdgimbIk0vEK7fyri5Cb0MiRuZiNPsRPqM2XrVIJ4742N9erbWSpFWB
 p/T0o4TFI3qyGNMrei6Vr9uP7YhbOl+lJF+rHhNpgj8ZiV3BCq29CmmwTEr3j74I3be6
 EqvvmoGQ3NCMinIZyzZmJkW/v/MSYqGZwGb97lYTz+4Lvk+4erO3GHmqq8s7jdWGIj+c
 gIvZyJII4rf2nBMSzYGyP/eQtJ2bMLIrGDSDVdTTjsZgtoEc0UQb++IHeGFFP5Z4so7y
 Yejr0wIsaXQPcIviq3LF6dNBEzL3OVBzEIhuIiPqb56N4exPQ8yyCupTUis2jgEvjXut
 +TiA==
X-Gm-Message-State: AOAM533OwAb023VFNrc5mn3RxdbO5fY6JOfp094HyTHpZViriovCO80s
 yDjQ6tbdLBJ9Cf5S++6L7mtqXa/S3kFQJqzykCYl1fSjGxI=
X-Google-Smtp-Source: ABdhPJxKqe0QCfaKS2MhpxOAmBs3ejTeqUBt71yvG517jyQNMs1WznK3jDVVSkyV7ML2QpP8QnlUi3CXfMd6fs3Kqhg=
X-Received: by 2002:a54:4196:: with SMTP id 22mr3396795oiy.30.1615403405074;
 Wed, 10 Mar 2021 11:10:05 -0800 (PST)
MIME-Version: 1.0
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87a6ra7ti3.fsf@HIDDEN>
In-Reply-To: <87a6ra7ti3.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Wed, 10 Mar 2021 19:09:29 +0000
Message-ID: <CAOqdjBeA9D4dTsc+crLPoz7b6EBEZ9dWbi5Thq0Zy861fkvRBg@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.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: -1.0 (-)

On Wed, Mar 10, 2021 at 6:28 PM Matt Armstrong <matt@HIDDEN> wrote:
> Pip Cet <pipcet@HIDDEN> writes:
>
> Hey Pip, just minor comments from me.

Thanks (I'm responding to my email in a LIFO fashion after receiving a
new computer)!

> (I assume you already plan to put the use of the cleanup attribute
> behind conditional macros for portability)

Yes, absolutely.

> Why a linked list/stack implementation?  How about a global count var
> that is incremented, decremented, and asserted zero?

Emacs' specpdl implementation is independent of, and probably
predates, the widespread availability of C exceptions. In fact, as it
is written today, C exceptions will not work in Emacs C code (neither
will C++ exceptions), because Emacs uses setjmp / longjmp instead, and
unwinds the stack by itself. Since I was too lazy to fix it to use
compatible unwinding routines on supported platforms, I simply created
a linked list on the stack, unwinding it in unwind_to_catch.

> You wrote that this impl depends on the stack direction, but I can't
> figure out why.  If it is indeed the case, add a comment explaining
> this?

The unwind_to_catch code checks how far up the stack it has to go by
comparing the stack pointer to the address of a local variable. You're
absolutely right about the comment.

> As a macro name, I think something like ASSERT_NO_GC_IN_SCOPE would be
> clearer.

Thanks! You're quite right, I chose that as a placeholder, and
explicitly mentioning the scope is a really good idea.

> Signaling that this is a "magical" scope based construct is useful
> because this sort of thing is so unusual in C.  The first thing I looked
> for was an "END_SCOPE" macro and started scratching my head.
>
> I'd also use a clear that indicates a debug time check (ASSERT,
> CRASH_IF, etc.)
>
> "Don't allow" states an invariant but does not clearly indicate a
> consequence or other intent.  It could imply something as polite as "GC
> is disabled for this scope".
>
> For the C level stuff, maybe call it gc_forbidden_scope?

I like your proposed names!

> > + /* Do not wrap into do { } while (0). */
>
> Move the comment next to the #define.  Ideally, don't issue a command
> for the next programmer but instead explain why the code is the way is.

Yes, you're right. It's impolite at best. I'll try to avoid that in future.

Thanks again
Pip




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
Resent-From: Matt Armstrong <matt@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 11 Mar 2021 23:18:01 +0000
Resent-Message-ID: <handler.46988.B46988.16155046454621 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Pip Cet <pipcet@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.16155046454621
          (code B ref 46988); Thu, 11 Mar 2021 23:18:01 +0000
Received: (at 46988) by debbugs.gnu.org; 11 Mar 2021 23:17:25 +0000
Received: from localhost ([127.0.0.1]:55359 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lKUYW-0001CT-V0
	for submit <at> debbugs.gnu.org; Thu, 11 Mar 2021 18:17:25 -0500
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:47977)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <matt@HIDDEN>) id 1lKUYU-0001CE-I6
 for 46988 <at> debbugs.gnu.org; Thu, 11 Mar 2021 18:17:23 -0500
X-Originating-IP: 24.113.169.116
Received: from mdeb (24-113-169-116.wavecable.com [24.113.169.116])
 (Authenticated sender: matt@HIDDEN)
 by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id BB9A51C0004;
 Thu, 11 Mar 2021 23:17:14 +0000 (UTC)
Received: from matt by mdeb with local (Exim 4.94)
 (envelope-from <matt@HIDDEN>)
 id 1lKUYI-001E3J-St; Thu, 11 Mar 2021 15:17:10 -0800
From: Matt Armstrong <matt@HIDDEN>
In-Reply-To: <CAOqdjBeA9D4dTsc+crLPoz7b6EBEZ9dWbi5Thq0Zy861fkvRBg@HIDDEN>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87a6ra7ti3.fsf@HIDDEN>
 <CAOqdjBeA9D4dTsc+crLPoz7b6EBEZ9dWbi5Thq0Zy861fkvRBg@HIDDEN>
Date: Thu, 11 Mar 2021 15:17:10 -0800
Message-ID: <874khh7021.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
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: -1.7 (-)

Pip Cet <pipcet@HIDDEN> writes:

> On Wed, Mar 10, 2021 at 6:28 PM Matt Armstrong <matt@HIDDEN> wrote:
>> Why a linked list/stack implementation?  How about a global count var
>> that is incremented, decremented, and asserted zero?
>
> Emacs' specpdl implementation is independent of, and probably
> predates, the widespread availability of C exceptions. In fact, as it
> is written today, C exceptions will not work in Emacs C code (neither
> will C++ exceptions), because Emacs uses setjmp / longjmp instead, and
> unwinds the stack by itself. Since I was too lazy to fix it to use
> compatible unwinding routines on supported platforms, I simply created
> a linked list on the stack, unwinding it in unwind_to_catch.
>
>> You wrote that this impl depends on the stack direction, but I can't
>> figure out why.  If it is indeed the case, add a comment explaining
>> this?
>
> The unwind_to_catch code checks how far up the stack it has to go by
> comparing the stack pointer to the address of a local variable. You're
> absolutely right about the comment.

Ah, makes perfect sense.  Thanks for this and your other responses.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 31 Oct 2021 02:41:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 30 22:41:27 2021
Received: from localhost ([127.0.0.1]:58764 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mh0ml-0004V1-4h
	for submit <at> debbugs.gnu.org; Sat, 30 Oct 2021 22:41:27 -0400
Received: from mail-pj1-f45.google.com ([209.85.216.45]:52106)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1mh0mh-0004UX-IT
 for control <at> debbugs.gnu.org; Sat, 30 Oct 2021 22:41:23 -0400
Received: by mail-pj1-f45.google.com with SMTP id gt5so1608176pjb.1
 for <control <at> debbugs.gnu.org>; Sat, 30 Oct 2021 19:41:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:mime-version:date:message-id:subject:to;
 bh=o8CxUlSFvIPRxiszImW+UaswEJJWq2+FC0AS1nOw4n0=;
 b=O794pUXD27t0Sc4vLMB9srZA6hDXf0fubszDy3efEL4PnNv07c74DQ2fruYXyz9WG8
 wsrnx6RxKt7+YBtN2hnxxKWNQ1rZQKs5o0N87CRQP2soCYwnhpWwgsctpwb0wT1HTHTt
 untuCG3UjECcYpiOIwTwpcqYGBOwKwXFKbypyhw5DdB8JC/tyaOxwd0hW7p7Zy+eHHb2
 yXfifum8oHqdy43hjtwQC7/t9pI6R1Jttupw2AreU8rMV/qrqWqP82b53SpBb8QlL82o
 FOeZ0RDfJ49p6LdAJpS7IM3uBE0DLF8kSZV4fwSYql/pl4GJdwUOXvX83qUp7x7ZFiDE
 qi3g==
X-Gm-Message-State: AOAM533SKC0A82Hu0y82Oi+oY2yvSq2kAPd0iB0krNQOhVfXGUFFT9Sm
 jJKCgLuPaEtSSa9DDDiXGboJl6AX6Ip4T83ZmA4HJiZi
X-Google-Smtp-Source: ABdhPJyZuChFn+df6x5MOW9eh2QGMlkCkfjCXZMx68bPybuivHwJ6gx7ZbVFSnB5NoyIor3eZpLFBoZtHTPlW2DAtNI=
X-Received: by 2002:a17:90b:3b86:: with SMTP id
 pc6mr29053542pjb.143.1635648077998; 
 Sat, 30 Oct 2021 19:41:17 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 30 Oct 2021 19:41:17 -0700
From: Stefan Kangas <stefan@HIDDEN>
MIME-Version: 1.0
Date: Sat, 30 Oct 2021 19:41:17 -0700
Message-ID: <CADwFkm=bK_NvLAHQTfPi7_dc0TmPkCAswBcx65+L8K_s8c-Xeg@HIDDEN>
Subject: control message for bug #46988
To: control <at> debbugs.gnu.org
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: control
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.5 (/)

tags 46988 + patch
quit




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
Resent-From: Lars Ingebrigtsen <larsi@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Mon, 20 Jun 2022 01:42:01 +0000
Resent-Message-ID: <handler.46988.B46988.16556893181673 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: patch
To: Pip Cet <pipcet@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org, Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.16556893181673
          (code B ref 46988); Mon, 20 Jun 2022 01:42:01 +0000
Received: (at 46988) by debbugs.gnu.org; 20 Jun 2022 01:41:58 +0000
Received: from localhost ([127.0.0.1]:53590 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o36QQ-0000QG-0D
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2022 21:41:58 -0400
Received: from quimby.gnus.org ([95.216.78.240]:56720)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1o36QO-0000Pl-Bc
 for 46988 <at> debbugs.gnu.org; Sun, 19 Jun 2022 21:41:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:
 References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=JJjLbUyHi30oT3LPWlPJVHuDlDS55n5Pdxpwc5AzTCQ=; b=hJnVEUwj7+PMrEttOZQ97E7Swr
 pchBP2rWflnvYwNVeB0EekVXMRKIVWRtMAbSe+mPeLQgqhJSDUNfHmW4wWH8PTzjEo2ikaIyEI0zx
 SDnU8s0n58p6ZZl4MgDrxXYqccB80UKfIegrrf+q9q41OwpH9vugrZ7BDCcPY29QPm28=;
Received: from [84.212.220.105] (helo=xo)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1o36QB-0004eM-IR; Mon, 20 Jun 2022 03:41:46 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
Date: Mon, 20 Jun 2022 03:41:42 +0200
In-Reply-To: <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 (Pip Cet's message of "Sun, 7 Mar 2021 14:06:01 +0000")
Message-ID: <87zgi8p0vd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview: Pip Cet <pipcet@HIDDEN> writes: > Patch attached. It
 assumes
 the standard stack growth direction, and > that __builtin_frame_address (0)
 is available and works. Uses GCC's > __attribute__ ((cleanup (...))). > >
 My point here is that [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
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 (---)

Pip Cet <pipcet@HIDDEN> writes:

> Patch attached. It assumes the standard stack growth direction, and
> that __builtin_frame_address (0) is available and works. Uses GCC's
> __attribute__ ((cleanup (...))).
>
> My point here is that the technical implementation isn't the problem,
> the question is whether we're disciplined enough to run with checking
> enabled and react to bug reports about the fatal error being thrown.

I've respun the patch for the current trunk, and I wonder whether
anybody has any comments here (so I've added Stefan and Mattias to the
CCs).

I think if we add this, it should be enabled only if the build is
configured with --enable-checking.

diff --git a/src/alloc.c b/src/alloc.c
index 55e18ecd77..276267ef10 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -7019,6 +7019,7 @@ #define CHECK_ALLOCATED_AND_LIVE_SYMBOL()		((void) 0)
 void
 mark_object (Lisp_Object obj)
 {
+  DONT_ALLOW_GC ();
   ptrdiff_t sp = mark_stk.sp;
   mark_stack_push_value (obj);
   process_mark_stack (sp);
@@ -7921,3 +7922,5 @@ syms_of_alloc (void)
   enum defined_HAVE_PGTK defined_HAVE_PGTK;
 } const EXTERNALLY_VISIBLE gdb_make_enums_visible = {0};
 #endif	/* __GNUC__ */
+
+struct dont_allow_gc *global_dont_allow_gc;
diff --git a/src/bytecode.c b/src/bytecode.c
index fa068e1ec6..6d3b3fdb98 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -958,7 +958,8 @@ #define DEFINE(name, value) [name] = &&insn_ ## name,
 	  type = CONDITION_CASE;
 	pushhandler:
 	  {
-	    struct handler *c = push_handler (POP, type);
+	    struct handler *c = push_handler (POP, type,
+					      __builtin_frame_address (0));
 	    c->bytecode_dest = FETCH2;
 	    c->bytecode_top = top;
 
diff --git a/src/emacs-module.c b/src/emacs-module.c
index 1c392d65df..87d9fe070a 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -272,7 +272,7 @@ #define MODULE_HANDLE_NONLOCAL_EXIT(retval)                             \
   if (module_non_local_exit_check (env) != emacs_funcall_exit_return)	\
     return retval;							\
   struct handler *internal_handler =                                    \
-    push_handler_nosignal (Qt, CATCHER_ALL);                            \
+    push_handler_nosignal (Qt, CATCHER_ALL, __builtin_frame_address (0)); \
   if (!internal_handler)                                                \
     {									\
       module_out_of_memory (env);					\
diff --git a/src/eval.c b/src/eval.c
index 346dff8bdc..f04b814c0e 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -236,7 +236,7 @@ init_eval (void)
        which would otherwise leak every time we unwind back to top-level.   */
     handlerlist_sentinel = xzalloc (sizeof (struct handler));
     handlerlist = handlerlist_sentinel->nextfree = handlerlist_sentinel;
-    struct handler *c = push_handler (Qunbound, CATCHER);
+    struct handler *c = push_handler (Qunbound, CATCHER, __builtin_frame_address (0));
     eassert (c == handlerlist_sentinel);
     handlerlist_sentinel->nextfree = NULL;
     handlerlist_sentinel->next = NULL;
@@ -1200,7 +1200,7 @@ internal_catch (Lisp_Object tag,
 		Lisp_Object (*func) (Lisp_Object), Lisp_Object arg)
 {
   /* This structure is made part of the chain `catchlist'.  */
-  struct handler *c = push_handler (tag, CATCHER);
+  struct handler *c = push_handler (tag, CATCHER, __builtin_frame_address (0));
 
   /* Call FUNC.  */
   if (! sys_setjmp (c->jmp))
@@ -1274,6 +1274,9 @@ unwind_to_catch (struct handler *catch, enum nonlocal_exit type,
   lisp_eval_depth = catch->f_lisp_eval_depth;
   set_act_rec (current_thread, catch->act_rec);
 
+  void *sp = catch->sp;
+  while (global_dont_allow_gc && (void *)global_dont_allow_gc < sp)
+    global_dont_allow_gc = global_dont_allow_gc->prev;
   sys_longjmp (catch->jmp, 1);
 }
 
@@ -1283,6 +1286,7 @@ DEFUN ("throw", Fthrow, Sthrow, 2, 2, 0,
        attributes: noreturn)
   (register Lisp_Object tag, Lisp_Object value)
 {
+  DONT_ALLOW_GC ();
   struct handler *c;
 
   if (!NILP (tag))
@@ -1405,7 +1409,8 @@ internal_lisp_condition_case (Lisp_Object var, Lisp_Object bodyform,
       Lisp_Object condition = CONSP (clause) ? XCAR (clause) : Qnil;
       if (!CONSP (condition))
 	condition = list1 (condition);
-      struct handler *c = push_handler (condition, CONDITION_CASE);
+      struct handler *c = push_handler (condition, CONDITION_CASE,
+					__builtin_frame_address (0));
       if (sys_setjmp (c->jmp))
 	{
 	  Lisp_Object val = handlerlist->val;
@@ -1472,7 +1477,8 @@ internal_lisp_condition_case (Lisp_Object var, Lisp_Object bodyform,
 internal_condition_case (Lisp_Object (*bfun) (void), Lisp_Object handlers,
 			 Lisp_Object (*hfun) (Lisp_Object))
 {
-  struct handler *c = push_handler (handlers, CONDITION_CASE);
+  struct handler *c = push_handler (handlers, CONDITION_CASE,
+				    __builtin_frame_address (0));
   if (sys_setjmp (c->jmp))
     {
       Lisp_Object val = handlerlist->val;
@@ -1496,7 +1502,8 @@ internal_condition_case_1 (Lisp_Object (*bfun) (Lisp_Object), Lisp_Object arg,
 			   Lisp_Object handlers,
 			   Lisp_Object (*hfun) (Lisp_Object))
 {
-  struct handler *c = push_handler (handlers, CONDITION_CASE);
+  struct handler *c = push_handler (handlers, CONDITION_CASE,
+				    __builtin_frame_address (0));
   if (sys_setjmp (c->jmp))
     {
       Lisp_Object val = handlerlist->val;
@@ -1523,7 +1530,8 @@ internal_condition_case_2 (Lisp_Object (*bfun) (Lisp_Object, Lisp_Object),
 			   Lisp_Object handlers,
 			   Lisp_Object (*hfun) (Lisp_Object))
 {
-  struct handler *c = push_handler (handlers, CONDITION_CASE);
+  struct handler *c = push_handler (handlers, CONDITION_CASE,
+				    __builtin_frame_address (0));
   if (sys_setjmp (c->jmp))
     {
       Lisp_Object val = handlerlist->val;
@@ -1552,7 +1560,8 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
 						ptrdiff_t nargs,
 						Lisp_Object *args))
 {
-  struct handler *c = push_handler (handlers, CONDITION_CASE);
+  struct handler *c = push_handler (handlers, CONDITION_CASE,
+				    __builtin_frame_address (0));
   if (sys_setjmp (c->jmp))
     {
       Lisp_Object val = handlerlist->val;
@@ -1579,7 +1588,8 @@ internal_condition_case_n (Lisp_Object (*bfun) (ptrdiff_t, Lisp_Object *),
 internal_catch_all (Lisp_Object (*function) (void *), void *argument,
                     Lisp_Object (*handler) (enum nonlocal_exit, Lisp_Object))
 {
-  struct handler *c = push_handler_nosignal (Qt, CATCHER_ALL);
+  struct handler *c = push_handler_nosignal (Qt, CATCHER_ALL,
+					     __builtin_frame_address (0));
   if (c == NULL)
     return Qcatch_all_memory_full;
 
@@ -1601,16 +1611,18 @@ internal_catch_all (Lisp_Object (*function) (void *), void *argument,
 }
 
 struct handler *
-push_handler (Lisp_Object tag_ch_val, enum handlertype handlertype)
+push_handler (Lisp_Object tag_ch_val, enum handlertype handlertype,
+	      void *sp)
 {
-  struct handler *c = push_handler_nosignal (tag_ch_val, handlertype);
+  struct handler *c = push_handler_nosignal (tag_ch_val, handlertype, sp);
   if (!c)
     memory_full (sizeof *c);
   return c;
 }
 
 struct handler *
-push_handler_nosignal (Lisp_Object tag_ch_val, enum handlertype handlertype)
+push_handler_nosignal (Lisp_Object tag_ch_val, enum handlertype handlertype,
+		       void *sp)
 {
   struct handler *CACHEABLE c = handlerlist->nextfree;
   if (!c)
@@ -1635,6 +1647,7 @@ push_handler_nosignal (Lisp_Object tag_ch_val, enum handlertype handlertype)
 #ifdef HAVE_X_WINDOWS
   c->x_error_handler_depth = x_error_message_count;
 #endif
+  c->sp = sp;
   handlerlist = c;
   return c;
 }
diff --git a/src/lisp.h b/src/lisp.h
index 05b0754ff6..f15abb4519 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3649,6 +3649,7 @@ record_in_backtrace (Lisp_Object function, Lisp_Object *args, ptrdiff_t nargs)
 #ifdef HAVE_X_WINDOWS
   int x_error_handler_depth;
 #endif
+  void *sp;
 };
 
 extern Lisp_Object memory_signal_data;
@@ -4560,9 +4561,10 @@ xsignal (Lisp_Object error_symbol, Lisp_Object data)
     (Lisp_Object (*) (ptrdiff_t, Lisp_Object *), ptrdiff_t, Lisp_Object *,
      Lisp_Object, Lisp_Object (*) (Lisp_Object, ptrdiff_t, Lisp_Object *));
 extern Lisp_Object internal_catch_all (Lisp_Object (*) (void *), void *, Lisp_Object (*) (enum nonlocal_exit, Lisp_Object));
-extern struct handler *push_handler (Lisp_Object, enum handlertype)
+extern struct handler *push_handler (Lisp_Object, enum handlertype, void *)
   ATTRIBUTE_RETURNS_NONNULL;
-extern struct handler *push_handler_nosignal (Lisp_Object, enum handlertype);
+extern struct handler *push_handler_nosignal (Lisp_Object, enum handlertype,
+					      void *);
 extern void specbind (Lisp_Object, Lisp_Object);
 extern void record_unwind_protect (void (*) (Lisp_Object), Lisp_Object);
 extern void record_unwind_protect_array (Lisp_Object *, ptrdiff_t);
@@ -5541,9 +5543,36 @@ #define FOR_EACH_ALIST_VALUE(head_var, list_var, value_var)		\
 
 /* Check whether it's time for GC, and run it if so.  */
 
+/* Do not wrap into do { } while (0). */
+
+struct dont_allow_gc;
+struct dont_allow_gc
+{
+  struct dont_allow_gc *prev;
+};
+
+extern struct dont_allow_gc *global_dont_allow_gc;
+
+INLINE void
+dont_allow_gc_init (struct dont_allow_gc *dag)
+{
+  dag->prev = global_dont_allow_gc;
+  global_dont_allow_gc = dag;
+}
+
+INLINE void
+dont_allow_gc_destroy (struct dont_allow_gc *dag)
+{
+  global_dont_allow_gc = dag->prev;
+}
+
+#define DONT_ALLOW_GC() struct dont_allow_gc __attribute__ ((cleanup (dont_allow_gc_destroy))) dont_allow_gc; dont_allow_gc_init (&dont_allow_gc)
+
 INLINE void
 maybe_gc (void)
 {
+  if (global_dont_allow_gc)
+    fatal ("GC disallowed");
   if (consing_until_gc < 0)
     maybe_garbage_collect ();
 }
diff --git a/src/thread.c b/src/thread.c
index 626d14aad0..e172785a64 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -779,7 +779,7 @@ run_thread (void *state)
      which would otherwise leak every time we unwind back to top-level.   */
   handlerlist_sentinel = xzalloc (sizeof (struct handler));
   handlerlist = handlerlist_sentinel->nextfree = handlerlist_sentinel;
-  struct handler *c = push_handler (Qunbound, CATCHER);
+  struct handler *c = push_handler (Qunbound, CATCHER, __builtin_frame_address (0));
   eassert (c == handlerlist_sentinel);
   handlerlist_sentinel->nextfree = NULL;
   handlerlist_sentinel->next = NULL;


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 20 Jun 2022 01:42:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 19 21:42:10 2022
Received: from localhost ([127.0.0.1]:53594 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o36Qc-0000Rj-Il
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2022 21:42:10 -0400
Received: from quimby.gnus.org ([95.216.78.240]:56736)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1o36Qa-0000RW-CC
 for control <at> debbugs.gnu.org; Sun, 19 Jun 2022 21:42:08 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc:
 MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=DMQexMl+lpgJrL7EJ4/RRdYZNQMGJmOK4jPnATQ30zM=; b=rRmkSgT9K6mzfAfsGc1Fox8ddA
 KWS4JzI+98QIv6914K0YNnKk224Hm1dvDry7u5BGSnNgLujSOVMADf3YrKyZhI4AB4j7ncBZ7guAh
 55pZKsMNqOjpuAIQ7eAqWBAhNtRNpUawEGAw1nv4ev9kQPiKY7lJ5zbGqkQ5FYKDXsus=;
Received: from [84.212.220.105] (helo=xo)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>) id 1o36QS-0004eZ-Hw
 for control <at> debbugs.gnu.org; Mon, 20 Jun 2022 03:42:02 +0200
Date: Mon, 20 Jun 2022 03:41:59 +0200
Message-Id: <87y1xsp0uw.fsf@HIDDEN>
To: control <at> debbugs.gnu.org
From: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: control message for bug #46988
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  tags 46988 + moreinfo quit 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: control
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 (---)

tags 46988 + moreinfo
quit





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Mon, 20 Jun 2022 11:49:01 +0000
Resent-Message-ID: <handler.46988.B46988.165572569432052 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: moreinfo patch
To: Lars Ingebrigtsen <larsi@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org, mattiase@HIDDEN, monnier@HIDDEN, pipcet@HIDDEN
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.165572569432052
          (code B ref 46988); Mon, 20 Jun 2022 11:49:01 +0000
Received: (at 46988) by debbugs.gnu.org; 20 Jun 2022 11:48:14 +0000
Received: from localhost ([127.0.0.1]:54596 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o3Ft7-0008Ku-NE
	for submit <at> debbugs.gnu.org; Mon, 20 Jun 2022 07:48:13 -0400
Received: from eggs.gnu.org ([209.51.188.92]:33216)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1o3Ft4-0008KQ-70
 for 46988 <at> debbugs.gnu.org; Mon, 20 Jun 2022 07:48:12 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:46554)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1o3Fsy-0000ko-EN; Mon, 20 Jun 2022 07:48:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=qi+ym1X3aRYNrJCuxLc3CTDilhC/OOxt4HjwuLn2wt0=; b=HUsKcx8nSqsMwKsiDTae
 4WCI5hWp2mwcLt4MpvcKfrhFBKPA1DW055MZF7yZjNCIrCpErx8NdOEjM7ZoLrZUbVm4TKyBUIOAP
 ncJOPjuc6Xqlo0ez9SD/EC+yBrhSotlzhqRK0lL45BaSl5iFfJevEovSHiEXQFvkBbJcCtVx6LwYh
 vW673uN3GkQp2hTAV7fjBkwUvb1SpBbiulWFHUzy0+oCwJelUxwOZrYVirSXpPchBCzzLb026sIon
 uu0SwhgKgKzRPbwYau6O9pFV4YGAf/b3JNmZOBs1Mw3oTYgSsc9Woo8i0vBVncB6KtXLCbe75Xyop
 aqj+P4vs1nTbRQ==;
Received: from [87.69.77.57] (port=1530 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1o3Fsw-0003Af-5b; Mon, 20 Jun 2022 07:48:04 -0400
Date: Mon, 20 Jun 2022 14:47:48 +0300
Message-Id: <83a6a7mu8r.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87zgi8p0vd.fsf@HIDDEN> (message from Lars Ingebrigtsen on Mon, 
 20 Jun 2022 03:41:42 +0200)
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87zgi8p0vd.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
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 (---)

> Cc: 46988 <at> debbugs.gnu.org,
>  Mattias EngdegÄrd <mattiase@HIDDEN>,
>  Stefan Monnier <monnier@HIDDEN>
> From: Lars Ingebrigtsen <larsi@HIDDEN>
> Date: Mon, 20 Jun 2022 03:41:42 +0200
> 
> Pip Cet <pipcet@HIDDEN> writes:
> 
> > Patch attached. It assumes the standard stack growth direction, and
> > that __builtin_frame_address (0) is available and works. Uses GCC's
> > __attribute__ ((cleanup (...))).
> >
> > My point here is that the technical implementation isn't the problem,
> > the question is whether we're disciplined enough to run with checking
> > enabled and react to bug reports about the fatal error being thrown.
> 
> I've respun the patch for the current trunk, and I wonder whether
> anybody has any comments here (so I've added Stefan and Mattias to the
> CCs).
> 
> I think if we add this, it should be enabled only if the build is
> configured with --enable-checking.

Yes, I agree.

In addition, AFAIU this uses some GCC-specific stuff without providing
for other compilers that don't support the same literal features.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Thu, 23 Jun 2022 15:58:01 +0000
Resent-Message-ID: <handler.46988.B46988.165599985619625 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: moreinfo patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org, Mattias <mattiase@HIDDEN>, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.165599985619625
          (code B ref 46988); Thu, 23 Jun 2022 15:58:01 +0000
Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 15:57:36 +0000
Received: from localhost ([127.0.0.1]:39637 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o4PD5-00056S-WF
	for submit <at> debbugs.gnu.org; Thu, 23 Jun 2022 11:57:36 -0400
Received: from mail-pj1-f43.google.com ([209.85.216.43]:51196)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <pipcet@HIDDEN>) id 1o4PD4-00056F-DG
 for 46988 <at> debbugs.gnu.org; Thu, 23 Jun 2022 11:57:35 -0400
Received: by mail-pj1-f43.google.com with SMTP id go6so39874pjb.0
 for <46988 <at> debbugs.gnu.org>; Thu, 23 Jun 2022 08:57:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=W/U6AgkzRMQFzBHiMu+ZqwO/Sg+ZegbDUOxvyt5Kfuk=;
 b=Tppr9ERS7Fn2xvcmREqOOLtrPv4vG00RngIFMWwPRoDcuc7EzxilsajrPLm1VzaPTw
 RT3eWOlfnWIBCLQJEmNI7lpcdpm1PjkH5quXqlwCgmHx4142feheVfoIv2fBlzIsnev1
 Vjzpwka5UZRBgNVEZD5eIcw9m4bq9N99uIBrBuKvzdhXr5ljNHbm/EvW2LncZ44QaFua
 uUzEeuv+Z1W1r7f9FjEQdEfMM21grcG7N0JoMPiC0bHkhuXUB/k+qKYAkJrYWNVlnO+8
 fKZfH7mPMk8V/u3nWYUZLqCruNYi7O16FcC8aaMjNPJpeo37eC8tM+YgxhRyvfhnyLMt
 xRXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=W/U6AgkzRMQFzBHiMu+ZqwO/Sg+ZegbDUOxvyt5Kfuk=;
 b=duiGRUafRoy5D2QZFjOFyxZp5YhDqqz7G7BR/QCzCXYQ8eKJn52rpkeIwNf8D/KvSc
 fws3/vqD4FWEvbZMmgeF8m8fznG45VKDAgBaIza9xP3k01AlYhA7f2sqh56xAjffsYh5
 Wispz/YT9/JDPiqWINZfHbFpMjTPol7RzvsSjZaHOnDbd6n+p+GaE6xB+eXwJte5l1jU
 CVwnkgp2svUWWMfqfPYoJAVgHmEAJXoyrmzgbCTUrywkscwZ0ed6HfNYuCDCsVpnEVQa
 W4lGofLzRlJQKosntr+u3Olz8ARfeK5mC6KsVzmiBtI0g/EwLAEtJ8UTgKJTK58/YCw8
 e+lw==
X-Gm-Message-State: AJIora87mnWob/LQwn3yQDLU8FsMGWQ+T4KCUPFfIKp1KOb6jaSCNmhO
 c2t2cuLD3p6dMgfYvYctUDbRXvI93maV2Cd+Lt8=
X-Google-Smtp-Source: AGRyM1t1/ToFTEfPRcZ6H2dLMiK4CwBO7Q42sYiBb9BN8eZPL7dcLWWBYkBQ4D7qL+xlaZ7pmtf2d4Bb2cD6OnBAr78=
X-Received: by 2002:a17:903:2306:b0:16a:2fa4:9dad with SMTP id
 d6-20020a170903230600b0016a2fa49dadmr17450481plh.57.1655999848515; Thu, 23
 Jun 2022 08:57:28 -0700 (PDT)
MIME-Version: 1.0
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87zgi8p0vd.fsf@HIDDEN> <83a6a7mu8r.fsf@HIDDEN>
In-Reply-To: <83a6a7mu8r.fsf@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Date: Thu, 23 Jun 2022 15:56:49 +0000
Message-ID: <CAOqdjBe+5fB_H85o1=6-k172YeUL_t9kU5rtSSbV6fpVKKfC3w@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: -0.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: -1.0 (-)

On Mon, Jun 20, 2022 at 11:48 AM Eli Zaretskii <eliz@HIDDEN> wrote:
> > I think if we add this, it should be enabled only if the build is
> > configured with --enable-checking.
>
> Yes, I agree.

So do I.

> In addition, AFAIU this uses some GCC-specific stuff without providing
> for other compilers that don't support the same literal features.

I'm not sure to what extent clang emulates those same features, but
it's certainly not standard C.

Pip




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Thu, 23 Jun 2022 16:10:01 +0000
Resent-Message-ID: <handler.46988.B46988.165600055320919 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: moreinfo patch
To: Pip Cet <pipcet@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org, mattiase@HIDDEN, larsi@HIDDEN, monnier@HIDDEN
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.165600055320919
          (code B ref 46988); Thu, 23 Jun 2022 16:10:01 +0000
Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 16:09:13 +0000
Received: from localhost ([127.0.0.1]:39652 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o4POK-0005RK-M5
	for submit <at> debbugs.gnu.org; Thu, 23 Jun 2022 12:09:12 -0400
Received: from eggs.gnu.org ([209.51.188.92]:36488)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1o4POI-0005R7-Oy
 for 46988 <at> debbugs.gnu.org; Thu, 23 Jun 2022 12:09:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:45480)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1o4POC-0007Ou-LT; Thu, 23 Jun 2022 12:09: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=Unn0o0iObu5ridS018cwdE/bKXd2a4KAZVe90X5ga6I=; b=O7YAAyOPgEgE
 kTYZpvlfL/F1GExNcglNTJ+QNi/MJRhpsIjsl0YSlJBuzmHF33O8GhxPlRxaLrDubw360QBV63CNt
 KJg5sLFcqXZZjp3Ep3ze3+E2WKOXk5NQ2AcE2TCrR1f9+YveveU0erhTiYPqqJVGvJCiIV6XNM4xo
 IgaWr3+O7PlqJj/J7Ofy+oojxDy0VDHAYcBeUAPENRCjZtbgXyhlg05RUVPzQ/F1DzUt2ESO4uMqm
 g+GJQBfEGiFVzuZKmOV8QH22+p1sqsjDuz7e3s7lbDeZ8nVydT/h6lA5CYc6/KpcPOBK5chpCqxJo
 NBuihqWxLTcmTLl7rbuurg==;
Received: from [87.69.77.57] (port=3978 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1o4POB-0002jW-Fj; Thu, 23 Jun 2022 12:09:04 -0400
Date: Thu, 23 Jun 2022 19:08:55 +0300
Message-Id: <83a6a3e50o.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <CAOqdjBe+5fB_H85o1=6-k172YeUL_t9kU5rtSSbV6fpVKKfC3w@HIDDEN>
 (message from Pip Cet on Thu, 23 Jun 2022 15:56:49 +0000)
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87zgi8p0vd.fsf@HIDDEN> <83a6a7mu8r.fsf@HIDDEN>
 <CAOqdjBe+5fB_H85o1=6-k172YeUL_t9kU5rtSSbV6fpVKKfC3w@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 (---)

> From: Pip Cet <pipcet@HIDDEN>
> Date: Thu, 23 Jun 2022 15:56:49 +0000
> Cc: Lars Ingebrigtsen <larsi@HIDDEN>, 46988 <at> debbugs.gnu.org, Mattias <mattiase@HIDDEN>, 
> 	Stefan Monnier <monnier@HIDDEN>
> 
> > In addition, AFAIU this uses some GCC-specific stuff without providing
> > for other compilers that don't support the same literal features.
> 
> I'm not sure to what extent clang emulates those same features, but
> it's certainly not standard C.

Clang at least attempts to be GCC-compliant.  But there are other C
compilers we want to support which don't do even that.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 23 Jun 2022 16:21:02 +0000
Resent-Message-ID: <handler.46988.B46988.165600122130313 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: moreinfo patch
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org, larsi@HIDDEN, monnier@HIDDEN, Pip Cet <pipcet@HIDDEN>
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.165600122130313
          (code B ref 46988); Thu, 23 Jun 2022 16:21:02 +0000
Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 16:20:21 +0000
Received: from localhost ([127.0.0.1]:39677 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o4PZ7-0007sq-Ak
	for submit <at> debbugs.gnu.org; Thu, 23 Jun 2022 12:20:21 -0400
Received: from mail1451c50.megamailservers.eu ([91.136.14.51]:48556
 helo=mail266c50.megamailservers.eu)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mattiase@HIDDEN>) id 1o4PZ5-0007sY-2N
 for 46988 <at> debbugs.gnu.org; Thu, 23 Jun 2022 12:20:20 -0400
X-Authenticated-User: mattiase@HIDDEN
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu;
 s=maildub; t=1656001212;
 bh=6uSOgZLyZbp3hAYwbHYJ+1HdWCbtf7ZKZlP9PW8yD9s=;
 h=Subject:From:In-Reply-To:Date:Cc:References:To:From;
 b=E2vEgW1cCd8e/JVhXKlNAZptNr37Xv83mT5/VKbWG03taL9VKXu72h2NS3LrwWEGc
 X8Di2Pt/wTMcA+f8Wtq3MoXZDIfqjqV8sb7zHiBqAwKzqN5+anvJy5PZ3yc9z2BBmb
 MCBV/0A+Hf9VJ0D3s+VbKn8/0Y6/4B18TGXmUP2Y=
Feedback-ID: mattiase@HIDDEN
Received: from smtpclient.apple (c188-150-171-71.bredband.tele2.se
 [188.150.171.71]) (authenticated bits=0)
 by mail266c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id 25NGKA0H078708; 
 Thu, 23 Jun 2022 16:20:11 +0000
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\))
From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
In-Reply-To: <83a6a3e50o.fsf@HIDDEN>
Date: Thu, 23 Jun 2022 18:20:09 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <5AE164C5-3EA7-44CC-8328-448EEA1C50F2@HIDDEN>
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87zgi8p0vd.fsf@HIDDEN> <83a6a7mu8r.fsf@HIDDEN>
 <CAOqdjBe+5fB_H85o1=6-k172YeUL_t9kU5rtSSbV6fpVKKfC3w@HIDDEN>
 <83a6a3e50o.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3654.120.0.1.13)
X-CTCH-RefID: str=0001.0A782F1B.62B492BC.004A, ss=1, re=0.000, recu=0.000,
 reip=0.000, cl=1, cld=1, fgs=0
X-CTCH-VOD: Unknown
X-CTCH-Spam: Unknown
X-CTCH-Score: 0.000
X-CTCH-Rules: 
X-CTCH-Flags: 0
X-CTCH-ScoreCust: 0.000
X-Origin-Country: SE
X-Spam-Score: 1.3 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  23 juni 2022 kl. 18.08 skrev Eli Zaretskii <eliz@HIDDEN>:
 > Clang at least attempts to be GCC-compliant. But there are other C >
 compilers
 we want to support which don't do even that. Quite true. I don't think we
 should bother supporting them (at least not right away); just disable the
 feature for them. 
 Content analysis details:   (1.3 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 -0.0 T_SCC_BODY_TEXT_LINE   No description available.
 0.3 KHOP_HELO_FCRDNS       Relay HELO differs from its IP's reverse DNS
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 (/)

23 juni 2022 kl. 18.08 skrev Eli Zaretskii <eliz@HIDDEN>:

> Clang at least attempts to be GCC-compliant.  But there are other C
> compilers we want to support which don't do even that.

Quite true. I don't think we should bother supporting them (at least not =
right away); just disable the feature for them.

The feature looks sound in principle and probably useful. Matt Armstrong =
had some good comments on the surface =
(https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D46988#20) to make it =
more readable.

Maybe it would be useful to generalise it to other dynamic checks, such =
as 'no consing', 'no lisp', 'no bytecode', 'no regexp', 'no signalling'?





Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing
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: Thu, 23 Jun 2022 16:36:01 +0000
Resent-Message-ID: <handler.46988.B46988.165600214031811 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 46988
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: moreinfo patch
To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>
Cc: 46988 <at> debbugs.gnu.org, larsi@HIDDEN, monnier@HIDDEN, pipcet@HIDDEN
Received: via spool by 46988-submit <at> debbugs.gnu.org id=B46988.165600214031811
          (code B ref 46988); Thu, 23 Jun 2022 16:36:01 +0000
Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 16:35:40 +0000
Received: from localhost ([127.0.0.1]:39690 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o4Pnv-0008H0-0C
	for submit <at> debbugs.gnu.org; Thu, 23 Jun 2022 12:35:39 -0400
Received: from eggs.gnu.org ([209.51.188.92]:43220)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1o4Pnq-0008Gg-DE
 for 46988 <at> debbugs.gnu.org; Thu, 23 Jun 2022 12:35:38 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:46192)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1o4Pnk-0003ME-38; Thu, 23 Jun 2022 12:35:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=8+K/CG7NNTLFnVlz41YEQ3/C/v6WymA5XO/9ETPAV28=; b=H9FirfwYsJ2k3p7s+xp9
 QP50IVAT4Xu3iAEh0RcMtehilWKM1BarP+p5zPCIjU8Lm3Y4F4vMBf7j5faDfPhulIcqa3tR8wSWQ
 4SPDBYIjNgsvVm7HK6GNJ25OQFAJqSXuMxg25TsY2rqXhMcmbGXSzVHFwY4L0Z5N+C/xwp0npGRqC
 k510lcTcZNTtIDtDMQSlZjkkPTaaB0RQP7Kpo39jPzhQx4Np+ZVOjHcUlzHVezgBof9Jxl0mL132n
 4gVEyTu6gPMMknmjtLuH+7b0XnP3/DbdGqkTYSAOGosy+f1+kVkbk4J8fSPNIfMgara6tF1Qq9U1k
 djLpwj+w1epl6g==;
Received: from [87.69.77.57] (port=1622 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1o4Pnj-0001eX-6N; Thu, 23 Jun 2022 12:35:27 -0400
Date: Thu, 23 Jun 2022 19:35:19 +0300
Message-Id: <831qvfe3so.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <5AE164C5-3EA7-44CC-8328-448EEA1C50F2@HIDDEN> (message from
 Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= on Thu, 23 Jun 2022 18:20:09 +0200)
References: <CAOqdjBfU7p2=CQPGSwbvOz7u8YkCvA=NOwWXyPStoYN0bREegA@HIDDEN>
 <CAOqdjBc4_rzuCZzM6ZTrc7FeanYDj=bVByuxs7tfub=AdeaDGw@HIDDEN>
 <87zgi8p0vd.fsf@HIDDEN> <83a6a7mu8r.fsf@HIDDEN>
 <CAOqdjBe+5fB_H85o1=6-k172YeUL_t9kU5rtSSbV6fpVKKfC3w@HIDDEN>
 <83a6a3e50o.fsf@HIDDEN> <5AE164C5-3EA7-44CC-8328-448EEA1C50F2@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
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 (---)

> From: Mattias EngdegÄrd <mattiase@HIDDEN>
> Date: Thu, 23 Jun 2022 18:20:09 +0200
> Cc: Pip Cet <pipcet@HIDDEN>, larsi@HIDDEN, 46988 <at> debbugs.gnu.org,
>         monnier@HIDDEN
> 
> 23 juni 2022 kl. 18.08 skrev Eli Zaretskii <eliz@HIDDEN>:
> 
> > Clang at least attempts to be GCC-compliant.  But there are other C
> > compilers we want to support which don't do even that.
> 
> Quite true. I don't think we should bother supporting them (at least not right away); just disable the feature for them.

Yes, that's what I meant: we shouldn't break compilation with those,
but we don't have to do more.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 23 Jul 2022 08:42:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jul 23 04:42:36 2022
Received: from localhost ([127.0.0.1]:43341 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oFAiZ-0007qS-SJ
	for submit <at> debbugs.gnu.org; Sat, 23 Jul 2022 04:42:36 -0400
Received: from quimby.gnus.org ([95.216.78.240]:48988)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>) id 1oFAiX-0007qA-Rf
 for control <at> debbugs.gnu.org; Sat, 23 Jul 2022 04:42:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc:
 MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=gJy1FN6t4SPSu7IyWhOdLkZbenUnPResYImnVK1vll0=; b=fJRJ1leUq+0cEpy9M7T2UasyCd
 yCq+SLcGG7yjap549UzeHz552GdGzJtrYAoCSungjiNKCwsbn7hFqFfflpu8rfS0T4jrQ5JIiXhh4
 YCBkygUoomFwYchvy0mMjOMfXqCEz5P6i+CIVNcH9veXtdTRc2k/FVTu7TBRgj1Nd/TI=;
Received: from [84.212.220.105] (helo=joga)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>) id 1oFAiQ-0000Xi-59
 for control <at> debbugs.gnu.org; Sat, 23 Jul 2022 10:42:28 +0200
Date: Sat, 23 Jul 2022 10:42:25 +0200
Message-Id: <8735esz0cu.fsf@HIDDEN>
To: control <at> debbugs.gnu.org
From: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: control message for bug #46988
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  tags 46988 - moreinfo quit 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: control
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 (---)

tags 46988 - moreinfo
quit






Last modified: Sat, 23 Jul 2022 08:45:02 UTC

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