GNU bug report logs - #47799
28.0.50; Default `project-files' implementation doesn't work with quoted filenames

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Philipp Stephani <p.stephani2@HIDDEN>; dated Thu, 15 Apr 2021 13:45:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 16 May 2021 13:37:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 16 09:37:16 2021
Received: from localhost ([127.0.0.1]:49875 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1liGxI-0005Cy-B3
	for submit <at> debbugs.gnu.org; Sun, 16 May 2021 09:37:16 -0400
Received: from mail-ed1-f43.google.com ([209.85.208.43]:33574)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <p.stephani2@HIDDEN>) id 1liGxG-0005Cm-NO
 for 47799 <at> debbugs.gnu.org; Sun, 16 May 2021 09:37:15 -0400
Received: by mail-ed1-f43.google.com with SMTP id b17so3865161ede.0
 for <47799 <at> debbugs.gnu.org>; Sun, 16 May 2021 06:37:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=JwF7KDPvhUIxjuQ9gPIL+yuwhg0gBiRr40vq2o9aj08=;
 b=BcCtCnvpZd8VIH9sAKG/j5EGflUXsCngPr14bVwdFoYBn74rz79+Q6KwJ0ebob9LGD
 0fevOy4cZNcgFnkGlwq2NoSSmJz6tFUtkXrfLju2SRPGd/wtnoElYlRKPv18U2CMvMmL
 lkndtAkuatf9dDwkFgCJ1VwliOUQA8QAcFBLabpt6MRBqFZU4/POGk85XywCrsrithXM
 saA99hGCWh/dSpi8Kb1BYmSQIxeZoQMx4Djq+4qaVl/3kNVk6Sy7ZkXKabN6djhSeEVK
 /WkDCEENj+IzVyzVkw45WKqm71CHWZ8W5rOLz4g8ilxWoRMWHhk535jElQ9sW0VIoNhs
 kvtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=JwF7KDPvhUIxjuQ9gPIL+yuwhg0gBiRr40vq2o9aj08=;
 b=fNKYA5dFD1R0pVCdcbTB34FN73FcGhdPg3RYOEqxhEuYD4sdzjaewZNysGSuDy2euk
 2XQAF8kYlwnN2mewDdYuprypw2gnPTtJ7VCvIhb2MpMI/LL5hyZeFU0TQJHZCXIjx30v
 g3axd+SqtbKMA7lI/oHSkciLXYBoz2XAlJB1q0k99C6kh8CAkSGpOCH2mNdfH/DiTxeh
 i6oTB26i29/lDmTrWzjE5GUh2BU0POP5skNvz5YVqpfefk+IZsZVpXTzag8NQiyx3/wj
 bww7LJTzR+pFBpWu8ObZMjnJYUFQgAwrG7nrK00HjWYOct9TCvuijhOF1phuvoLi2UlL
 3zFQ==
X-Gm-Message-State: AOAM5339KPfi95Cd4gcqKX7DzurnAtXyb8uTXo7mJE7Jm7oFQVFN0o/7
 F44K0P1oVOqkLCtex/vKA5Q=
X-Google-Smtp-Source: ABdhPJxbSCQ6PjRiYit/WV+3G3XSqpSwWppzze80CycM4E2Vu2OJMwTsbW27wfc9lF7k73rvZIeE3A==
X-Received: by 2002:aa7:d90d:: with SMTP id a13mr64584667edr.76.1621172228793; 
 Sun, 16 May 2021 06:37:08 -0700 (PDT)
Received: from smtpclient.apple ([46.128.198.100])
 by smtp.gmail.com with ESMTPSA id i8sm7362313ejj.68.2021.05.16.06.37.08
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sun, 16 May 2021 06:37:08 -0700 (PDT)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.80.0.2.43\))
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
From: Philipp <p.stephani2@HIDDEN>
In-Reply-To: <91dd2467-f64e-eede-8098-14fc8ccd7ae7@HIDDEN>
Date: Sun, 16 May 2021 15:37:07 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <429484E1-DDFA-4050-B5BF-E43477441C84@HIDDEN>
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
 <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
 <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
 <d9ec362d-cb69-efaf-0b80-e771abf05349@HIDDEN>
 <CAArVCkQYwVQJXNK4EQbM4A6FbBKzknnzuegbF54o5d=9DhVG2g@HIDDEN>
 <91dd2467-f64e-eede-8098-14fc8ccd7ae7@HIDDEN>
To: Dmitry Gutov <dgutov@HIDDEN>
X-Mailer: Apple Mail (2.3654.80.0.2.43)
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.8 (/)



> Am 19.04.2021 um 22:48 schrieb Dmitry Gutov <dgutov@HIDDEN>:
>=20
>=20
>> Rather than making assumptions in xref-matches-in-files, maybe we
>> could work more with relative filenames. For example:
>> 1. Add another project method "project-relative-files" that returns
>> filenames relative to the root. By default, this would call
>> project-files and make the filenames relative, but project
>> implementations can provide an optimized implementation.
>> 2. Give xref-matches-in-files an optional root directory argument and
>> allow users to pass names relative to that root.
>> Then I think both project and xref could leave these relative
>> filenames alone. WDYT?
>=20
> We've discussed this before, but it's a change in the API, a +1 method =
for a very minor feature.
>=20
> And how will we explain anyway that xref-matches-in-files, when called =
without the new ROOT argument, doesn't handle remote or quoted file =
names?
>=20
> So if you can fix this to avoid performance loss in the general case, =
that would be a good improvement for now.

Yeah, I think you're right, we shouldn't complicate the API =
unnecessarily for optimization purposes.

One thing that came to my mind is: in general, in Elisp (not just XRef), =
we spend lots of time parsing filenames to support remote and quoted =
filenames.  Other languages probably solve this by introducing proper =
types for filenames (e.g. the Java Path class), which can then hold =
preprocessed information about the underlying filesystem (or special =
file name handler, in the case of Elisp).  How about doing similar for =
Elisp?  For example, introduce a `parsed-file-name' class or structure =
holding the remote/quoting state, or attach it to string properties?  I =
haven't tried out that idea, but I think it could significantly speed up =
the parsing (since we'd only have to do it once and don't have to search =
for filename handlers all the time), as well as remain =
backward-compatible to "plain" unparsed filenames by allowing both =
strings and this new object type.  WDYT?=




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 22 Apr 2021 00:46:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 21 20:46:29 2021
Received: from localhost ([127.0.0.1]:60119 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lZNUD-0005zj-2f
	for submit <at> debbugs.gnu.org; Wed, 21 Apr 2021 20:46:29 -0400
Received: from mail-ej1-f51.google.com ([209.85.218.51]:41600)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1lZNUB-0005zT-4Y
 for 47799 <at> debbugs.gnu.org; Wed, 21 Apr 2021 20:46:28 -0400
Received: by mail-ej1-f51.google.com with SMTP id mh2so44565543ejb.8
 for <47799 <at> debbugs.gnu.org>; Wed, 21 Apr 2021 17:46:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:subject:from:to:cc:references:message-id:date:user-agent
 :mime-version:in-reply-to:content-language:content-transfer-encoding;
 bh=aZrxETZhy2QkPq5d3aM/ToTN0U1Xn4cN/va8nqffDTs=;
 b=HDy8S1w/M6UZ8bwkDHH4SKFupZsmHTFSUpxgX+py0OBkge/jB43HLtwNK0CuR0cjjh
 U/q1W4O1klfZOW1wFbOY/kA/rabHbagiWzISI8Z+tsXk1ONPK/KQnTb6Xmx7dcMNdiOV
 TTQ+L2Ugybx6RADMKD+grL4gYzvxkdJRJdReDSEGlbL/X+7D7PrVevdHwpFsjztuqwQX
 vPTcY5ChWQfWOwuNzGQeoKy/BujzAovask5OliV/JJul/8Q8CAWkuywwAR9FnhaCkNjk
 RdkvSioXA6iOcoPxPdcamIsTwt2qy+tDVMKy3ChvQThpy+UmuXtUjkFqQV1z9W221uQj
 +IMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:subject:from:to:cc:references:message-id
 :date:user-agent:mime-version:in-reply-to:content-language
 :content-transfer-encoding;
 bh=aZrxETZhy2QkPq5d3aM/ToTN0U1Xn4cN/va8nqffDTs=;
 b=ZiWIG1ifNzMJZPPAz7TgW0pldzP0fJbGlx8+uTmMbtshdrc7lC+IfacRV6dIYlMWOM
 swlENPaw6sSEGdSUWqok3dM4rTMWjwunP3s1LujDKkUbSzyDvK2IJar5vMWD8MN/GK9B
 d2zAY//zdLwlQ/a3AWzf34dda5XeyFDqY2b8ou8mwfhzqqCVAi70xutr0kvl6ySvmXUI
 mtQAHxEaIAj6NyBZnRI0Ksuhf4CXwPqRcNdS8ikPX3OmTcMToJelX5BO9+FIMJtvaz5F
 pe09ZIRHNZDb5CUK5OVGqlnZlCFKgHORtnElkpF4Qr52yp5/uO/jAuehzIeX1QGfaYH0
 zuFg==
X-Gm-Message-State: AOAM532LBBwlGfxM4RomMyrOseoswQQooxJueFvI69HULdCQZEMPKqD9
 NbHxJSSkihJsqZldPtoFW4paci68cLU=
X-Google-Smtp-Source: ABdhPJxdlQZLKlwKibkt0Bem4kFO2xcEnIEECuqHjUtfM1ILWOIVDdBWcNbZU4Il2edS6qJ42DZVQQ==
X-Received: by 2002:a17:906:dc90:: with SMTP id
 cs16mr563369ejc.210.1619052381223; 
 Wed, 21 Apr 2021 17:46:21 -0700 (PDT)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id f19sm729099ejc.54.2021.04.21.17.46.18
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Wed, 21 Apr 2021 17:46:19 -0700 (PDT)
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
From: Dmitry Gutov <dgutov@HIDDEN>
To: Philipp Stephani <p.stephani2@HIDDEN>
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
 <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
 <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
 <d9ec362d-cb69-efaf-0b80-e771abf05349@HIDDEN>
 <CAArVCkQYwVQJXNK4EQbM4A6FbBKzknnzuegbF54o5d=9DhVG2g@HIDDEN>
 <91dd2467-f64e-eede-8098-14fc8ccd7ae7@HIDDEN>
Message-ID: <40e4cb97-c0e5-9ec1-123d-0f73a39e34c2@HIDDEN>
Date: Thu, 22 Apr 2021 03:46:17 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <91dd2467-f64e-eede-8098-14fc8ccd7ae7@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.5 (/)

On 19.04.2021 23:48, Dmitry Gutov wrote:
> And how will we explain anyway that xref-matches-in-files, when called 
> without the new ROOT argument, doesn't handle remote or quoted file names?

The above is probably the only real blocker I see. Else we would need to 
document it to explicitly only take relative file names, I think. Do we 
have a precedent in the core library for this?

Other than that, an exploration into an API working with relative files 
names sounds good, actually. It could further speed up file listing, 
eliminating some concatenations in project--vc-list-files (in the big 
project I referred to, that takes it from 1s down to 0.75s).

If you have the time, patches welcome, even rough ones.

> So if you can fix this to avoid performance loss in the general case, 
> that would be a good improvement for now.

In the meantime, I've changed the fix to use the plan explained previously.

Downsides: either all files should be quoted, or none (is that a 
reasonable assumption?), and, of course, users which which do have 
directories making use of quoting still pay the performance overhead.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 19 Apr 2021 20:49:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 19 16:49:02 2021
Received: from localhost ([127.0.0.1]:52224 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lYapK-0005HM-0t
	for submit <at> debbugs.gnu.org; Mon, 19 Apr 2021 16:49:02 -0400
Received: from mail-wr1-f53.google.com ([209.85.221.53]:33576)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1lYapH-0005Gu-8Z
 for 47799 <at> debbugs.gnu.org; Mon, 19 Apr 2021 16:49:00 -0400
Received: by mail-wr1-f53.google.com with SMTP id g9so19370675wrx.0
 for <47799 <at> debbugs.gnu.org>; Mon, 19 Apr 2021 13:48:59 -0700 (PDT)
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=VR3x5kLk0tc+3uoKDtJKLD8yyA+QxUdJHcFENBkJAv8=;
 b=fb4GK31kId2M8yUpjiip7oxwQo0yItCnDXbZ4/IkmFlTQlG+qWQEQFQVJr0Nb0I6ij
 DRxqeHVJwanUzHMywZoFYXB1tn8UssraRyeJiJUzacZ8+APOv+cg7Gu/E66pcFNXQI/P
 YkSAmRunSICjVsnyUCH46u04xhku0d+/ASDeXQOktUHAhuqAM8tbSVSJ9IMXlyQfINes
 UCHwbiQ6oLZ4DcpCBR4dPMt6siYCA0LY+BwrCPAJltBGrYdMpZ/6qbhYWXHI9OyhohxK
 DA4RJVyaObIXNfCAOmbgjPtUj2UVo0B3UIkLzMdPR8y7ehrQpBc/KexmUfpWn2LZGhxn
 48Tw==
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=VR3x5kLk0tc+3uoKDtJKLD8yyA+QxUdJHcFENBkJAv8=;
 b=s9AgJvp5qWVEWZdtGN828qM5s1Hg8P1yvnWpV5MhC23463QEjF7AoVi8DDAp1y0RTg
 63Rug5DLfRfA27u11zcAS3UzDY5dqO7bcQdLnaO3czBmM8Q4gflKEHkzLWOfwKvCTETb
 Xs/6C7Xu+dcOf7kVEFnIJ0EZvt/msMXrOcYtrpVQdVLpTT3ZiDL8k/Sj9MKaeNjvga9s
 a1Jwo1jtBSkFlyQiFl79NDfVdu1waSilqk7o7sFakTMHYqSIuVgWj59zpPI5IWDt5AtH
 mPhQCXyehqX+4nTYOSYUUCrhGWQIy63LnTIOq+PTcV0+CMBIkdVaVgzhSnDc2Q1fUkKd
 Pa6A==
X-Gm-Message-State: AOAM533znSLjZkGbCKHBHAMDIbUqBArl43snwdG+n+vbQvfgRFELibtj
 ATlNhK/jbZJ/HKU5N8r8qNPeQIz8rp0=
X-Google-Smtp-Source: ABdhPJwzYFvqot5fW1TM5O5Ywdgt335Yyff1J7h65eD3WA7i+rzTjeaZGmOFUBFA1yJlhUEOoRVPIw==
X-Received: by 2002:a5d:4948:: with SMTP id r8mr16399283wrs.35.1618865333329; 
 Mon, 19 Apr 2021 13:48:53 -0700 (PDT)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id f23sm818116wmf.37.2021.04.19.13.48.51
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Mon, 19 Apr 2021 13:48:52 -0700 (PDT)
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Philipp Stephani <p.stephani2@HIDDEN>
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
 <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
 <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
 <d9ec362d-cb69-efaf-0b80-e771abf05349@HIDDEN>
 <CAArVCkQYwVQJXNK4EQbM4A6FbBKzknnzuegbF54o5d=9DhVG2g@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
Message-ID: <91dd2467-f64e-eede-8098-14fc8ccd7ae7@HIDDEN>
Date: Mon, 19 Apr 2021 23:48:51 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <CAArVCkQYwVQJXNK4EQbM4A6FbBKzknnzuegbF54o5d=9DhVG2g@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.5 (/)

On 19.04.2021 17:48, Philipp Stephani wrote:

>> It's a realistic use case, and the impact is significant (e.g. 1s to
>> list files, 2s to unquote them all), so please look into this soon. The
>> fix in xref should be simple enough, I'd just like for someone to
>> realistically test it before installing (I can send a patch, if you want).
> 
> Hah, I wasn't aware that quoting/unquoting is so slow.

It's file listing that is fast, rather. ;-)

The project in question has 200'000 files.

> Rather than making assumptions in xref-matches-in-files, maybe we
> could work more with relative filenames. For example:
> 1. Add another project method "project-relative-files" that returns
> filenames relative to the root. By default, this would call
> project-files and make the filenames relative, but project
> implementations can provide an optimized implementation.
> 2. Give xref-matches-in-files an optional root directory argument and
> allow users to pass names relative to that root.
> Then I think both project and xref could leave these relative
> filenames alone. WDYT?

We've discussed this before, but it's a change in the API, a +1 method 
for a very minor feature.

And how will we explain anyway that xref-matches-in-files, when called 
without the new ROOT argument, doesn't handle remote or quoted file names?

So if you can fix this to avoid performance loss in the general case, 
that would be a good improvement for now.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 19 Apr 2021 14:49:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Apr 19 10:49:04 2021
Received: from localhost ([127.0.0.1]:51585 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lYVCy-0008W3-8I
	for submit <at> debbugs.gnu.org; Mon, 19 Apr 2021 10:49:04 -0400
Received: from mail-ot1-f53.google.com ([209.85.210.53]:33750)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <p.stephani2@HIDDEN>) id 1lYVCw-0008VC-7P
 for 47799 <at> debbugs.gnu.org; Mon, 19 Apr 2021 10:49:02 -0400
Received: by mail-ot1-f53.google.com with SMTP id
 92-20020a9d02e50000b029028fcc3d2c9eso10305489otl.0
 for <47799 <at> debbugs.gnu.org>; Mon, 19 Apr 2021 07:49:02 -0700 (PDT)
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=Huyknc7hxw59fqP+7MQvfUhVmIcdptjmtI+E2WP4wlo=;
 b=IfhdWyBlgj4G0tyMn5FsndCilsKGXfbYKBqSMGzoJQ2wDb+XXkWlBeWww+8DUIeBXe
 HXQInmFmnXFthPLefISmwBnPnDZCzjck65NHCePy4PQgYWXtm5NNbO7ZduNsCsgPz1YL
 ZIwe/c5kngMKzweyce72AL+wzXZNYGcJNiXEcSWef2j7EcZ4fJO+DjVr5ll4C9HtG0Ys
 uJBd6cj/4+BMKVyYh9d7MRQzmxWk18ogROJQyngj5wjlIH8qUhcH4ATu4lRYzFjT8xgh
 0AUC9XJjO9oXkrKslG0pzYzPSKppn9okbbT2U+T9/zLL13ZNcOxwfY216mHmy3Ou2T7u
 jw8w==
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=Huyknc7hxw59fqP+7MQvfUhVmIcdptjmtI+E2WP4wlo=;
 b=LuiAZ1/NnLUeEqvurTji4lt274ZJd8XXlcvV3YBlH/Jo9WVyu7Lt31dRNMyTxGrtTJ
 H039mwT66vrOuVLCLqH4fHRkvfNMoBxB/0qyxezPjo0Xo/B4oeV1MyFsoyAUWmFXbyXX
 oijkHyLvxbYtEBeZWchazHPlSwSo9u5mqdN+AAuSp7TmANtaCydEhTOHBZ4m3Ow0tgCp
 WwX3/GC/CT8cPa60p+6EpfRbBN8EPpaf/5/h5FQRMLFi+mJsJ4qpM/VB0+8LXDmQANp6
 vlxKN0olsjBnN+zmT15bOgizkm/X8WFFUgQTE4LiAgnoVM5z02Pu2rH61u7bT9Qi/q+V
 5+AA==
X-Gm-Message-State: AOAM531m0SpR0LNuvE6DrJNejqUuQhHkXLJGYjyRLCUu8Z32qMdzA0V1
 jDwPK2W4go4zcwzrmhsWFTWzRWElUglTqWlPN9I=
X-Google-Smtp-Source: ABdhPJw9t4oKfI84V4vpJ7rYsz0p3+NTFjs879eHpKzga9Rlnn1E/xUAZbmAOQFniPysuApvUSTTst+DykeD92K4nio=
X-Received: by 2002:a05:6830:150d:: with SMTP id
 k13mr12425918otp.156.1618843736465; 
 Mon, 19 Apr 2021 07:48:56 -0700 (PDT)
MIME-Version: 1.0
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
 <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
 <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
 <d9ec362d-cb69-efaf-0b80-e771abf05349@HIDDEN>
In-Reply-To: <d9ec362d-cb69-efaf-0b80-e771abf05349@HIDDEN>
From: Philipp Stephani <p.stephani2@HIDDEN>
Date: Mon, 19 Apr 2021 16:48:45 +0200
Message-ID: <CAArVCkQYwVQJXNK4EQbM4A6FbBKzknnzuegbF54o5d=9DhVG2g@HIDDEN>
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Dmitry Gutov <dgutov@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.7 (/)

Am So., 18. Apr. 2021 um 22:21 Uhr schrieb Dmitry Gutov <dgutov@HIDDEN>:

> >> Regarding your change, though, have you tried project-find-regexp in a
> >> "transient" project with a quoted root directory name?
> >>
> >> You've made project--files-in-directory quote the returned file names,
> >> but that list gets passed to xref-matches-in-files, which pipes them to
> >> find-grep in the end. I suppose xref-matches-in-files could use a step
> >> similar to (when remote-id ...) that is already there.
> >
> > Good point, I've pushed 6ebc6e12cf to fix. But xref.el should also be
> > fixed. Maybe I'll find some time to take a look at it.
>
> Yes, I think the fix needs to be in xref-matches-in-files, and it also
> needs to use file-name-quoted-p similarly to (file-remote-p
> default-directory, to avoid the mapping overhead when the list of file
> names is large.
>
> It's a realistic use case, and the impact is significant (e.g. 1s to
> list files, 2s to unquote them all), so please look into this soon. The
> fix in xref should be simple enough, I'd just like for someone to
> realistically test it before installing (I can send a patch, if you want).

Hah, I wasn't aware that quoting/unquoting is so slow.
Rather than making assumptions in xref-matches-in-files, maybe we
could work more with relative filenames. For example:
1. Add another project method "project-relative-files" that returns
filenames relative to the root. By default, this would call
project-files and make the filenames relative, but project
implementations can provide an optimized implementation.
2. Give xref-matches-in-files an optional root directory argument and
allow users to pass names relative to that root.
Then I think both project and xref could leave these relative
filenames alone. WDYT?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 18 Apr 2021 20:21:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 16:21:10 2021
Received: from localhost ([127.0.0.1]:47952 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lYDuo-0002iE-JK
	for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 16:21:10 -0400
Received: from mail-wm1-f50.google.com ([209.85.128.50]:41876)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1lYDun-0002i2-3f
 for 47799 <at> debbugs.gnu.org; Sun, 18 Apr 2021 16:21:09 -0400
Received: by mail-wm1-f50.google.com with SMTP id
 o21-20020a1c4d150000b029012e52898006so7307034wmh.0
 for <47799 <at> debbugs.gnu.org>; Sun, 18 Apr 2021 13:21:09 -0700 (PDT)
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=qkcclDzjjj14vNCE6S5TzCbpgTGRWF2NISCj+vP64t8=;
 b=hLApbK2w4NhQIwJK9QeFDTiMi8lWtDiyiaOKR4QDtBu6HqRpQi4tgeO23tf369aCxS
 iC5ASLOmpDVfo1kIRaKoxny1uwUOt9ehZfOoEseaA6emNng9JtbziaN3S95pToDZ95ii
 DUtMqPnE4+Ek0Hh1cLWSblHz/OF0Ksca7hQGJu6xKymfiV6tA0PT3hUPPipYkYeqvd7+
 nzDZvXENsE/Uy3aoDo0vZLp8iqGxpvtU76cHT2778gdhNJp18ywy+lALBLAi/B8DFKa+
 oCNXBXMjalX0TCHglb4wX1EoF5J3kp5ryowCBb20Vd6oapD9ftf+i+0mRmgjxZmKf1gf
 baPw==
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=qkcclDzjjj14vNCE6S5TzCbpgTGRWF2NISCj+vP64t8=;
 b=H1IZNc0hsaj27GUvb/1wDNC4ANN2b12bJEz/82ddpEyWFNppThdSxef4cnONL9MaRs
 EUQJPEcvM2UxotnWL6wyJJMKzgxWok/LbqKWCiNvP9bQTBikpmMGd9ZwR89fqEEYEZTh
 LlXKM8oMSvr+TUM1n79AYjPY5kchi7VmZXqhEmuRSgFXYDiAQkKaI/iByRwIvlHLThoN
 Oq94IA5enRAwt2LsLSRS40xPcXNNgS2Q9hkdUUfWqiFhEuPEw1T2RVePFZ8NY8Gnvqw7
 zPVUEJZTfSIPlSKBClIexC7JgpQjviXa6lTWEeFUeNu+qvwepZlAhnkRR4Bw/oiZJ4N6
 6Jow==
X-Gm-Message-State: AOAM531xBcMkT0+PHqoElSDjjf2RXn7lq9lOynBq9eS6k4LXuIgIR7bh
 x+gofm36VyahLs1Jo0QYuaAB5CCGnPA=
X-Google-Smtp-Source: ABdhPJz04HJdzeUSlhSaNhGXqTJG1lK6X1lRUAzDwRe5bbx7vw/OXRJq1ulroD8R30k7v4oirqEmvw==
X-Received: by 2002:a7b:c401:: with SMTP id k1mr18490839wmi.48.1618777263287; 
 Sun, 18 Apr 2021 13:21:03 -0700 (PDT)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id v3sm17502202wmj.25.2021.04.18.13.21.01
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Sun, 18 Apr 2021 13:21:02 -0700 (PDT)
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Philipp Stephani <p.stephani2@HIDDEN>
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
 <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
 <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
Message-ID: <d9ec362d-cb69-efaf-0b80-e771abf05349@HIDDEN>
Date: Sun, 18 Apr 2021 23:21:00 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.5 (/)

On 18.04.2021 23:06, Philipp Stephani wrote:

>> Regarding xref--find-ignores-arguments, it seems it would be economical
>> to do the quoting on the value passed to it. See f955df1.
> 
> Since it's an internal function, this is mostly a matter of style. I
> prefer using Emacs filenames as function arguments as much as
> possible; it's the expected behavior for functions dealing with files,
> and Emacs doesn't have a strong enough type system to distinguish
> "Emacs filename" (which can be quoted or remote) from "filename for
> external programs" (which must be unquoted and local).

Matter of style, yes, but the way I fixed it requires one unquoting 
instead of two, which seems like a win.

Your point is also valid, of course.

>> Regarding your change, though, have you tried project-find-regexp in a
>> "transient" project with a quoted root directory name?
>>
>> You've made project--files-in-directory quote the returned file names,
>> but that list gets passed to xref-matches-in-files, which pipes them to
>> find-grep in the end. I suppose xref-matches-in-files could use a step
>> similar to (when remote-id ...) that is already there.
> 
> Good point, I've pushed 6ebc6e12cf to fix. But xref.el should also be
> fixed. Maybe I'll find some time to take a look at it.

Yes, I think the fix needs to be in xref-matches-in-files, and it also 
needs to use file-name-quoted-p similarly to (file-remote-p 
default-directory, to avoid the mapping overhead when the list of file 
names is large.

It's a realistic use case, and the impact is significant (e.g. 1s to 
list files, 2s to unquote them all), so please look into this soon. The 
fix in xref should be simple enough, I'd just like for someone to 
realistically test it before installing (I can send a patch, if you want).

>> A bit unfortunate for the users of large projects with quoted names, but
>> not sure what else we could do.
> 
> Quoting is a purely lexical operation which should be reasonably fast
> even for a large list of files.
> For truly enormous projects, something like "list of all project
> files" is infeasible anyway.

File listing in projects backed by Git (at least) is quite optimized. 
For example, in a gecko-dev checkout:

(benchmark 1 '(project-files (project-current)))
=> 0.97s

(benchmark 1 '(mapcar #'file-name-unquote (project-files 
(project-current))))
=> 2.97s




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 18 Apr 2021 20:07:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 18 16:07:01 2021
Received: from localhost ([127.0.0.1]:47915 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lYDh6-0002L2-US
	for submit <at> debbugs.gnu.org; Sun, 18 Apr 2021 16:07:01 -0400
Received: from mail-oi1-f173.google.com ([209.85.167.173]:40499)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <p.stephani2@HIDDEN>) id 1lYDh5-0002Kq-QN
 for 47799 <at> debbugs.gnu.org; Sun, 18 Apr 2021 16:07:00 -0400
Received: by mail-oi1-f173.google.com with SMTP id u16so16182971oiu.7
 for <47799 <at> debbugs.gnu.org>; Sun, 18 Apr 2021 13:06:59 -0700 (PDT)
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:content-transfer-encoding;
 bh=aZkVLmVhnj7mgW6sa7Zvmf7xw7pDhHHddKWhdGkg60A=;
 b=Ya9nzu+jcS05f1bRKOKPY8TdcU2H7RX7v0cZ8mAIuF3yGl4Bc9S5vW3fXTNWxqIBKI
 LQGB4fEkMCUAQW90FDoAYKCP7MCPxsGyyC4rKceCjGH3wUy0LtD/ti5xtoxKqN0G0KYi
 xzkoGW57vlkuysSFtoOzf7PO+00uRJUjJH6IhnMXJUW/9i/u37h+pCCjnVaVZFhayHN2
 3aTFrsuzD5zB2x1swqzHU4GsMlKCc5X642jy6AhZefo316RU409tVelG4hIi0IrCU3tf
 nBqh3srIO2xWPLpjtjCH+FZhwt7kUPsxqr0M79MpXsfIsSpMF7O+UJ0OFT+4HnGpq6bh
 DK6g==
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:content-transfer-encoding;
 bh=aZkVLmVhnj7mgW6sa7Zvmf7xw7pDhHHddKWhdGkg60A=;
 b=K/0CU+UmMMhKUkw9SLmTygz035gepjbgtuAoH47+pHyTqRp5mJrOaKKUdW/RMpwvEw
 2OxI6Fu5D7Bn+E54fhxRSF1XuwKQObVnRNyMODT5m0VCWr/rOindtixnHW86wDo4Ar91
 ndHM6gjLS0IuIhOFcwW75p7KG/ZOAbQG+LjyLu09jddnvcGzBnNAweEShojHIptkfyVr
 ZqV+wlv8YaoGP2juKJKzkCY5KaoSXlCkXVam7aCedu+jh52eSiulc/yqsgp/2oQfHUeT
 h3i+7SIvqc8rv9FNwVLABZkfF9GO98nxGbofzreyrQUVfW6x2kxEVzYzUXtsXuwigsLV
 7SIQ==
X-Gm-Message-State: AOAM5322OJZxpcl70/H/3+bq/Hn3sYFXo5dN09gaUXQiZHXy1co0RmBy
 57Q1o40Nu/c0otboBjxGaaVgdxLmDMrpKS2IstY=
X-Google-Smtp-Source: ABdhPJxi9QQVydENe37oKKOuA9bTIgmcDvyG2DGxDLp6ZB+ezcO6FkJM+L/t9WhQfZm735z8gAkYRnNxIbvyyDQdk+Y=
X-Received: by 2002:aca:1814:: with SMTP id h20mr13390314oih.150.1618776414156; 
 Sun, 18 Apr 2021 13:06:54 -0700 (PDT)
MIME-Version: 1.0
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
 <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
In-Reply-To: <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
From: Philipp Stephani <p.stephani2@HIDDEN>
Date: Sun, 18 Apr 2021 22:06:43 +0200
Message-ID: <CAArVCkScxJ4FK2ofJSSXxxFanr16+NU=SiquQTu=kuYZ5p9ugw@HIDDEN>
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Dmitry Gutov <dgutov@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.8 (/)

Am Fr., 16. Apr. 2021 um 03:08 Uhr schrieb Dmitry Gutov <dgutov@HIDDEN>:
>
> On 15.04.2021 19:44, Philipp Stephani wrote:
> > Am Do., 15. Apr. 2021 um 18:15 Uhr schrieb Dmitry Gutov <dgutov@yandex.=
ru>:
> >>
> >> Hi Philipp,
> >>
> >> On 15.04.2021 16:43, Philipp Stephani wrote:
> >>> emacs -Q -batch -l project -eval '(print (project-files (quote (trans=
ient . "/:/"))))'
> >>>
> >>> ("find: =E2=80=98/:/=E2=80=99: No such file or directory
> >>> ")
> >>>
> >>> Note that the error message is listed as a file.
> >>>
> >>> 1. `project-files' should unquote local filenames before passing them=
 to
> >>>      `find'.
> >>>
> >>> 2. `project-files' should check for errors returned from `find'.
> >>
> >> Would you like to propose a patch?
> >
> > I've now pushed a minimal fix to this specific problem (commit
> > 157bfc1812c51a0a48162c71eadf7959f7de9ac6), but there are probably more
> > places that should get fixed, e.g. xref--find-ignores-arguments.
> > project--files-in-directory also still ignores any errors from the
> > find binary.
>
> Thank you.
>
> I've added error handling to project--files-in-directory in a follow-up
> commit.

Thanks.

>
> Regarding xref--find-ignores-arguments, it seems it would be economical
> to do the quoting on the value passed to it. See f955df1.

Since it's an internal function, this is mostly a matter of style. I
prefer using Emacs filenames as function arguments as much as
possible; it's the expected behavior for functions dealing with files,
and Emacs doesn't have a strong enough type system to distinguish
"Emacs filename" (which can be quoted or remote) from "filename for
external programs" (which must be unquoted and local).

>
> Regarding your change, though, have you tried project-find-regexp in a
> "transient" project with a quoted root directory name?
>
> You've made project--files-in-directory quote the returned file names,
> but that list gets passed to xref-matches-in-files, which pipes them to
> find-grep in the end. I suppose xref-matches-in-files could use a step
> similar to (when remote-id ...) that is already there.

Good point, I've pushed 6ebc6e12cf to fix. But xref.el should also be
fixed. Maybe I'll find some time to take a look at it.

>
> A bit unfortunate for the users of large projects with quoted names, but
> not sure what else we could do.

Quoting is a purely lexical operation which should be reasonably fast
even for a large list of files.
For truly enormous projects, something like "list of all project
files" is infeasible anyway.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 16 Apr 2021 01:08:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 21:08:51 2021
Received: from localhost ([127.0.0.1]:39607 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXCyZ-0007zW-6J
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 21:08:51 -0400
Received: from mail-wm1-f50.google.com ([209.85.128.50]:33718)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1lXCyV-0007zH-2s
 for 47799 <at> debbugs.gnu.org; Thu, 15 Apr 2021 21:08:49 -0400
Received: by mail-wm1-f50.google.com with SMTP id
 q123-20020a1c43810000b029012c7d852459so4738142wma.0
 for <47799 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 18:08:47 -0700 (PDT)
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=4/BC5C8S+Uko3Py1v9tcGkwyRf/iM6IX3N2Od+A9M7U=;
 b=I6/CULbnTn1IuWSsh+ld9Ouo6wE5YFZoPEAvTXwqWWv/KwypZn1qHpYPa0ZG8mup8z
 iNZBOhLMOEpB8n3qDkZsmEkp4RedObYMkSU8XXa0jHoTTqRzQcFU32FBf+RdHdaHWKL2
 /sVuW4mq3Zl+4Q/07KdryVtx/DYKqtmokWKIyc/bLdnBLbAFekVBrgw+YWDlIK0jveC2
 jw70thhDX8pX1yHqOWM1T+F4aakV7eeRRJQJ9+2mNU4bQsIAZgtxFLmGLeW3MqjFjand
 Dy+S2ofT36CBMZBSSb09GfmBEZrCKvPGoRY9+tQuGNIqBNUmQBJGpgTxBYktE5gvlZ4Q
 1jQA==
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=4/BC5C8S+Uko3Py1v9tcGkwyRf/iM6IX3N2Od+A9M7U=;
 b=EwwESXoM22Sha9W8oQ0M2burLnZR2O9v2z5LqBLdzTI+wBdOB+pVhmrkGX/68rqdKn
 FezvwUie3iZYgIrssRmpxwaGHw3Ji/35T5RaWLuF86kXOYdA+bZGqzA4GMVtlAIfPIE6
 QgxoSL5mmiTj3Vvb3r3RkqsowcgS6W7BWHMviDg0jy0djchUZwjGyh/yrzrj+UQtwosm
 9scHtt7xRcek9OG2E5FZBLzD0GOn8e/LptnkeBVCxFP52TVISmNR5IIiMG/sx+JlW0sK
 cjEJFXtEfZyO/zM+7jpqKc9qIhDzYn4Z3SnYFw+oGd9IzmPvaLEkQUVkT4Jq6I5HuLjI
 rW9A==
X-Gm-Message-State: AOAM533n0O70B4DmDmNUBXzzaKezBNLX7Y7g7ynjRHg6zGz7owulTtWc
 n1RANwXgEYCVSIlosE9AXo0Y9XGYyjo=
X-Google-Smtp-Source: ABdhPJybooZv6S+q0tqD274LYtKYGp5DGgzj5ELGiBSv76uuUeOfLQoKfqsJAARG1c17yX6/TgNwEA==
X-Received: by 2002:a1c:771a:: with SMTP id t26mr5642357wmi.96.1618535321199; 
 Thu, 15 Apr 2021 18:08:41 -0700 (PDT)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id v8sm6835554wrt.71.2021.04.15.18.08.39
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 15 Apr 2021 18:08:40 -0700 (PDT)
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Philipp Stephani <p.stephani2@HIDDEN>
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
 <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
Message-ID: <bf392ff3-36bb-546b-35ef-159cc27f2df9@HIDDEN>
Date: Fri, 16 Apr 2021 04:08:38 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.5 (/)

On 15.04.2021 19:44, Philipp Stephani wrote:
> Am Do., 15. Apr. 2021 um 18:15 Uhr schrieb Dmitry Gutov <dgutov@HIDDEN>:
>>
>> Hi Philipp,
>>
>> On 15.04.2021 16:43, Philipp Stephani wrote:
>>> emacs -Q -batch -l project -eval '(print (project-files (quote (transient . "/:/"))))'
>>>
>>> ("find: ‘/:/’: No such file or directory
>>> ")
>>>
>>> Note that the error message is listed as a file.
>>>
>>> 1. `project-files' should unquote local filenames before passing them to
>>>      `find'.
>>>
>>> 2. `project-files' should check for errors returned from `find'.
>>
>> Would you like to propose a patch?
> 
> I've now pushed a minimal fix to this specific problem (commit
> 157bfc1812c51a0a48162c71eadf7959f7de9ac6), but there are probably more
> places that should get fixed, e.g. xref--find-ignores-arguments.
> project--files-in-directory also still ignores any errors from the
> find binary.

Thank you.

I've added error handling to project--files-in-directory in a follow-up 
commit.

Regarding xref--find-ignores-arguments, it seems it would be economical 
to do the quoting on the value passed to it. See f955df1.

Regarding your change, though, have you tried project-find-regexp in a 
"transient" project with a quoted root directory name?

You've made project--files-in-directory quote the returned file names, 
but that list gets passed to xref-matches-in-files, which pipes them to 
find-grep in the end. I suppose xref-matches-in-files could use a step 
similar to (when remote-id ...) that is already there.

A bit unfortunate for the users of large projects with quoted names, but 
not sure what else we could do.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 15 Apr 2021 16:44:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 12:44:37 2021
Received: from localhost ([127.0.0.1]:38988 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX56b-00062d-9E
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 12:44:37 -0400
Received: from mail-oi1-f173.google.com ([209.85.167.173]:38537)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <p.stephani2@HIDDEN>) id 1lX56Z-00062O-OG
 for 47799 <at> debbugs.gnu.org; Thu, 15 Apr 2021 12:44:36 -0400
Received: by mail-oi1-f173.google.com with SMTP id b3so10121602oie.5
 for <47799 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 09:44:35 -0700 (PDT)
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:content-transfer-encoding;
 bh=OdPl3zecFy44hNy2aYMQqnTMJXn+Y26k1f9+3KzOb8w=;
 b=S6cq0e7vgwqXjRtzDYmuq3JdVLXxXaJnHAH3ulxKSD4p8f6LqLznZ02RonLrk4XJVX
 T5hpXgcawD+dD/XH7jL0kfIQHjlJB4BNCP0k/rlIUdP5o6wK9q+VWkg7Kk9lknF8fRdV
 6ZzxZ8mvYUWcoFX147VYWq5Pqo9ZGCY0YX6CkUPnJ6G8WV309fzgNJNkL3rWHfofOMHB
 fEzlaxj+3p2DResBFzzB+9R/rMhvi2EooB9NfnuFE1CgSIwMUXWW4XdOaJAZ4Z35GDxz
 5jb+BnW5N43bDty0WztnZIAWWUXhQixRnaAdbOoO68xG2YOIuUWcQjgl3JzgNY3ejTW1
 jCYw==
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:content-transfer-encoding;
 bh=OdPl3zecFy44hNy2aYMQqnTMJXn+Y26k1f9+3KzOb8w=;
 b=gHnGHFlLITjMl7XmHRlI+1wAsopKmp/0Av9OM0aJgNfVI2ShfJ44ckEx+iFC/joEsn
 F9LfGtxn7V4WBnDNeg0RdwKDMxB/O4JIdEAUpMYSnM76znYPJyoE5fBNt7Qy1dvpBqvf
 zr+0V41ooM0+xDwBcEpYrvnkC6t5t0FnaD7p+uIo+td8TKe99MF5tk7JxhqTKRZ19lG6
 fPppTqI7eFnVmlPd5dXUTcS/Aj4NRDg30pXfXtsBplAVEAOvGf35LP0g0L3vodTa9Q+R
 VozpRYExVjowjXsSOuvA+AaEiIs6z6Nkltah6bU4cnPKnZfHAPJbwKStd09BYJ3bjZmb
 +8KQ==
X-Gm-Message-State: AOAM530kOhFjZVPTuuGnSRkaoYSFwfwTjtWOimJKc2NGt9N9RQ40AQyD
 vmQBM6deGPUUo5zhhj4SztfUhpb5z9m+bAwSvFk=
X-Google-Smtp-Source: ABdhPJxj/mZh4SVAvg24skhmvoJS++EVFLoEFbJdZHEffbpUtQjFh+Yj76MBa2q7+5MAyuYTmY4lIie7BiPSX9hN0Qw=
X-Received: by 2002:a54:4582:: with SMTP id z2mr3228156oib.158.1618505069954; 
 Thu, 15 Apr 2021 09:44:29 -0700 (PDT)
MIME-Version: 1.0
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
In-Reply-To: <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
From: Philipp Stephani <p.stephani2@HIDDEN>
Date: Thu, 15 Apr 2021 18:44:18 +0200
Message-ID: <CAArVCkQ=BtD2oWBpjTzaqk+SgWfw1RxvJHrgrvexBrMACHTimQ@HIDDEN>
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Dmitry Gutov <dgutov@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.8 (/)

Am Do., 15. Apr. 2021 um 18:15 Uhr schrieb Dmitry Gutov <dgutov@HIDDEN>:
>
> Hi Philipp,
>
> On 15.04.2021 16:43, Philipp Stephani wrote:
> > emacs -Q -batch -l project -eval '(print (project-files (quote (transie=
nt . "/:/"))))'
> >
> > ("find: =E2=80=98/:/=E2=80=99: No such file or directory
> > ")
> >
> > Note that the error message is listed as a file.
> >
> > 1. `project-files' should unquote local filenames before passing them t=
o
> >     `find'.
> >
> > 2. `project-files' should check for errors returned from `find'.
>
> Would you like to propose a patch?

I've now pushed a minimal fix to this specific problem (commit
157bfc1812c51a0a48162c71eadf7959f7de9ac6), but there are probably more
places that should get fixed, e.g. xref--find-ignores-arguments.
project--files-in-directory also still ignores any errors from the
find binary.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 15 Apr 2021 16:26:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 12:26:43 2021
Received: from localhost ([127.0.0.1]:38970 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX4pG-0005bw-Oy
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 12:26:42 -0400
Received: from mail-oi1-f181.google.com ([209.85.167.181]:40698)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <p.stephani2@HIDDEN>) id 1lX4pE-0005bj-G6
 for 47799 <at> debbugs.gnu.org; Thu, 15 Apr 2021 12:26:41 -0400
Received: by mail-oi1-f181.google.com with SMTP id u16so7532909oiu.7
 for <47799 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 09:26:40 -0700 (PDT)
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:content-transfer-encoding;
 bh=TVC/EQcCW9ueIzdOrYs6XTjYywWo56tds5iA0UujIxg=;
 b=KxEgLaU1WBut9HIM5FiN74ZvnfpMVjVa7UiJjDkXPqGQ66IDoDUKSxvpwHOAr0p+jP
 QIarvOX3nzmGMLOhRcAHdZs9AFQnKij0qZyaKtRMB+pgrY38pcNs9+eHvViDcTb2q1Si
 bRGvnWjG/5MMJd0mDsCw1YiJOv5b7nEH4pvc6JPNgUIXgVgMYmhqIEUkCLIqPeoUjCbU
 idxYLF6mbYaneSnGhyjgrP03vnj8cZ2Hdl+TqSucODwwGAbqeLgSTq0OIt91K0mIARgd
 5EpFPfLOIjWcDv0dA5oIVCKjxVvtRYjLnWRT4wy3rdk9v8DJlu3O5ZmtQ6yCQaqKSLwN
 wuKg==
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:content-transfer-encoding;
 bh=TVC/EQcCW9ueIzdOrYs6XTjYywWo56tds5iA0UujIxg=;
 b=Umxsn/jQlVJeI+B+kBJZAfCOmQJHHajj9BceSfkN1Bo0JTKS8JgEo1Txp2bWI2Kv70
 +xnjcl6cq3RlW0tLOUH91+1FjErpgKp7w3XTvGOhkbUneSkFN/FO+NaR/Ucz7IvDnFWA
 ny2v5UhiLr7cXQRaPMA9uLfq0hsjbvmeP//qS5qU5LiG6CWCrR4flRT+Tjdf4h98w3op
 LdAZDwekPOSICmBabhpz8A1a4aqxq0AcpOTMtfqgKmdFFMyylgiJ3DBPjdk1L1GnYyrA
 jmNFgKLrOqPF15W6OEOhPF85pyds/sQ9GNNE9uz3iC5ltJOeFtFZWRaznwi4dg3fSx1H
 s6jg==
X-Gm-Message-State: AOAM533trcxAy4c14TRt/gLwpTwm2WkfdHLyaAz3fermHT83ztC0iK2D
 CVL63zFGs7qauJBvItWtuzIJLLcZVjTBD0Dz8Qg=
X-Google-Smtp-Source: ABdhPJwQxpjkaqjd4+Do9S8+TiWgPojcHigGeMGEICgkTbMI/AdnASQIN5O0GFk4u1Yzfasi+gL+h60ggh3/z0cSa2w=
X-Received: by 2002:aca:1814:: with SMTP id h20mr3116225oih.150.1618503993371; 
 Thu, 15 Apr 2021 09:26:33 -0700 (PDT)
MIME-Version: 1.0
References: <wvr45z0nmzn0.fsf@HIDDEN>
 <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
In-Reply-To: <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
From: Philipp Stephani <p.stephani2@HIDDEN>
Date: Thu, 15 Apr 2021 18:26:21 +0200
Message-ID: <CAArVCkSD5Jr1n4TTq5J7rZSU46=RFzxE2JcpR6tgru8JuKdpAg@HIDDEN>
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Dmitry Gutov <dgutov@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.2 (/)
X-Debbugs-Envelope-To: 47799
Cc: 47799 <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: -0.8 (/)

Am Do., 15. Apr. 2021 um 18:15 Uhr schrieb Dmitry Gutov <dgutov@HIDDEN>:
>
> Hi Philipp,
>
> On 15.04.2021 16:43, Philipp Stephani wrote:
> > emacs -Q -batch -l project -eval '(print (project-files (quote (transie=
nt . "/:/"))))'
> >
> > ("find: =E2=80=98/:/=E2=80=99: No such file or directory
> > ")
> >
> > Note that the error message is listed as a file.
> >
> > 1. `project-files' should unquote local filenames before passing them t=
o
> >     `find'.
> >
> > 2. `project-files' should check for errors returned from `find'.
>
> Would you like to propose a patch?
>
> I don't really understand the file quoting feature.
>
> Is project--files-in-directory supposed to unquote? Should
> project--vc-list-files do that as well?

I think only functions that pass filenames to external programs (that
don't know about Emacs filename handlers) should unquote. Unquoting
can change the meaning of a filename.
From what I can see, project--vs-list-files shouldn't unquote, because
it doesn't pass filenames to external programs.

>
> Does read-directory-name return quoted names when needed? Can
> locate-dominating-file return one?

Yes, both of these can return quoted names.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at 47799 <at> debbugs.gnu.org:


Received: (at 47799) by debbugs.gnu.org; 15 Apr 2021 16:15:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 12:15:35 2021
Received: from localhost ([127.0.0.1]:38957 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX4eV-0005Lh-KR
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 12:15:35 -0400
Received: from mail-wm1-f48.google.com ([209.85.128.48]:54054)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1lX4eT-0005LU-Ti
 for 47799 <at> debbugs.gnu.org; Thu, 15 Apr 2021 12:15:34 -0400
Received: by mail-wm1-f48.google.com with SMTP id w186so8239441wmg.3
 for <47799 <at> debbugs.gnu.org>; Thu, 15 Apr 2021 09:15:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:subject:to:references:from:message-id:date:user-agent
 :mime-version:in-reply-to:content-language:content-transfer-encoding;
 bh=3P4pOXUc73v3nEtGcJm3spcpyfX18oJJVp9qIQI0+Jw=;
 b=OaZ/5UH3EoAN8eCtHi65AI7sfK8v474HejNfp3SeuRfwgqpe4Px6fuMEiG56OopSl5
 mARu4T21Tw4VXkI8mc4+SUbKnmdI5GeX0YkppMQwJS5AS3CqINv/F2KghKhqGSOeLVdk
 FjAfb9U1WBpMIBwICyE5LFiQFSPUaEQTRCLU0yPIilkTdTBpOMKNiZYDGoU3WjuD/ECA
 zbBxZ/eKn7A61bzgTAuNty01Fd2HZAvhxjgUvOubb/UsLB7dYl6iFIwXI2O1+9/7LfGB
 QL/88SWJ7lprT4/QktfcN7/g1Ta+WwAhPDu4rZPAld3O6vGNSbkCfq5AKm43JJI8K4Le
 vXTw==
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:references:from:message-id
 :date:user-agent:mime-version:in-reply-to:content-language
 :content-transfer-encoding;
 bh=3P4pOXUc73v3nEtGcJm3spcpyfX18oJJVp9qIQI0+Jw=;
 b=FjUfhlyewBqdHgDUB/q9sbbEk9zS6L1RjcfmAG0p1u6pwWV0+YIV1DQ2Ez4HS1Faqo
 uitGKsIWlzyaGUD1inFh3Qc7zARS12jFlDsTMclROlHVI1Imwc1dGWBsMlobezBbe9Te
 py+FxPItzvWUf9RAzG3MqzljtLk1G6oXLDvBgYPcq1n7vnE/hQvZLS5ibMuDW6D8w2Ed
 N6AGX1MhD6v8/sKrbPaAoXhZHdpxzJbjg0/x1jmWlw5zBC35oFMgU+fyFaUIPWbAYbzt
 fl7zHmNdj5KTNQk94YKVh6twkR34uqnQ2O0qIsXxcwd6pP4jgvVY1FQgPZuUdDwARIO2
 YmOQ==
X-Gm-Message-State: AOAM5327Fa/ItNtxm3Z1TeBirgcpb+P0iJQH6bogEQUL5n+EeIUoboz0
 wJr1onJmUdTOa6dP24UiXrb0UmMJQwA=
X-Google-Smtp-Source: ABdhPJxamCeB0iPYU/ZkbZrsUiWhWBbc7O2olAxinE1GCkUr0waErRM9iwjrogt6GWcIJQBtaEf3MA==
X-Received: by 2002:a1c:2985:: with SMTP id p127mr3939966wmp.165.1618503327869; 
 Thu, 15 Apr 2021 09:15:27 -0700 (PDT)
Received: from [192.168.0.6] ([46.251.119.176])
 by smtp.googlemail.com with ESMTPSA id b206sm3657895wmc.15.2021.04.15.09.15.26
 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
 Thu, 15 Apr 2021 09:15:27 -0700 (PDT)
Subject: Re: bug#47799: 28.0.50; Default `project-files' implementation
 doesn't work with quoted filenames
To: Philipp Stephani <p.stephani2@HIDDEN>, 47799 <at> debbugs.gnu.org
References: <wvr45z0nmzn0.fsf@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
Message-ID: <658a3e61-9511-5502-43de-8f591cec7387@HIDDEN>
Date: Thu, 15 Apr 2021 19:15:25 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
 Thunderbird/78.7.1
MIME-Version: 1.0
In-Reply-To: <wvr45z0nmzn0.fsf@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 47799
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.5 (/)

Hi Philipp,

On 15.04.2021 16:43, Philipp Stephani wrote:
> emacs -Q -batch -l project -eval '(print (project-files (quote (transient . "/:/"))))'
> 
> ("find: ‘/:/’: No such file or directory
> ")
> 
> Note that the error message is listed as a file.
> 
> 1. `project-files' should unquote local filenames before passing them to
>     `find'.
> 
> 2. `project-files' should check for errors returned from `find'.

Would you like to propose a patch?

I don't really understand the file quoting feature.

Is project--files-in-directory supposed to unquote? Should 
project--vc-list-files do that as well?

Does read-directory-name return quoted names when needed? Can 
locate-dominating-file return one?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 15 Apr 2021 13:44:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 15 09:44:03 2021
Received: from localhost ([127.0.0.1]:36880 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lX2Hr-00014z-4k
	for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 09:44:03 -0400
Received: from lists.gnu.org ([209.51.188.17]:57478)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <p.stephani2@HIDDEN>) id 1lX2Ho-00014S-00
 for submit <at> debbugs.gnu.org; Thu, 15 Apr 2021 09:44:01 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:45784)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <p.stephani2@HIDDEN>)
 id 1lX2Hn-00056N-J7
 for bug-gnu-emacs@HIDDEN; Thu, 15 Apr 2021 09:43:59 -0400
Received: from mail-ed1-x52a.google.com ([2a00:1450:4864:20::52a]:39879)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <p.stephani2@HIDDEN>)
 id 1lX2Hg-0000jO-Gd
 for bug-gnu-emacs@HIDDEN; Thu, 15 Apr 2021 09:43:58 -0400
Received: by mail-ed1-x52a.google.com with SMTP id g17so27404983edm.6
 for <bug-gnu-emacs@HIDDEN>; Thu, 15 Apr 2021 06:43:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:subject:date:message-id:mime-version
 :content-transfer-encoding;
 bh=+p5TRMOueURhJrpaJNi1WQdxx0a78PVIRvrGhp4woP0=;
 b=gka0maP8GexCvDzYO6ILGlrpOYit0NwTLmrbvBNAm2ufvMT/3pHcWL8aIJ/baxjuZI
 p2g2Pxl1jUEI/JuEo+QM3GCipLmR1hTrXP8TDewplZbVA9A8kRPquRHUV6UbizG6tjCx
 GTnoP++qMjOhtzUDQpGpv57ByeGc/kQwQ0LsLR/xK7R8d/RJVdvq4M4HyaihmaZgDarL
 1N1Eru/yA7kj8+igQIqJrLWyka87HhjVUemLoiWrAL2B6OUIqBDKa9SFL1X6UPbEoXAk
 G8MJrnN4wcTQ8TYSK9w/QqHcjQPYPZBc/MjCBQIVGGlaFI0EyfJci7NRA81wXNOhmDyy
 fNnA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:subject:date:message-id:mime-version
 :content-transfer-encoding;
 bh=+p5TRMOueURhJrpaJNi1WQdxx0a78PVIRvrGhp4woP0=;
 b=f6WYIwWxNCBFjH4HQDNQPeSK2DV2LxlUOHw/rVXBuLCw5LKB8kb4uGrz0fu2twCqRZ
 +5XKGv7HC+uSHtAaRGFE8b+W7Y5kkcEIdpvLNcGC12D4kZBd4DJPUvg9KmjoEwW0eN/C
 eAVW7LGIt8M00ZrNfxP2ihEQ4MuNu9H99P+dJdn8W7/upiW9RI5ivdsZdlz+fZlpEQnq
 IJ9fjGeV3mwsplR2XlPo/vvByaDY0oyc+n15ifIInByKjMOdEl9WIdMln2CkGCbjbQSH
 5eE8kDWRaz6wrNnlPZNl4rVEFfnQQ1D3Y1lLJJHuhzkk92YvvjMisyR9gFAXaz5raGHx
 ar7g==
X-Gm-Message-State: AOAM530w/PYj7v3IsgLU8V+E5iRwcsQIYNVwswpyXGOPy/xTW9ZMhgS5
 a8l5sv114JjBKxTjyD94NXN51cxbHtOTjg==
X-Google-Smtp-Source: ABdhPJx5Zf8XTD5YlX0miMj9RjC8oHYCl9gjqSuwqkNwev63RfrDOEDMADikWH43Ul4C7OT/XJqRdw==
X-Received: by 2002:a05:6402:cbb:: with SMTP id
 cn27mr4301505edb.296.1618494228730; 
 Thu, 15 Apr 2021 06:43:48 -0700 (PDT)
Received: from phst (p57997ce8.dip0.t-ipconnect.de. [87.153.124.232])
 by smtp.gmail.com with ESMTPSA id j6sm2508210edw.73.2021.04.15.06.43.48
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 15 Apr 2021 06:43:48 -0700 (PDT)
From: Philipp Stephani <p.stephani2@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 28.0.50; Default `project-files' implementation doesn't work with
 quoted filenames
Date: Thu, 15 Apr 2021 15:43:47 +0200
Message-ID: <wvr45z0nmzn0.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=2a00:1450:4864:20::52a;
 envelope-from=p.stephani2@HIDDEN; helo=mail-ed1-x52a.google.com
X-Spam_score_int: -17
X-Spam_score: -1.8
X-Spam_bar: -
X-Spam_report: (-1.8 / 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_ENVFROM_END_DIGIT=0.25, 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.1 (-)
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.1 (--)


emacs -Q -batch -l project -eval '(print (project-files (quote (transient .=
 "/:/"))))'

("find: =E2=80=98/:/=E2=80=99: No such file or directory
")

Note that the error message is listed as a file.

1. `project-files' should unquote local filenames before passing them to
   `find'.

2. `project-files' should check for errors returned from `find'.


In GNU Emacs 28.0.50 (build 74, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, =
cairo version 1.16.0)
 of 2021-04-15
Repository revision: 31f8ae53beb9bada58750160c1bf7f867ecd442e
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Debian GNU/Linux rodete

Configured using:
 'configure --enable-gcc-warnings=3Dwarn-only
 --enable-gtk-deprecation-warnings --without-pop --with-mailutils
 --enable-checking=3Dall --enable-check-lisp-object-type --with-modules
 'CFLAGS=3D-O0 -ggdb3''

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBSELINUX LIBSYSTEMD MODULES NOTIFY INOTIFY PDUMPER PNG SECCOMP SOUND
THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $LC_TIME: en_DK.utf8
  value of $LANG: en_US.utf8
  value of $XMODIFIERS: @im=3Dibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc dired dired-loaddefs rfc822
mml mml-sec epa epg epg-config gnus-util rmail rmail-loaddefs time-date
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils phst skeleton derived edmacro kmacro pcase ffap thingatpt url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json map url-vars mailcap rx
gnutls puny dbus xml subr-x seq byte-opt gv bytecomp byte-compile cconv
compile text-property-search comint ansi-color ring cl-loaddefs cl-lib
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 68419 8560)
 (symbols 48 8313 1)
 (strings 32 24255 1847)
 (string-bytes 1 785382)
 (vectors 16 14967)
 (vector-slots 8 194817 4757)
 (floats 8 26 32)
 (intervals 56 223 0)
 (buffers 992 11))

--=20
Google Germany GmbH
Erika-Mann-Stra=C3=9Fe 33
80636 M=C3=BCnchen

Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Halimah DeLaine Prado
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg

Diese E-Mail ist vertraulich.  Falls Sie diese f=C3=A4lschlicherweise erhal=
ten haben
sollten, leiten Sie diese bitte nicht an jemand anderes weiter, l=C3=B6sche=
n Sie
alle Kopien und Anh=C3=A4nge davon und lassen Sie mich bitte wissen, dass d=
ie E-Mail
an die falsche Person gesendet wurde.

This e-mail is confidential.  If you received this communication by mistake,
please don=E2=80=99t forward it to anyone else, please erase all copies and
attachments, and please let me know that it has gone to the wrong person.




Acknowledgement sent to Philipp Stephani <p.stephani2@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#47799; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sun, 16 May 2021 13:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.