Another option to understand the magnitude of this fuck up is to have a look at today's chronological email list: <a href="https://lkml.org/lkml/2016/8/2/" rel="nofollow">https://lkml.org/lkml/2016/8/2/</a>
It's an interesting question as to which is more readable:<p><pre><code> -module_param(max_sets, int, 0600);
+module_param(max_sets, int, S_IRUSR | S_IWUSR);
</code></pre>
However, I'm missing context. Did someone at Intel really spam 1,285 patches without any prior discussion?
I can understand that for someone has no background or long term use of chmod(1) would need some effort to decipher what 0644 actually means. However, for people who are well versed in this aspect, the numerical code is much easier to parse.<p>This reminds me of constantly looking up j dict [0] before I could remember what each number means. J's foreign conjunction is certainly an extreme here, but it teaches me that what is easy to parse really depends on one's proficiency in the language.<p>[0] <a href="http://www.jsoftware.com/help/dictionary/dx001.htm" rel="nofollow">http://www.jsoftware.com/help/dictionary/dx001.htm</a>
The octal representation is such a deep-grained part of Unix on all levels (both C and shell) that replacing it is futile. These weird 0-prefixed octal constants will still be in common use a hundred years from now, for better and worse.<p>Also, it's not easy to argue that "S_IRUSR | S_IRGRP | S_IROTH" is any kind of readability improvement...
Linus is right because these are actually well known and easy to parse.<p>However, if instead of S_IRUSR|S_IWUSR (which I'd have to lookup up to parse correctly), it were possible to write "a-rwx"|"u+rw", it would be even easier to parse, without the need to memorize common octal numbers. In C, this could be achieved with the preprocessor, I believe, if you create a sufficiently smart CPP macro, especially since Linux is no stranger to heavy preprocessor use.
These numbers are almost hardwired in my brain and I am not even a kernel developer. I think most kernel developers should not need the help of these magic macros.
Why did each of those need to be a simple patch? Couldn't they be just one big patch, which would have been a little easier to read?<p>(kernel muggle here, mind)