On Mon, Jul 07, 2008 at 05:03:59PM -0600, Brad Nicholes wrote: > > OK, let's go back and rehash. There were two proposals, 1) Removing the > "/C++" portion of the language label "C/C++". > The technical reason for rejecting this is basically that it doesn't solve > anything yet adds more confusion to the configuration of a module in the next > release.
This was r1490 and proposed in : http://www.mail-archive.com/ganglia-developers@lists.sourceforge.net/msg04389.html Was made of a simple documentation update removing the "C++" references in the code and changing the optional "language" directive to use "c" instead. I wasn't planning on adding the "C++" part back in the next release and no patch was ever shown doing so, that was only presented as an option because you were arguing that was the correct thing to do once "C++" support was added, even if you also contradicted yourself but then arguing that the "language" directive for DSO is not really meant to be interpreted literally to indicate which language was used once pointed out that you can now use "Objective C" and will be able to use any other language to build DSO in the future, as far as they can use the "C" interface exported by gm_metric.h either directly (like "C++" will do and "Objective C" does now) or indirectly. > However if we apply this patch for 3.1.1, it would then require a code > change for 3.1.2 when the second patch is applied. No if we just use (and document) this as a "C" interface instead dealing that way with any ambiguity and simplifying the code so that there are also no changes required in the future as more languages are used to generate compiled DSOs (as they are all irrelevant anyway since they all use the same interface) > 2) Make all of the changes to the source code both in gmond, module headers > and modules to support the C++ compiler. Not really, the second option corresponds to r1500 and was presented here : http://www.mail-archive.com/ganglia-developers@lists.sourceforge.net/msg04408.html Which just updates the documentation to remove any ambiguity and also the "language" directive for DSO (as it was meaningless anyway and no label is as good as an arbitrary meaningless one) Adding the "language" directive back for consistency as you argued (even if it goes against the code simplicity you mentioned originally) is OK, if it lets us get out of the current deadlock. Committed revision 1530 > The technical reason for not accepting this patch has already been discussed > on this thread. This is the third option, which I think we all agree is too risky, but that is all that is left if every attempt I made has been rejected with no counter proposals in code. It also has the disadvantage that it doesn't remove any ambiguities in the documentation leaving us open for a future "Objective C" developer asking for a code change just because his favorite language is not identified by the current one. > > As it is now, you can use the "C" gmond modular interface (which was labeled > > "C/C++") to write "C" modules or "Objective C" modules but "C++" is not > > supported yet. > > Correct. This can easily be noted in the README as a known issue that will > be fixed in 3.1.2 when the C++ backport proposal (#2) is accepted in the 3.1 > branch. In the meantime (which is a very short time), C++ is not supported > for developing a gmond module. When the C++ backport proposal is accepted > into 3.1.2 and 3.1.2 is released, the language label "C/C++" will be fully > supported and make complete sense to the user as well as the developer. except for the "Objective C" developer which will be building modules in 3.1.1 and wondering why "C++" is mentioned there if not supported while "ObjC" is not, even if it is working. > > There are 2 parts of it which seem to be confusing most : > > > > 1) the documentation and use of "C/C++" as a label for DSO modules is > > incorrect because technically speaking the interface exported by gm_metric.h > > is a "C" interface which can be used to build DSO modules in almost anything > > that can compile to it, including using it directly by "C", "Objective C" or > > "C++" (once the support is committed) source modules and because those other > > languages are mostly "C" compatible at the source level. > > So all we really need to do is give it a label. The easiest label to give it > that will be understood by both users and developers is "C/C++". why it is not "C"? (as on "C" interface or "C" bindings) > > 2) the documentation and use of "C/C++" is misleading because "C++" can't be > > used with it yet (until support is committed). > > > > the solution you propose only mitigates 2; the last patch I proposed > > mitigates both. > > Absolutely, however the last patch is too destabilizing for 3.1.1. This is directed to the wrong patch as explained above. Hopefully a new third proposal (based in r1530) could be used instead allowing us to continue without having to risk stability for the first release of 3.1 > >> Let's do what is necessary to get 3.1.1 out the door > > > > And I think we are getting closer, with the help of package maintainers and > > more people testing/using snapshots, at least to get a well supported beta > > out > > very soon, once all those last minute bugfixes that are still being worked > > out > > are backported or dropped. > > Actually I believe that we aren't just close, we are there. To be "there" we need to either commit or defer all known issues, otherwise releasing a package for testing won't be effective, and as of last Thursday there were patches being recently proposed for backport which were aimed (fairly or not) for this release as you can see by the following snippet : svn diff -c1503 STATUS Index: STATUS =================================================================== --- STATUS (revision 1502) +++ STATUS (revision 1503) @@ -128,3 +128,4 @@ http://bugzilla.ganglia.info/cgi-bin/bugzilla/show_bug.cgi?id=186 http://ganglia.svn.sourceforge.net/viewvc/ganglia?view=rev&revision=1480 +1: bernardli + bernardli: Why can't this patch be backported in the current version? > With the exception of a potential segfault issue that was identified and > proposed for backport, the Ganglia code is ready to go. ignoring the `gmond -m` failures with python modules, or the fact that fedora linux ppc64 won't build unless a patch is added (which can't be committed upstream or will break AIX like it did break amd64 BSD) > start a two week testing cycle towards an official release. Just to be > clear, the two weeks is not a hard deadline. What it means is that if > there are no showstopper issues found within the two weeks, then we release > the candidate. If a showstopper issue is found and resolved, then roll > the next RC and the two week time window restarts. 2 weeks might be a little optimistic, specially considering how long it takes to decide something as simple as the language label to use for DSO compiled modules, but also by the fact that getting ganglia setup in a small cluster and exercised enough (including building some modules) will take more than that, resulting in potentially show stopper issues found after the release (like the segfault you refer to, and that took Daniel, who is an exceptionally dedicated tester, more than 1 week to find). Getting packages to use for testing with a stable beta would help easy the process and hopefully get us more coverage, but I would argue that our testing cycles are closer to 4 weeks than to 2, and we won't be able to get any testers unless we seriously freeze the bugfix/features stream and are fully dedicated getting all reported issues fixed). Carlo ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Ganglia-developers mailing list Ganglia-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ganglia-developers