From: Ismail Pazarbasi on
> I seem to understand otherwise; that there is some interest in
> the standards committee for making it standard.

I mean, ISO/IEC 14882:2003

> GC is a concept, not an organization or a person

Of course :) GC I mean here is the CLR's garbage collector
implementation.

> So what's the relationship?

The relationship, which I did not clarify, is that the CLR's compacting
GC implementation does move objects. ISO C++, of course, doesn't say,
"do not move pointers". I think this is related to C standard, not C++
directly. Any compiler and run-time implementation that allows moving
objects, updating pointers would be fine - referring to my above
sentence again; neither of those talk/consider each other. Therefore,
the any implementation that does GC, may move objects, and still
compile and link ISO C++ code is OK. CLR, however, is a
language-neutral environment (!) that doesn't treat ISO C++ different.
So what people at VC++ team did is that they added "handles", right?

> I'm not sure if it is intentional, but you've subtly changed the
> argument.

Did I? No, I did not, at least it was not my intention to change the
subject. Well, I was addressing and I will (mostly) address to CLR's
compacting GC implementation - not the GC concept itself. Otherwise
would be wrong. Because there are very good GC implementations working
with C++.

Ismail


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: kanze on
Ismail Pazarbasi wrote:
> > I seem to understand otherwise; that there is some interest
> > in the standards committee for making it standard.

> I mean, ISO/IEC 14882:2003

Which is the work of the ISO standards committee. The ISO
standards committee is at least discussing garbage collection; I
would not be too surprised to find it in the next version of the
standard.

> > GC is a concept, not an organization or a person

> Of course :) GC I mean here is the CLR's garbage collector
> implementation.

I wondered at the time if there wasn't simply a problem with you
English. What you said at the start was: "GC is not [...] the
whole idea of GC [...]". Without articles. My understanding of
English isn't perfect either, but I think that without a "the"
in there, the normal interpretation is that you are talking
about garbage collection in general, and not a specific garbage
collection.

> > So what's the relationship?

> The relationship, which I did not clarify, is that the CLR's
> compacting GC implementation does move objects.

Which is somewhat different from what you said. Without the
"the", what you said appears to refer to garbage collection in
general. (In later statements, you did specify "the GC
implementation", and in those statements, it was clear, to me at
least, that you were talking about the CLI implementation, and
not garbage collection in general.)

> ISO C++, of course, doesn't say, "do not move pointers". I
> think this is related to C standard, not C++ directly. Any
> compiler and run-time implementation that allows moving
> objects, updating pointers would be fine - referring to my
> above sentence again; neither of those talk/consider each
> other. Therefore, the any implementation that does GC, may
> move objects, and still compile and link ISO C++ code is OK.
> CLR, however, is a language-neutral environment (!) that
> doesn't treat ISO C++ different. So what people at VC++ team
> did is that they added "handles", right?

I've no idea what the people at VC++ did -- VC++ doesn't run on
my Sparcs, so I only follow very distantly what they do. I do
know that I use garbage collection with g++, and it works
practically transparently. There are a few formally legal
constructs which may cause problems, but in practice, they
correspond to things I wouldn't want to do anyway. And there
are potentially some optimizations which a compiler could do
which would cause the garbage collector to break, but g++
doesn't do these, at least not in the code I've tested.

So in practice, I would say that C++ and garbage collection
actually work pretty well together.

> > I'm not sure if it is intentional, but you've subtly changed
> > the argument.

> Did I? No, I did not, at least it was not my intention to
> change the subject. Well, I was addressing and I will
> (mostly) address to CLR's compacting GC implementation - not
> the GC concept itself. Otherwise would be wrong. Because
> there are very good GC implementations working with C++.

I suspect that it is just a problem with your English. English
is a very subtle language, and even dropping a single word can
make a world of a difference. (But what language isn't like
that?) Now that you've made it clear that you don't mean
garbage collection in general, I've no problems with what you
say.

--
James Kanze GABI Software
Conseils en informatique orient?e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S?mard, 78210 St.-Cyr-l'?cole, France, +33 (0)1 30 23 00 34


[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

First  |  Prev  | 
Pages: 1 2 3 4 5
Prev: Exceptions
Next: C++ Concepts