
Joel de Guzman wrote:
On 11/18/2011 2:09 PM, Robert Ramey wrote:
More to the point, if something like fusion is added to the standard and the interface is defined - is someone actually going to re-implement it? That would seem unbelievable to me.
FWIW, Fusion can be implemented without its current dependencies especially in the C++11 world. I've been contemplating such an exercise. Such a no-dependency library would rock in terms of compile time. Complexity shouldn't hurt either. IMO, the needed infrastructure was largely in part due to limitations of the language and difficulty in implementing certain constructs (e.g. result_of and type sequences to name two). I believe C++11 can simplify a lot of the current code.
I didn't mean to say it wasn't possilble to re-implement it. But who would want to do it? I'm currently enthralled with fusion. And you know I'm a fan of spirite. Frankly I'd prefer to see you working on the "next great thing" - whatever that might be than re-implementing fusion. But that's all really aside from my main concern. I'm really thinking of something quite different. My understanding is that the the C++ commitee defines the requirements that a C++ compiler must fulfill to be considered "conforming". On the face of it I would interprete this to mean that a compiler is "conforming" if it can parse text written in accordance with the standard and produce an executable which will produce the expected results. But some time ago, it seems that "conforming compiler" morphed into "conforming C++ developement system" where by a compiler isn't considered "conforming" unless it's delivered along with an implementation of the standard library. This raises a number of questions to me: a) if some company were to produce C++ compiler does he also have to produce a standard library implementation? If he does - that would be a huge barrier to entry for anyone wanting to make a new compiler. b) if somes delivers a compiler with out a standard library is this compiler considerd "non-conforming". c) can someone just attach a copy of boost and/or stllib and still call his compiler "conforming to the C++ standard"? d) doesn't adding libraries to the standard make it more difficult and expensive to produce and sell a "conforming" C++ compiler. Is this a good thing. Wouldn't adding hard to implement libraries like fusion make this problem (if it is a problem) worse? e) I question the priorities of the standards committee. I see lambdas as interesting, but really I can't imagine any of the customers I deal with every using them. (get other customers? - right). and this has to add complexity the the process of making a new C++ compiler. And a lot of commitee effort is spent on this. Meanwhile somethings create problems like issues raised by run time linking - (ODR violations, visibility, etc.) seem to get less attention - even though I would think they would be easier to address. Of course this is just me speaking as a lowly application developer. I see competition for C++ not as coming from Haskell (though this has some good ideas) but rather from Java and VisualBasic. C++ is harder to learn than I think it should be - and it keeps getting hard rather than easier. I would be extremely curious to know what compiler (real and potential) have to say about all this. Thanks for reading my rant. Robert Ramey