From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#33414: 27.0.50; inhibit-changing-match-data can be t in syntax-propertize functions, breaking backtrace and looking-at Date: Thu, 12 Aug 2021 15:11:25 +0200 Message-ID: <87r1eylsea.fsf@gnus.org> References: <83lg5ru88i.fsf@gnu.org> <83k1lbu5xj.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16131"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Pip Cet , 33414@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Aug 12 15:12:10 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mEAVG-0003zT-1A for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 12 Aug 2021 15:12:10 +0200 Original-Received: from localhost ([::1]:53704 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mEAVE-0005Ym-VM for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 12 Aug 2021 09:12:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35434) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mEAV8-0005WU-1c for bug-gnu-emacs@gnu.org; Thu, 12 Aug 2021 09:12:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54473) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mEAV7-0000ou-Qu for bug-gnu-emacs@gnu.org; Thu, 12 Aug 2021 09:12:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mEAV7-0000mq-JA for bug-gnu-emacs@gnu.org; Thu, 12 Aug 2021 09:12:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 12 Aug 2021 13:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33414 X-GNU-PR-Package: emacs Original-Received: via spool by 33414-submit@debbugs.gnu.org id=B33414.16287739012997 (code B ref 33414); Thu, 12 Aug 2021 13:12:01 +0000 Original-Received: (at 33414) by debbugs.gnu.org; 12 Aug 2021 13:11:41 +0000 Original-Received: from localhost ([127.0.0.1]:37786 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEAUm-0000mG-Nn for submit@debbugs.gnu.org; Thu, 12 Aug 2021 09:11:40 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:40712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEAUk-0000m1-GA for 33414@debbugs.gnu.org; Thu, 12 Aug 2021 09:11:39 -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=nmsHCEJV5X0OjIEYvcK6XQmUbA4DsoMO5pzrpcHgDSM=; b=qlPvr1Brd07oDn5e5OFBBsrmER oDg4PDfdn7hIDxj2XeTQFA6WzUY5e6m1AKCK99V0TMkF9h4dNIGIrVybjIeRRGDDShLhYKss4/R7M oFfrTFNoKD3EIrMRAUtwlfs9hPzT8S5Mpj57zIQxG1ZLUSXlMWyMFsr34AK/C+E6hKao=; Original-Received: from [84.212.220.105] (helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mEAUZ-00062g-NI; Thu, 12 Aug 2021 15:11:31 +0200 In-Reply-To: <83k1lbu5xj.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 17 Nov 2018 16:36:40 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:211669 Archived-At: Eli Zaretskii writes: >> If I'm testing correctly, >> >> (let ((inhibit-changing-match-data t)) (debug)) >> >> fails on both branches > > You are right, not sure what I did wrong when trying it a few moments > ago. It seems to fail reliably the first time executed, but after that it only sometimes fails. Below is the backtrace for the reliable breakage. But... I'm not sure this is supposed to work? I mean, this is an internal variable only supposed to be used in very limited circumstances, and aren't ... particularly well defined. But I see this was added in 2016: 7fb75680b38 (Noam Postavsky 2016-08-05 338) /* If we are debugging an error while `inhibit-changing-match-data' 7fb75680b38 (Noam Postavsky 2016-08-05 339) is bound to non-nil (e.g., within a call to `string-match-p'), 7fb75680b38 (Noam Postavsky 2016-08-05 340) then make sure debugger code can still use match data. */ 7fb75680b38 (Noam Postavsky 2016-08-05 341) specbind (Qinhibit_changing_match_data, Qnil); To work around the problem. `inhibit-changing-match-data' just seems like a bad interface to me. Wouldn't it be better to change `looking-at' and `string-match' to allow taking a parameter to not change the match data? (And then just use that in `looking-at-p'/`string-match-p'.) That would avoid all these weirdnesses... Any opinions? Debugger entered--Lisp error: (wrong-type-argument stringp nil) regexp-quote(nil) find-auto-coding("/home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-loa..." 48494) set-auto-coding("/home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-loa..." 48494) insert-file-contents("/home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-loa...") load-with-code-conversion("/home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-loa..." "/home/larsi/src/emacs/trunk/lisp/emacs-lisp/cl-loa..." t t) load("cl-loaddefs" noerror quiet) byte-code(... [provide cl-lib load "cl-loaddefs" noerror quiet require cl-macs cl-seq] 4) require(cl-lib) (debug) (let ((inhibit-changing-match-data t)) (debug)) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no