Re: C++ pushback

Jan-Benedict Glaw
2006-04-26T20:25:36Z

[-- Attachment #1: Type: text/plain, Size: 1972 bytes --]

On Wed, 2006-04-26 13:09:38 -0700, Linus Torvalds <torvalds@osdl.org> wrote:
> On Wed, 26 Apr 2006, Jan-Benedict Glaw wrote:
> > There's one _practical_ thing you need to keep in mind: you'll either
> > need 'C++'-clean kernel headers (to interface low-level kernel
> > functions) or a separate set of headers.
>
> I suspect it would be easier to just do
>
> extern "C" {
> #include <linux/xyz.h>
> ...
> }
>
> instead of having anything really C++'aware in the headers.

...but you need to admit that your left hand tried to make your right
hand not typing this, didn't it?

> - the language just sucks. Sorry, but it does.
> - some of the C features we use may or may not be usable from C++
> (statement expressions?)

In the constructor pathes, I expect higher stack usage than we now
have.

> - a lot of the C++ features just won't be supported sanely (ie the kernel
> infrastructure just doesn't do exceptions for C++, nor will it run any
> static constructors etc).

So what actually can be made useable (and what actually makes sense):

* Classes with public and private funct^Wmembers, constructors.
* Namespaces? Don't think they're all _that_ useful for us.
* Static constructors probably won't fly.

> Anyway, it should all be doable. Not necessarily even very hard. But I
> doubt it's worth it.

I guess if somebody has a large portion of well-separated C++ code
(eg. a complete and complex filesystem), it would be easier to write
some glue code to "run" the C++ code with the kernel.

Though it would be even easier to use FUSE's bindings:-)

MfG, JBG

--
Jan-Benedict Glaw jbglaw@lug-owl.de . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
für einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]