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: Automatic (e)tags generation and incremental updates Date: Tue, 12 Jan 2021 17:08:23 +0200 Message-ID: <83o8hudwgo.fsf@gnu.org> References: <779a6328-9ca5-202a-25a2-b270c66fe6dd@yandex.ru> <8fc5e96c-ebb8-c668-9b2a-c7c4ee54c0b9@yandex.ru> <83r1mwltob.fsf@gnu.org> <0bee9ab4-46bc-b6fd-97b6-e26cc80f1610@yandex.ru> <875z45dbm7.fsf@tromey.com> <1e9c9572-52ee-339b-78a2-731b9eb5f3de@yandex.ru> <871resd93f.fsf@tromey.com> <83mtxffrou.fsf@gnu.org> <106abdbb-ce7a-4911-0831-149da3dccfb3@yandex.ru> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33385"; mail-complaints-to="usenet@ciao.gmane.io" Cc: philipk@posteo.net, tom@tromey.com, emacs-devel@gnu.org, john@yates-sheets.org To: Dmitry Gutov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jan 12 16:11:08 2021 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 1kzLK7-0008Uw-IE for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Jan 2021 16:11:07 +0100 Original-Received: from localhost ([::1]:39004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzLK6-0006iK-Gs for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Jan 2021 10:11:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59170) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kzLHJ-0003we-9K for emacs-devel@gnu.org; Tue, 12 Jan 2021 10:08:13 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:32787) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kzLHI-0000KE-Hk; Tue, 12 Jan 2021 10:08:12 -0500 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2151 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kzLHH-0007lm-QO; Tue, 12 Jan 2021 10:08:12 -0500 In-Reply-To: <106abdbb-ce7a-4911-0831-149da3dccfb3@yandex.ru> (message from Dmitry Gutov on Tue, 12 Jan 2021 03:33:10 +0200) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:262981 Archived-At: > Cc: tom@tromey.com, john@yates-sheets.org, philipk@posteo.net, > emacs-devel@gnu.org > From: Dmitry Gutov > Date: Tue, 12 Jan 2021 03:33:10 +0200 > > >> (write-region (point-min) (point-max) buffer-file-name nil 'silent) > >> > >> I wonder if *that* could be done asynchronously. > > > > What kind of asynchronicity did you have in mind? > > One where the Lisp code doesn't have to wait for the disk write to > complete. Wed don't have such facilities, because they would need locking the region (actually, probably the entire buffer) for changes while it runs. > > And I'm probbaly missing something, because I don't understand how > > Emacs is involved in updating the tags table. > > It's part of the secret sauce for the quick incremental updates: if > etags writes to disk, even just to update one file's index, we'll have > to revert-buffer, and the bigger the tags file is, the longer the revert > will take. Basically, N(project-size). But still faster than write-region, no? Did you try it the other way around: let etags write to a file, and then revert, or even just replace some region that you wanted updated (with insert-file-contents)? Anyway, TAGS and etags.el were designed to be very tolerant to changes, so you shouldn't need to update very often.