[Geany-Devel] Let's move to C++98 - Re: Lets move to C99

Lex Trotman elextr at xxxxx
Sat Aug 31 23:37:17 UTC 2013


On 1 September 2013 00:05, Nick Treleaven <nick.treleaven at btinternet.com>wrote:

> On 29/08/2013 06:47, Lex Trotman wrote:
>
>> On the topic of exceptions, remember many STL operations and "new" can
>> throw.  Of course only throwing on uncorrectable errors like out of memory
>> is fine, it just exits the application.  Thats what will happen to a throw
>> from Scintilla in current Geany, its not something that will be
>> introduced.
>>   But as resource management moves to RAII, exceptions can be caught and
>> produce a more user friendly exit such as dumping buffers first.
>>
>
> OK. We might not want to use -fno-exceptions then, but maybe still avoid
> throwing ourselves.


I've never used -fno-exceptions, but reading the docs it doesn't sound like
it actually stops code throwing, just it doesn't create the data tables for
stack unwinding.  I presume therefore throws go direct to terminate(), do
not pass try, do not catch $200 (apologies to Monopoly :)



>
>
>  On using gtkmm, personally I think it is *way* better than the C interface
>> to GTK, but I don't know if it can be mixed with C GTK easily, and
>> changing
>> *everything at once* would be a big job.
>>
>
> I don't know either, but gtkmm is much better than GObject boilerplate.
> Although I don't think we need custom objects that often.


Funnily enough, since subclassing widgets is trivial with gtkmm, they start
to be used more often in my experience :)


>
>
>  Not sure why the RTTI affects the ABI, things visible in the ABI must be
>> POD to maintain C compatibility, there are much stricter limitations to
>> maintaining POD, like no non-trivial constructors etc.
>>
>
> OK, so a struct declaration in extern C would be compatible with the C ABI.


Yes, a pure struct, no constructors, destructors, no virtual member
functions etc is required by the standard to be the same layout as C.  The
extern "C" just stops the names being mangled so it will link with C.


>
>
>  We need to organise the resources first, doing things "to attract more
>> contributors" have so far failed, I wouldn't bet a change like this on
>> attracting more support (at least in the time the change is happening).
>>
>
> I think moving to C99 may at least avoid /deterring/ further contributions
> because of minor issues like C++-style comments and variable declaration
> after code (or at least in a for statement). I don't know if it makes a big
> difference, but the fewer unnecessary hurdles we make them jump through the
> better.


Yes, if those things are allowed.



>
>
>  Nick has offered that C++ "might" attract him to contribute more, I
>> "might"
>> have time at the end of my current contract, unless I get another quickly,
>> I guess Colomban is out, Matthew? anybody else?
>>
>
> I'm happy to manage/co-ordinate the transition to C++ (at a slowish pace),
> should we decide we want that.



Cheers
Lex


>
> ______________________________**_________________
> Devel mailing list
> Devel at lists.geany.org
> https://lists.geany.org/cgi-**bin/mailman/listinfo/devel<https://lists.geany.org/cgi-bin/mailman/listinfo/devel>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geany.org/pipermail/devel/attachments/20130901/8e8f1d78/attachment.html>


More information about the Devel mailing list