Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Feb 2009 20:53:33 +0200
From:      Andriy Gapon <avg@icyb.net.ua>
To:        Marcel Moolenaar <xcllnt@mac.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: weeding out c++ keywords from sys/sys
Message-ID:  <499864AD.8070105@icyb.net.ua>
In-Reply-To: <8EF8771C-76D8-4556-96B2-B97B35573CBD@mac.com>
References:  <4995BB1B.7060201@icyb.net.ua> <20090213231513.GA20223@duncan.reilly.home> <4997F105.5020409@icyb.net.ua> <499811DF.6030905@incunabulum.net> <20090215151318.0d17bfb9@ernst.jennejohn.org> <499835BE.3000705@gmx.de> <8EF8771C-76D8-4556-96B2-B97B35573CBD@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
on 15/02/2009 19:50 Marcel Moolenaar said the following:
> 
> On Feb 15, 2009, at 7:33 AM, Christoph Mallon wrote:
>> More robust error handling and less tedious resouce management 
>> directly come to mind:
>> Just look at normal C functions which allocate resources and have 
>> multiple points which can fail. They are the usual mess of if()s, goto 
>> error and lots of cleanup code. Further all this code looks pretty 
>> much the same in several modules. In C++ you write the resource 
>> handling code once (constructors/destructors) and then you cannot 
>> forget to clean up, because thanks to scoping and defined life ranges 
>> it happens automatically.
> 
> While on the surface this looks better, under the hood
> it's just the same. Worse in most likelihood, because
> with C the programmer writes the logic that is known to
> be needed (assuming no bugs). With C++ it's the compiler
> that generates code that handles all possible scenarios,
> and goes beyond what is strictly needed -- as such the
> cost tends to be higher, even when there are no errors
> or exceptions.

Then maybe we should stick to assembly? Just thinking about how I have 
two use two operators "/", "%" where I can do with only one x86 assembly 
instruction makes me mad - not.

I.e. this is not to say that I am against assembly - there are many 
places in our kernel that would be plain impossible to code with C.
And not to say that I am against C. This is only to say that there are 
certain things that are much easier, and safer too, to code in C++ that 
in C. And that might be in kernel too.

> I'm not saying this is a problem. All I'm saying is that
> you move responsibility from the programmer to the compiler
> and in general this comes at a (runtime_ cost. One we may
> very well accept, mind you...
> 


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?499864AD.8070105>