Thread (40 messages) 40 messages, 7 authors, 2017-05-02

Re: [PATCH 1/5] add SWAP macro

From: Johannes Schindelin <hidden>
Date: 2017-02-01 11:39:27

Hi René,

On Tue, 31 Jan 2017, René Scharfe wrote:
Am 31.01.2017 um 13:13 schrieb Johannes Schindelin:
quoted
#define SIMPLE_SWAP(T, a, b) do { T tmp_ = a; a = b; b = tmp_; } while (0)
...
 uint32_t large;
 char nybble;

 ...

 if (!(large & ~0xf)) {
  SIMPLE_SWAP(char, nybble, large);
  ...
 }

i.e. mixing types, when possible.

And while I do not necessarily expect that we need anything like this
anytime soon, merely the fact that it allows for this flexibility, while
being very readable at the same time, would make it a pretty good design
in my book.
Such a skinny macro which only hides repetition is kind of attractive due to
its simplicity; I can't say the same about the mixed type example above,
though.

The fat version isn't that bad either even without inlining, includes a few
safety checks and doesn't require us to tell the compiler something it
already knows very well.  I'd rather let the machine do the work.
I am a big fan of letting the machine do the work. But I am not a big fan
of *creating* work for the machine.

So if you asked me what I would think of a script that, given a patch "in
mbox format", automatically fixes all formatting issues that typically
take up a sizable chunk of review time, I would say: yeah, let's get this
done! It would probably take away some fun because then reviewers could
bike-shed less, but I'd think that is a good thing.

If you asked me what my opinion is about a program you wrote that gathers
all the threads and sub threads of code^Wpatch reviews on the Git mailing
list, and cross-references them with public Git branches, and with Junio's
What's Cooking mail, and with the SHA-1s in `pu`: Great! That would
relieve me of a ton of really boring and grueling work, if the machine can
do it, all the better.

And if you ask me about adding a complex macro that adds a bunch of work
for the C compiler just to produce the same assembler code as a one-liner
macro would have produced much easier, I will reply that we could maybe
instead spend that time on letting the machine perform tasks that already
need to be done... :-)

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help