Date: Thu, 21 Apr 2005 14:21:58 -0400 From: Aziz KEZZOU <opensource.enthousiat@gmail.com> To: Chuck Robey <chuckr@chuckr.org> Cc: hackers@freebsd.org Subject: Re: KLD module with C++ iostreams ? Message-ID: <37e1316605042111215c201be9@mail.gmail.com> In-Reply-To: <42670F63.4000901@chuckr.org> References: <37e1316605042019072b5d7a0e@mail.gmail.com> <5bbfe7d4050420191316a629b7@mail.gmail.com> <42670F63.4000901@chuckr.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> David Leimbach wrote: > > Interesting question. People usually have to implement the C++ > > runtime to be usable from within the kernel. Things like exceptions > > and "stdout" may not be defined in kernel space :) > > > > I'm not terribly familiar with how it works on FreeBSD but I know it > > took a special effort to get C++ support into linux. > > > > Dave > > > > On 4/20/05, Aziz KEZZOU <opensource.enthousiat@gmail.com> wrote: > > > >>Hi hackers, > >>I am wondering if I can use c++ iostreams inside the kernel ? > >>After all the code : cout << "Hello world!" << endl; > >>ends accessing the stdout just like : printf("Hello world!\n"); right ? >=20 > No, that's not true, all the iostreams stuff is totally independent. > The iostreams stuff is coming from some of the ugliest code in C++. > But, that's not the question, or at very least, it shouldn't BE the > question. There is ZERO need to bring in features from C++, all it will > do is to directly confuse the code base by greatly adding to the > complexity of the code, without giving anything like equivalent features. >=20 > Some very, very elegant work has been code, OO-ing the kernel code, > adding OO features, all without violating the C language code base. > Adding in C++ features over stdio stuff is so senseless, it's nearly > obscene. >=20 > If the gain at the end of the road was large enough, I wouldn't be > against it so stridently, but I see *so* little gain. >=20 > BTW, you know where the ugliest code in computer science today is: half > is in the actual implementation of the cstdio/template code, the other > half is the iostreams stuff. The fact that they energize some very > elegant code is causing many folks never to see the fact of the horrible > code lumps that exist out in the backyard. >=20 > >> > >>So if I could compile my KLD module with static linkage to libstdc++, > >>that should be ok, right ? > >> > >>Any one did or knows how to do this ? > >> Thank you guys for responding to my post. Certainly, it is not a good idea to use _all_ C++ stuff inside the kernel ; in the linux community a similar suggestion resulted in a big discussion of pros & cons. I was asking because I have a big portion of C++ code that I am planning to move inside the kernel. But, having compared the effort/time required to port C++ iostreams into the kernel and the effort/time required to get rid of iostreams , I think I will abandon this challenge for now ;-) Just to let you know "virtual methods" and "templates", among others, are supported inside the kernel... Greetings, -aziz
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37e1316605042111215c201be9>