Re: [PATCH 1/5] add SWAP macro
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 1, 2017, 11:39 UTC
- Message-ID
- <alpine.DEB.2.20.1702011228290.3469@virtualbox>
- In-Reply-To
- <676ed19c-0c4e-341e-ba30-1f4a23440088@web.de>
Hi René,
On Tue, 31 Jan 2017, René Scharfe wrote:
Show 28 quoted lines
> Am 31.01.2017 um 13:13 schrieb Johannes Schindelin:
>
> > #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