GNU bug report logs -
#40407
[PATCH] slow ENCODE_FILE and DECODE_FILE
Previous Next
Reported by: Mattias Engdegård <mattiase <at> acm.org>
Date: Fri, 3 Apr 2020 16:11:01 UTC
Severity: normal
Tags: patch
Done: Mattias Engdegård <mattiase <at> acm.org>
Bug is archived. No further changes may be made.
Full log
Message #68 received at 40407 <at> debbugs.gnu.org (full text, mbox):
5 apr. 2020 kl. 15.39 skrev Eli Zaretskii <eliz <at> gnu.org>:
> I don't think I follow. We call code_convert_string_norecord, which
> invokes code_convert_string with NOCOPY set to 'false'. So all those
> users should NOT receive the same string as the argument, and I don't
> believe they expect that and can cope with it.
Actually they can, as far as I can tell. Have a look yourself.
> I don't think I understand your line of reasoning here. I don't think
> GC is relevant, and as long as we are talking about file names, the
> first null byte terminates it even though the Lisp string's length
> could be larger.
It is stated as a reason in Fexpand_file_name for working on copies of strings; see comments therein. But that is not really important in itself.
>> Given the limited scope of the change, would you agree to a backport of that to emacs-27?
>
> That'd be a mistake, I think. My reasoning goes like this: If I'm
> right that this bug was never seen, fixing it on emacs-27 will have no
> visible effect; and if I'm wrong, then we will break the release
> branch. The danger of breakage in the latter case is much more severe
> than the gain from the fix in the former case.
We do fix clear bugs on emacs-27 even when nobody complained about them, but you are right that it's not that important in this case. Let's leave it on master.
> I hope you now agree with me that we should not do this. The default
> should stay NOCOPY = false, and any caller that wants otherwise must
> explicitly request that by calling code_convert_string.
I disagree -- if the callers handle the situation safely, there is no reason not to to do the change, saving some consing. We do this sort of code improvement all the time; nothing special about this one.
Of course, if you prefer the scenic route, we could add {en,de}code_file_nocopy and replace {EN,DE}CODE_FILE calls one by one until they all are done, and arrive at essentially the same code.
This bug report was last modified 5 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.