Re: Would I be violating the GPL?

From: Nix
Date: Wed Nov 02 2005 - 12:26:54 EST


On Wed, 2 Nov 2005, linux-os@xxxxxxxxxxxx announced authoritatively:
> 2. New and delete are a bitch.

s/a bitch/trivial/

they're wrappers around the appropriate kernel memory allocators.

> 3. Link will fail because of the hidden stuff C++ needs that it
> can't find. Okay, just generate some dummy symbols in asm,
> all pointing to the same junk.

Obviously if you try using EH it will always crash hard. That
would be really stupid.

> 4. Once you got it to load, gigantic stack usage will crash.

Er, C++ does not imply `gigantic stack usage'.

However, C++ *will* be discomfited by `struct class', and unless you
want to rule out use of sysfs you're going to have to use it at some
point. And *that* is a bit of a killer unless you want to write half
your app in C and half in C++, which is getting a bit silly.

> So much for C++. Just use C. He probably didn't remember that
> it's a simpler variant.

It's a quite different language which happens to share a lot of ancestry
with C, and which happens to make link-time compatibility with C fairly
easy. Therefore it looks fairly similar; but it is *not* that similar,
not any more. Good C code and good C++ code look utterly different,
and good C++ code probably has no place in the kernel (making, as it
does, heavy use of the templated standard C++ library).

But, no, it doesn't belong in the kernel. (If you're writing a
filesystem, though, filesystem drivers in C++ --- or, for that matter,
Perl, Java or Haskell --- are quite practicable, thanks to the merging
of FUSE.)

--
`"Gun-wielding recluse gunned down by local police" isn't the epitaph
I want. I am hoping for "Witnesses reported the sound up to two hundred
kilometers away" or "Last body part finally located".' --- James Nicoll
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/