[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE
From: |
Mattias Engdegård |
Subject: |
bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE |
Date: |
Sun, 5 Apr 2020 17:03:49 +0200 |
5 apr. 2020 kl. 15.39 skrev Eli Zaretskii <eliz@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.
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, (continued)
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/04
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/04
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/04
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/04
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/04
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/05
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/05
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE,
Mattias Engdegård <=
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/05
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/05
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/06
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/05
bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, OGAWA Hirofumi, 2020/04/06
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/06
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/06
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/06
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Mattias Engdegård, 2020/04/06
- bug#40407: [PATCH] slow ENCODE_FILE and DECODE_FILE, Eli Zaretskii, 2020/04/06