Prev: Exceptions
Next: C++ Concepts
From: Ismail Pazarbasi on 20 Sep 2005 20:13 > 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 21 Sep 2005 05:48
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! ] |