Re: __attribute__ ((cleanup) patch



On Thu, 2012-10-18 at 11:19 -0400, Pavel Simerda wrote:

> Then why it wasn't good enough for Glib but is good enough for NetworkManager? Why

See this thread:
https://mail.gnome.org/archives/gtk-devel-list/2012-April/msg00003.html

Basically, because the GTK+ stack needs to compile with MSVC.
Unfortunately.  And Microsoft said they'll never implement anything
beyond C89, not even C99.

> I don't see a link to elaborate explanation and documentation? 

I'll add some more docs to libgsystem.  But the most important thing
to read first is 
http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html

> Success stories. 

Like I said, systemd and upstart both use it, and I completely rely on
it inside ostree (http://git.gnome.org/browse/ostree) which is 15,000
lines of GObject/C.  A tenth the size of NM, true, but also not a
trivial project.

We're using it in another currently Red Hat internal project.  I think
Ray is amenable to doing it for GDM.

Ultimately though, the only way the library is going to get better is
if people use it and help out.

> More
> information?

I did blog a bit ago about it too:

http://blog.verbum.org/2012/05/09/__attribute__-cleanup-or-how-i-came-to-love-c-again/

> That's exactly the problem I have with such quick inclusions without a proper discussion.

Fair enough.

> I'm not yet even convinced about this because of total lack of documentation to be
> found right away. 

Ok, I'll add some more.

> And I'm not convinced that switching to a non-standard programming
> language is the price to pay.

It's kind of a leap to call this a "non-standard programming language".
In reality of course, GLib (which NM relies on) is a *heavy* user of GCC
extensions.  Things like atomic intrinstics and statement expressions.
This is larger, too, but it's really just C with one feature from C++.

> So, I haven't changed my mind. I propose the following path:
> 
> 1) Revert

I don't oppose that.

> 2) Document including the reasons why this cannot be added to Glib but should be
> added to NetworkManager

Already done here.

> 3) Discuss

In progress =)




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]