Stefan Kangas <stefankangas@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Lars Ingebrigtsen <larsi@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 16:35:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 23 12:35:40 2022 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> To: Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@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) Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org, larsi@HIDDEN, monnier@HIDDEN, pipcet@HIDDEN 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.
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 16:20:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 23 12:20:21 2022 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\)) Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing From: =?utf-8?Q?Mattias_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> To: Eli Zaretskii <eliz@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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org, larsi@HIDDEN, monnier@HIDDEN, Pip Cet <pipcet@HIDDEN> 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'?
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 16:09:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 23 12:09:12 2022 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> To: Pip Cet <pipcet@HIDDEN> In-Reply-To: <CAOqdjBe+5fB_H85o1=6-k172YeUL_t9kU5rtSSbV6fpVKKfC3w@HIDDEN> (message from Pip Cet on Thu, 23 Jun 2022 15:56:49 +0000) Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org, mattiase@HIDDEN, larsi@HIDDEN, monnier@HIDDEN 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.
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 23 Jun 2022 15:57:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 23 11:57:36 2022 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> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing To: Eli Zaretskii <eliz@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org, Mattias <mattiase@HIDDEN>, Lars Ingebrigtsen <larsi@HIDDEN>, Stefan Monnier <monnier@HIDDEN> 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
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 20 Jun 2022 11:48:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 20 07:48:13 2022 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> To: Lars Ingebrigtsen <larsi@HIDDEN> In-Reply-To: <87zgi8p0vd.fsf@HIDDEN> (message from Lars Ingebrigtsen on Mon, 20 Jun 2022 03:41:42 +0200) Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org, mattiase@HIDDEN, monnier@HIDDEN, pipcet@HIDDEN 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.
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Lars Ingebrigtsen <larsi@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 20 Jun 2022 01:41:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 19 21:41:58 2022 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> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org, Mattias =?utf-8?Q?Engdeg=C3=A5rd?= <mattiase@HIDDEN>, Stefan Monnier <monnier@HIDDEN> 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
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Stefan Kangas <stefan@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 11 Mar 2021 23:17:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 11 18:17:25 2021 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> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org 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.
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 10 Mar 2021 19:10:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 10 14:10:12 2021 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> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing To: Matt Armstrong <matt@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org 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
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 10 Mar 2021 18:29:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 10 13:29:05 2021 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> To: Pip Cet <pipcet@HIDDEN>, 46988 <at> debbugs.gnu.org Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 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.
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 9 Mar 2021 14:05:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 09 09:05:40 2021 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> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org 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
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 8 Mar 2021 19:57:51 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 08 14:57:51 2021 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> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing To: Lars Ingebrigtsen <larsi@HIDDEN> Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org 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
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 8 Mar 2021 19:42:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Mar 08 14:42:57 2021 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> To: Pip Cet <pipcet@HIDDEN> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing 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-Debbugs-Envelope-To: 46988 Cc: 46988 <at> debbugs.gnu.org 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
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at 46988) by debbugs.gnu.org; 7 Mar 2021 14:06:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 07 09:06:45 2021 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> Subject: Re: bug#46988: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing To: 46988 <at> debbugs.gnu.org Content-Type: multipart/mixed; boundary="000000000000604f9905bcf2d3ca" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 46988 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--
bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 7 Mar 2021 13:47:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 07 08:47:51 2021 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> Subject: 28.0.50; Documenting and verifying assumptions about C code not calling quit or GCing To: bug-gnu-emacs@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-Debbugs-Envelope-To: submit 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.
Pip Cet <pipcet@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#46988
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.