At 04:37 PM 10/23/00 +0200, Marko Kreen wrote:
>*  This will _not_ be accepted into standard codebase.  Don't you
>    understand?  Making headers C++ compatible is the first tiny
>    step for doing modules in C++.  Yes, from driver/module
>    programmers perspective "they almost look same, and I think
>    C++ is cooler" they (C/C++) should be compatible, but from
>    kernel core's perspective they are whole different languages.

My pair-o-pennies(tm):

First, I agree that C++ has no place in an operating system kernel that has 
not been designed from the ground up with C++ in mind.  I worked on 
kernel-level operating systems written in Pascal and in a bastard version 
of Fortran, and I still carry the scars from those experiences.  (I do not 
have the same reservations about using other languages to write 
higher-level OS functions, that stuff that was called "middleware" in the 
Microsoft anti-trust case.)

I am also against wrapping all the headers in C/C++ compatibility wrappers 
unless there is a damn good reason to.  One valid reason, in my view, is to 
reduce the number of headers by reusing userland headers for kernel code 
where appropriate and useful -- observing the rule that you should never 
define anything more than once unless there is a damn good reason not to.

Where Marko and I part company is in the thought that removing C++ keywords 
from kernel headers is something to avoid.  I'm not talking about enabling 
C++ programming, I'm thinking that this may be forced by our tools on down 
the road.  More and more C compilers are interpreting C++ language syntax, 
and it won't be long before you won't be able to switch off the recognition 
of C++ stuff when compiling C.  After all, the compilers have to deal with 
the same bloat problem that we face in the kernel.

Linus has the final say, of course, but to suggest that any changes that 
remove name collisions between C and C++ be rejected out of hand has the 
potential for shooting ourselves in the foot.  I'd rather do it slowly 
*now* instead of having to do it wholesale when the tools force us.

Not to satisfy the C++ people.  To insure ourselves against obvious tool 
changes.

Satch

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to