From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Generation of tags for the current project on the fly Date: Thu, 18 Jan 2018 01:19:58 +0300 Message-ID: <37a5b9db-92f2-bd86-b9a6-2a2314248a51@yandex.ru> References: <4559858d-eb32-d071-fdad-e51430700260@yandex.ru> <83shbb30z1.fsf@gnu.org> <8360863o6a.fsf@gnu.org> <27a58fb2-d2ee-e5fc-158d-ec41be401987@yandex.ru> <83y3l0za1f.fsf@gnu.org> <259c557d-e3a3-c01b-9ba3-30df09d247ea@yandex.ru> <83inc3znpu.fsf@gnu.org> <98f4f0c3-6815-bf86-fa23-1a330c60b9f3@yandex.ru> <83d129y9oq.fsf@gnu.org> <4a91acc7-78f9-600f-2fa4-1bed70b107e2@yandex.ru> <83k1wgwl1i.fsf@gnu.org> <834lnkw8gq.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1516227511 26923 195.159.176.226 (17 Jan 2018 22:18:31 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 17 Jan 2018 22:18:31 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Thunderbird/58.0 Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 17 23:18:27 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ebw2C-00069R-GK for ged-emacs-devel@m.gmane.org; Wed, 17 Jan 2018 23:18:16 +0100 Original-Received: from localhost ([::1]:38552 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebw4C-0005Pq-9G for ged-emacs-devel@m.gmane.org; Wed, 17 Jan 2018 17:20:20 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44037) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebw3y-0005If-6f for emacs-devel@gnu.org; Wed, 17 Jan 2018 17:20:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebw3u-0005gj-V8 for emacs-devel@gnu.org; Wed, 17 Jan 2018 17:20:06 -0500 Original-Received: from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242]:45435) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ebw3u-0005fq-MZ; Wed, 17 Jan 2018 17:20:02 -0500 Original-Received: by mail-lf0-x242.google.com with SMTP id x196so3975581lfd.12; Wed, 17 Jan 2018 14:20:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=uXG1lP7ZZJUddUmV92nxqhAtka/o4FVMAWXAtWPFRLQ=; b=vBp/cFfGKdiiWHHOmWDMpvsFMgTMFS8u//NIENvKNzc8YUWAr3odoRkZ6ZBL74BxXD z/PorutNqqDDUfvBRIwwmgsF4/7VISNGqnHRq14+xUMvLYeUKHf5o/PMhVDC7T0vgpAe PBTB9WRk6f4QZGAQPOg/NWcRC0kuSxxYm6wmHftW4GkGwMT2scHQ9hUnbibF4IqC1slw 3+ITjYWiVXCg7VaUS1H23jG9pV1CNFz/5KDfd5TiypyVdmBi6rz138JFjvoTDGgMO3H6 RlV6PnoF5Oxt/ykYpby8hTi9eNgvSvHA8zKxDPrakz/guoQybII8KJHeqMAMomIf8pXV 1PIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=uXG1lP7ZZJUddUmV92nxqhAtka/o4FVMAWXAtWPFRLQ=; b=l5wmGMoNRxfhBqwHDLG5K1yVllmnWX8FsxhAsNoC+kP2TlaF+cganyhLcZdThISWUj MHWS+hs2UcLMUdTotYhDFBD4EoSMVagOhV95NhJSjjDZJZgE8htFhPnQBpNRwF7upUG0 zHT5hCiqjSex+PyG2MYP/58Wrka9NJH82QKL9t0+wywISbPx0kmiK4T6tEM/5ZMum7JT 6WygHPvRiQv19AHTWWAwHLv6nwtkslMm5ODbKgqajXsXCaC5jrf77EtN7hodorzYry5e 10u5zTSDvtscKJQh9cwEeISx9htrS6eo2W7hRWWLNhIRrjCRGFJt8PiqY6OfEPxMzjh8 eKEA== X-Gm-Message-State: AKwxytd+VBYlxTyjVxDE9nbEsvPNLG6IsyfVL3HEgfSSPTQh0bNe47Er jOiNPzHvJaavFtDdrFOoeKK0d/TG X-Google-Smtp-Source: ACJfBou4Oiup5rP+INC5OH4M1dEeTSpqXijiFHyDwPU9Ask+qQxlqvtjb2mtYHu6kzE/Fa6PxhkxUA== X-Received: by 10.46.43.71 with SMTP id q68mr7953058lje.92.1516227600956; Wed, 17 Jan 2018 14:20:00 -0800 (PST) Original-Received: from [192.168.1.190] ([178.252.127.239]) by smtp.googlemail.com with ESMTPSA id b14sm965950lfb.63.2018.01.17.14.19.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Jan 2018 14:19:59 -0800 (PST) In-Reply-To: <834lnkw8gq.fsf@gnu.org> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::242 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:222059 Archived-At: On 1/17/18 23:12, Eli Zaretskii wrote: >>>> The information is inside the TAGS file, isn't it? >>> >>> Not really: the signature of each file at the moment of scan is >>> missing, and maybe also other things. >> >> Meaning it's not known at etags runtime? That's true. > > It's also not recorded after the run, so that the next run could > compare against it. What's a signature? The file names are recorded, of course. But not mtimes, if you mean them. >> Make tracks which files need to be recompiled, right? This could reuse >> the same mechanism, if possible. > > Make doesn't support incremental builds, except on file granularity. > Doing that with etags would be easy, but you say that is not the > "incremental" tagging you had in mind, you want the granularity to be > below file, i.e. on tag level. For that, a single time stamp of the > TAGS file is insufficient, because all it can tell you is which files > need to be re-tagged, whereas you want to know that on a per-tag > basis. On the contrary: file granularity should be fine. We just need *some* accounting somewhere to detect which files to reindex. It's hard for me to imagine how a granularity lower than file would even work. Another question is how to deal with file deletions: when a file is absent, there's nothing to take into account, for Make to trigger an incremental rebuild (or actually a deletion of this file's entry). Maybe this is a rare enough case, though, that 'make tags' users will deal with it manually in some fashion or other.