From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: emacs-29 56cd810b9d1: =?utf-8?Q?Don=E2=80=99t?= signal warning when loading go-ts-mode.el without grammar Date: Fri, 03 Mar 2023 09:41:36 +0200 Message-ID: <83edq6cmdr.fsf@gnu.org> References: <83r0u7eh2f.fsf@gnu.org> <6B49E4E7-8FB6-47A6-A380-538BEE2DE1E1@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="21734"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Mar 03 08:42:41 2023 Return-path: Envelope-to: ged-emacs-devel@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 1pY03s-0005YB-OU for ged-emacs-devel@m.gmane-mx.org; Fri, 03 Mar 2023 08:42:40 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pY039-000076-ME; Fri, 03 Mar 2023 02:41:55 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pY038-00006r-6p for emacs-devel@gnu.org; Fri, 03 Mar 2023 02:41:54 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pY037-0003cJ-JS; Fri, 03 Mar 2023 02:41:53 -0500 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=mDTQSUV132FoYsEYzKMi59fkF0RWm/+6oJ8zuPp7vbo=; b=KaAadq2rXYMfU9KewZFX 3zRV0AkRgEFSZwiCa+c628LvHwTo5mESKYRIYK+ZgHugLapHLf8+lu5cZfv3k54g67UWT4GtYZBM7 fx23yGr3aTpChTis+rmegnkLEGaZIFBH89ZHLkuP3O2IwdlMf0utTKutSQP1hAejEkD/i2qrA9J6h 4UmcDtBqCJ5VTNlAvEdcVT2oZE8/TeFl/r7e+3QbC2dXVc+ebJmho98JPbAiEXsb5QWCtEjw+EMUC g4mWLl6kiprXfs+7QRtPeDpjXQjlzCqdamflkwcohTNhRvwg6fMDSV+8jq76mtaFxaXhDxERw4ksr qX0HP7es8MNM9w==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pY036-0001DO-4a; Fri, 03 Mar 2023 02:41:52 -0500 In-Reply-To: <6B49E4E7-8FB6-47A6-A380-538BEE2DE1E1@gmail.com> (message from Yuan Fu on Thu, 2 Mar 2023 19:05:27 -0800) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:303911 Archived-At: > From: Yuan Fu > Date: Thu, 2 Mar 2023 19:05:27 -0800 > Cc: Emacs developers > > > > > Yuan, why was this change made? The fact that loading go-ts-mode.el > > without a grammar library causes a warning is the intended behavior: > > users who don't have tree-sitter setup for Go shouldn't load this > > mode, and if they do, they should know it failed, and why. The above > > change makes it fail silently, which is not a Good Thing. > > I thought that we’d want the warning to appear when user calls go-mod-ts-mode or open a file that uses that mode, rather than at load time. What I had in mind is when someone only install tree-sitter-go and want to edit some Go file, and they get this warning of go-mod being not available. This is what I encountered which prompted this change. I didn’t know that was intentional; since it’s intentional, please revert it (maybe you already have), and sorry for the hiccup :-) This will happen with any *-ts-mode.el file that defines more than one mode for more than one grammar. The only way of avoiding this is to separate the modes, and we decided not to do that, presumably for good reasons. So the result is that users who want to edit Go files must also install the grammar for go.mod files (and similarly with C and C++). The root cause is that when the file is loaded, we have no way of knowing for which of the two modes it was loaded. This is a disadvantage of this arrangement, but as long as we keep these modes together on a single file, I don't see how we can avoid that. So please revert those changes, as they go against what is planned for Emacs 29. > > made this even worse: now we have a byte-compilation warning in a > > build without tree-sitter, and this code will signal a generic error > > (whose text is not very helpful to users) if the file is loaded in a > > build without tree-sitter. This is all against the intended behavior > > of these modes. > > > > Again, what problem were you trying to fix with that change? > > Treesit-ready-p is intended to be used for major modes, so it includes checks for current buffer’s size, which doesn’t make much sense when called when loading the file. But if you intentionally used that function for the warning, I guess there is no harm using it this way, as the default size threshold is rather large. If we want to avoid the buffer size text in some cases, we can add an optional argument to treesit-ready-p, and use it in those places. (And I agree that the test is probably harmless anyway.)