From: Andries Brouwer <aeb@veritas.com>
To: Tigran Aivazian <tigran@veritas.com>
Cc: rmk@arm.linux.org.uk, rusty@linuxcare.com.au,
linux-kernel@vger.kernel.org, Andries.Brouwer@cwi.nl
Subject: Re: [PATCH] removal of "static foo = 0"
Date: Sun, 26 Nov 2000 02:32:39 +0100 [thread overview]
Message-ID: <20001126023239.B7049@veritas.com> (raw)
In-Reply-To: <20001125211939.A6883@veritas.com> <Pine.LNX.4.21.0011252205500.768-100000@penguin.homenet>
In-Reply-To: <Pine.LNX.4.21.0011252205500.768-100000@penguin.homenet>; from tigran@veritas.com on Sat, Nov 25, 2000 at 10:27:15PM +0000
On Sat, Nov 25, 2000 at 10:27:15PM +0000, Tigran Aivazian wrote:
: Hello Andries,
Hi Tigran,
: ... I am quite free to _rely_ on this fact and will possibly do so.
Yes, you are. But some programmers have learned that it is a good
idea to code in a way that is informative to the programmer.
: > Tigran, you like to destabilize Linux.
:
: Oh, Andries, that is insulting. Surely you do not really mean that.
No insult intended.
It is just that if there is an abyss somewhere, I like to stay at least
a meter away from it. Someone else may think that one inch suffices.
I see you propose a lot of changes that yield a negligable advantage
and reduce stability a tiny little bit. That is pushing Linux in the
direction of this abyss. You notice that the view gets better, and I
get nervous.
You seem to have these strange ideas. I quoted you
: It is better for code to be smaller than to be slightly more fool-proof.
Here is a different one:
: I think that the check for inode->i_op == NULL in various vfs_XXX()
: functions is bogus, i.e. if it is NULL then it must be a bug in
: some filesystem's ->read_inode() method and therefore, instead of
: returning error to userspace we should immediately panic, since
: it is a kernel bug.
Does the kernel contain a bug? Panic! I don't think my alpha would
have gotten an uptime of 1198 days under that paradigm.
(I don't think you were serious, but still..)
[I am not so sure why i_op == NULL necessarily is a bug.
Sometimes a routine invents a dummy inode just because it is needed
in some calling convention, while nothing of this inode is used
except for example i_rdev. Maybe it does not occur today, in the
filesystems in the 2.4 kernel tree. But such checks: test i_op,
then test i_op->function, then call i_op->function() ensure
a local correctness. That is what I like.
Reading all filesystems in the kernel tree is what I don't like.
And there are many filesystems not in the kernel tree.]
This is not to debate this particular case - it is Al's business.
This is just an example where you want to sacrifice local correctness
and be satisfied with global correctness.
: "sense of measure"
Yes, well formulated!
But this was a communication to linux-kernel, not an attack.
It was meant to say two things, namely
(i) Source code is a communication to programmers and to the compiler.
It is a bad idea to optimize the communication towards the compiler
when that is detrimental to the communication towards programmers.
And (ii) locally correct code is more stable than code that is only
globally correct.
For me these are truisms, but when Rusty complained about loss of
information lots of people did not seem to understand what could be meant.
I took you as my victim because you always seem to take the point
of view that the code must be perfect, never mind the programmers,
and that it is a good idea to save a few instructions, never mind
local correctness. (And also because your old remark quoted above
still required a reaction.)
No offense intended.
Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2000-11-26 2:03 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-11-25 20:19 [PATCH] removal of "static foo = 0" Andries Brouwer
2000-11-25 21:07 ` Russell King
2000-11-25 21:29 ` Andries Brouwer
2000-11-26 1:19 ` Russell King
2000-11-25 22:11 ` Herbert Xu
2000-11-25 22:46 ` Andries Brouwer
2000-11-25 22:53 ` James A Sutherland
2000-11-25 23:55 ` Tim Waugh
2000-11-26 3:10 ` James A Sutherland
2000-11-26 10:37 ` Tigran Aivazian
2000-11-26 14:52 ` Philipp Rumpf
2000-11-28 0:01 ` Peter Samuelson
2000-11-27 4:00 ` Michael Meissner
2000-11-25 23:02 ` Jeff Garzik
2000-11-26 2:08 ` Andries Brouwer
2000-11-26 9:22 ` Martin Mares
2000-11-25 23:33 ` Herbert Xu
2000-11-27 10:03 ` Helge Hafting
2000-11-27 20:33 ` Albert D. Cahalan
2000-11-27 22:57 ` Russell King
2000-11-29 1:46 ` Albert D. Cahalan
2000-11-29 3:21 ` Peter Samuelson
2000-11-29 7:25 ` Russell King
2000-11-25 22:27 ` Tigran Aivazian
2000-11-26 1:32 ` Andries Brouwer [this message]
2000-11-26 2:11 ` Georg Nikodym
2000-11-26 4:25 ` Alan Cox
2000-11-26 5:01 ` John Alvord
2000-11-26 5:10 ` Andre Hedrick
2000-11-26 6:22 ` Keith Owens
2000-11-26 6:28 ` Andre Hedrick
2000-11-26 10:43 ` Tigran Aivazian
2000-11-26 10:52 ` Tigran Aivazian
2000-11-24 7:47 ` Pavel Machek
2000-11-26 14:32 ` bert hubert
2000-11-26 10:52 ` Rogier Wolff
2000-11-26 14:13 ` Philipp Rumpf
2000-11-26 15:19 ` Georg Nikodym
2000-11-26 20:47 ` H. Peter Anvin
2000-11-27 21:12 ` Kai Henningsen
2000-11-26 6:21 ` Werner Almesberger
-- strict thread matches above, loose matches on Subject: below --
2000-11-26 15:15 Adam J. Richter
2000-11-26 17:53 Elmer Joandi
2000-11-26 18:36 ` Alexander Viro
2000-11-26 19:11 ` Elmer Joandi
2000-11-26 22:49 ` Rogier Wolff
2000-11-27 5:56 Adam J. Richter
2000-11-27 8:41 ` Werner Almesberger
2000-11-27 8:39 ` David S. Miller
2000-11-27 9:08 ` Werner Almesberger
2000-11-27 17:21 ` Andrea Arcangeli
2000-11-27 17:36 ` Michael Meissner
2000-11-27 19:06 ` Andrea Arcangeli
2000-11-27 19:34 ` Richard B. Johnson
2000-11-28 0:28 ` Andrea Arcangeli
2000-11-28 11:25 ` Horst von Brand
2000-11-28 3:10 ` kumon
2000-11-28 3:28 ` Andrea Arcangeli
2000-11-28 3:35 ` Alexander Viro
2000-11-28 4:15 ` Michael Meissner
2000-11-28 9:55 ` Andreas Schwab
2000-11-28 15:16 ` Andrea Arcangeli
2000-11-28 16:09 ` Andreas Schwab
2000-11-28 19:29 ` Andrea Arcangeli
2000-11-28 16:44 ` Michael Meissner
2000-11-27 21:27 ` Marcus Sundberg
2000-11-27 18:11 ` Richard B. Johnson
2000-11-27 18:01 ` Michael Meissner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20001126023239.B7049@veritas.com \
--to=aeb@veritas.com \
--cc=Andries.Brouwer@cwi.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=rmk@arm.linux.org.uk \
--cc=rusty@linuxcare.com.au \
--cc=tigran@veritas.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox