On 19 November 2012 19:35, Basile Starynkevitch wrote:
> On Sun, Nov 18, 2012 at 06:37:29PM +0000, Jonathan Wakely wrote:
>> On 18 November 2012 18:25, Basile Starynkevitch wrote:
>> > On Sun, Nov 18, 2012 at 08:06:08AM -1000, NightStrike wrote:
>> >> On Sun, Nov 18, 2012 at 8:03 AM, Basile Starynkevitch
>> >> <bas...@starynkevitch.net> wrote:
>> >> > I really think that GCC need some form of garbage collector.
>> > [...]
>> >>
>> >> What's wrong with std::shared_ptr?
>> > How does it deal with complex circular references that every compiler has?
>> >
>> > I'm understanding that std::shared_ptr cannot realiably deal with circular 
>> > references
>> > (because it maintains essentially a reference counter).
>> >
>> > Could you explain me how std::shared_ptr deal with circular references?
>>
>> See http://gcc.gnu.org/ml/gcc/2011-10/msg00285.html
>
> Which mentions weak_ptr, which sort of prove my point.

Of course it mentions weak_ptr, that's the way shared_ptr is designed
to deal with cycles.

> You are suggesting that by appropriately and wisely mixing shared_ptr & 
> weak_ptr, some circular references could carefully be handled (with caution 
> and care).


> I'm thinking that using them reliably in GCC (a so big piece of software that 
> very few people understand it enough) is practically impossible for newbies, 
> because it requires them to understand very deeply all
> the possible interactions between other pieces of software and their own.

No it doesn't.

> I do know about shared_ptr & weak_ptr

Then why did you ask how shared_ptr deals with circular references?

> So my thinking is that, to lower the [huge] difficulties of enabling GCC 
> newbies to contribute robust code to GCC, a systematic approach like the one 
> given by gengtype+ggc, or the one possible with a real
> garbage collector, you don't put the burden of knowing exactly where to put 
> shared_ptr, where to put auto_ptr, where to put weak_ptr,

As I said in http://gcc.gnu.org/ml/gcc/2011-10/msg00285.html noone
except you has mentioned auto_ptr, stop attacking that strawman.


> onto the shoulders of GCC newbies. A garbage collector provides a systematic, 
> fail-proof, solutions (of course, even with a GC, memory leaks can happen; 
> but they are much less dangerous than sigsegv).

Why would you get a sigsegv using shared_ptr and weak_ptr?

This is another strawman.

> I believe that GCC needs to worry much more about attracting and keeping new 
> young talents, and systematic solutions (like the one provided by a garbage 
> collector) are much more appropriate
> than shared_ptr+weak_ptr tricks.

Please stop referring to anything you don't like/understand as "tricks".

> I am in favor of more generic and easy solutions, than ones which require a 
> deep knowledge of an huge existing undocumented or under-documented code base 
> (even if such approaches would slow down the compilation time a little bit; 
> so I would accept the 5% slowdown possible with Boehm GC).
>
> I notice (and I am not alone) that most young people attracted by working on 
> compilation of procedural languages are today lurking on LLVM, not on GCC.

Which doesn't use tricks like GC, as has been pointed out to you repeatedly.

> Using std::shared_ptr & std::weak_ptr reliably is not realistic for newbies 
> on a such large (and such under-documented) legacy code base as GCC.

Simply claiming it repeatedly doesn't make it true.

Reply via email to