public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Chiheng Xu <chiheng.xu@gmail.com>
To: Basile Starynkevitch <basile@starynkevitch.net>
Cc: Ian Lance Taylor <iant@google.com>, gcc@gcc.gnu.org
Subject: Re: adding destroyable objects into Ggc
Date: Wed, 19 Oct 2011 06:04:00 -0000	[thread overview]
Message-ID: <CAPOVtOvJ74c2rHx5JSkUjo8HGrHnnhBdAq8O8bf-e=FeSQrQFw@mail.gmail.com> (raw)
In-Reply-To: <20111018191350.470cd6b1cd291373d5ff3f2c@starynkevitch.net>

[-- Attachment #1: Type: text/plain, Size: 2313 bytes --]

On Wed, Oct 19, 2011 at 1:13 AM, Basile Starynkevitch
<basile@starynkevitch.net> wrote:
>
> Historically, it was the opposite: I do recognize the importance of garbage collection,
> and because of the importance of Ggc in GCC, I designed MELT garbage collection above Ggc.
>
>
> My strong belief is that any *big* compiler needs some automated way to deal with memory
> (including circular references, which auto_ptr is not very happy about). It can be Ggc (I
> am not very happy of it) or something else.
>
> But again, if many people (not me Basile) believe that Ggc is useless, why is it not
> disappearing from the GCC trunk?
>
> And in my perception, auto_ptr are a poor man's way of implementing a garbage collection,
> it is not a way to avoid it.
>

It seems that this thread needs some balance.

Basile, I completely agree with you.

I recommend people interested in automatic dynamic memory management
to read this book:
Garbage Collection: Algorithms For Automatic Dynamic Memory
Management(Richard Jones,1996)

The importance of garbage collection in large software project and why
reference counting based solution is inefficient  and can't be  good
general "garbage collection" mechanism is clearly explained.


As a non-compiler developer, I want to share my experience in studying
 GCC's source code.
When I first read GCC's source code several years ago, I was totally
confused by the GGC markers here and there.
Basically, I just don't understand their precise meaning. And I'm
afraid I don't know how to add them.
My source code analyzer(a proprietary software on Windows) was also
confused/poisoned by the GGC markers.

The result is that I crafted a script that can remove nearly
all(99.9%) GGC markers in GCC source tree, then my source code
analyzer and I were both happy. I also attach the scripts.

When not seeing the GGC markers,  my brain is much relaxed.  I can be
more focused on the logic of compiler, don't worry about memory
management issues. In this way, I found GCC's source code was not that
horrible.  It turned out to be simple and easy to understand
"suddenly".

My point is that, when a programmer don't need to worry about memory
management issue,  his/her productivity is maximized.


--
Chiheng Xu

[-- Attachment #2: gcc_clean_scripts.tar.bz2 --]
[-- Type: application/x-bzip2, Size: 2143 bytes --]

  parent reply	other threads:[~2011-10-19  5:22 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-18 16:35 Basile Starynkevitch
2011-10-18 16:43 ` Duncan Sands
2011-10-18 16:53   ` Basile Starynkevitch
2011-10-18 17:11 ` Ian Lance Taylor
2011-10-18 17:14   ` Gabriel Dos Reis
2011-10-18 17:20   ` Basile Starynkevitch
2011-10-18 17:36     ` Ian Lance Taylor
2011-10-18 17:41   ` Basile Starynkevitch
2011-10-18 17:50     ` Ian Lance Taylor
2011-10-18 17:53       ` Basile Starynkevitch
2011-10-18 18:03         ` Jonathan Wakely
2011-10-18 18:11         ` Ian Lance Taylor
2011-10-18 19:41           ` Basile Starynkevitch
2011-10-18 20:52           ` Gabriel Dos Reis
2011-10-18 19:50         ` Gabriel Dos Reis
2011-10-18 23:11           ` Basile Starynkevitch
2011-10-19  0:49             ` Jonathan Wakely
2011-10-18 19:46     ` Gabriel Dos Reis
2011-10-19  6:04     ` Chiheng Xu [this message]
2011-10-19  6:08       ` Basile Starynkevitch
2011-10-19  6:43         ` Chiheng Xu
2011-10-19  6:12       ` Gabriel Dos Reis
2011-10-19  6:17         ` Basile Starynkevitch
2011-10-19  6:22         ` Chiheng Xu
     [not found]         ` <20111019080021.4e1acb3687fc8ceacc2fd7a3@starynkevitch.net>
     [not found]           ` <CAAiZkiB-aXfE8MyY_S6YvecdxgsBnuBHp3JDWx4kirVkQx8w+A@mail.gmail.com>
2011-10-19  7:41             ` Gabriel Dos Reis
2011-10-19  7:43             ` Basile Starynkevitch
2011-10-19 12:14               ` Gabriel Dos Reis
2011-10-19 13:31                 ` Duncan Sands
2011-10-19 22:19                   ` Jonathan Wakely
2011-10-19 15:06         ` David Malcolm
2011-10-20  6:03       ` Lawrence Crowl
2011-10-20  8:29         ` Basile Starynkevitch
2011-10-20  8:37           ` Marc Glisse
2011-10-20  8:38             ` Basile Starynkevitch
2011-10-20 11:57               ` Marc Glisse
2011-10-20 12:10                 ` Basile Starynkevitch
2011-10-20 15:34                   ` Marc Glisse
2011-10-21  9:03                     ` Basile Starynkevitch
2011-10-21 12:24                       ` Marc Glisse
2011-10-21 12:28                       ` Richard Guenther
2011-10-21 23:53                         ` Basile Starynkevitch
2011-10-22  1:31                           ` Gabriel Dos Reis
2011-10-22 11:20                             ` Basile Starynkevitch
2011-10-23 13:50                           ` Richard Guenther
2011-10-19 15:56     ` Laurynas Biveinis
2011-10-19 16:54       ` Basile Starynkevitch
2011-10-20  8:52         ` Laurynas Biveinis
2011-10-20 12:27           ` Basile Starynkevitch
2011-10-20 12:51             ` Andrew Haley
2011-10-20 14:07               ` Basile Starynkevitch
2011-10-20 13:10             ` Duncan Sands
2011-10-20 14:52               ` Torvald Riegel
2011-10-20 15:14             ` Jonathan Wakely
2011-10-20 15:26               ` Richard Guenther
2011-10-20 17:23               ` Basile Starynkevitch
2011-10-20 18:38                 ` Jonathan Wakely
2011-10-18 18:39 ` Jonathan Wakely
2011-10-18 18:48   ` Basile Starynkevitch
2011-10-18 19:42     ` Jonathan Wakely
2011-10-18 19:45       ` Basile Starynkevitch
2011-10-18 22:43         ` Gabriel Dos Reis
2011-10-18 21:24     ` Gabriel Dos Reis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPOVtOvJ74c2rHx5JSkUjo8HGrHnnhBdAq8O8bf-e=FeSQrQFw@mail.gmail.com' \
    --to=chiheng.xu@gmail.com \
    --cc=basile@starynkevitch.net \
    --cc=gcc@gcc.gnu.org \
    --cc=iant@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).