bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#65491: [PATCH] Improve performance allocating vectors


From: Paul Eggert
Subject: bug#65491: [PATCH] Improve performance allocating vectors
Date: Sun, 17 Sep 2023 08:22:01 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1

On 2023-09-16 22:18, Eli Zaretskii wrote:

It seems to me that in a 32-bit build with wide
ints just

   #define XUNTAG(a, type, ctype) ((ctype *) XLP (a))

should be enough, since XLP yields a 'void *', no?

That would complicate the code unnecessarily. Let's not go there. Patch P works as-is, and it's simpler. Let's do that instead.


what I
meant was to have a separate definition of XUNTAG for 32-bit builds
with wide ints (which could still remove the undefined behavior),

Yes, that's exactly what I suggest not to do. Why complicate the source code unnecessarily? And if we complicate it here, why not complicate it in similar ways in dozens of other places?

I went through a lot of this when adding support for --with-wide-int in the first place, years ago. When doing so, I strove to avoid having multiple copies of the code whenever I could. And I pretty much succeeded: there are only two WITH_WIDE_INT conditionals in lisp.h (and only three in other source files, all introduced relatively recently by others to work around compiler bugs, and all which should be rewritten without the #if).

It's an obvious win to have just one copy of the code instead of two, when one copy works and is just as efficient. As much as possible, --with-wide-int should not be a special case. We should not have "#ifdef WITH_WIDE_INT" scattered all over the place. Keep it simple.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]