
Christian, Inside the directx thread you asserted that there are things that ANTLR can do and Spirit can't. This met with some resistance, but I would like to take a different approach. Please post a working code example, along with rationale for why you want to do it, that shows something ANTLR can do, but Spirit can't. The goal is to move this out of the land of unsupported allegations, and into specific examples that can promote specific responses. My experience of Joel and Hartmut suggests that if you have any such real examples, they will use them as a basis for improving Spirit, a process which benefits everyone. If you display examples, and Hartmut and Joel (or anyone else) respond by providing working examples of how Spirit does that, too, then better information is propagated on the list, and again everyone benefits. In general, this is a better way to critique by comparison. Provide actual working code for the comparison, and there is far less room for misinterpretation of intent or conclusions. John

Hi John, This is somewhat unexpected. The reality for me and my workmates for years has been about boost::spirit: "boost is fun to look at" or "boost has useful things" or "boost::spirit is awesome, wait... what?" Point being that every real person, self included, that has ever tried to use boost::spirit has gone through three stages: 1. wow, it uses C++ static compile-time rules! 2. gee, this is slow to compile 3. ok, i can't use this. its too slow to compile and the error messages are pointless The reality is that Spirit tries to make C++ do something it shouldn't do. Joel and the others think otherwise. But yeah, the C++ *compiler* is not a language tool. It's a clever thing, but hey, the rest of us just think they are silly. Regards, Christian. On Wed, Jun 10, 2009 at 2:50 AM, John Phillips <phillips@mps.ohio-state.edu>wrote:
Christian,
Inside the directx thread you asserted that there are things that ANTLR can do and Spirit can't. This met with some resistance, but I would like to take a different approach.
Please post a working code example, along with rationale for why you want to do it, that shows something ANTLR can do, but Spirit can't.
The goal is to move this out of rthe land of unsupported allegations, and into specific examples that can promote specific responses. My experience of Joel and Hartmut suggests that if you have any such real examples, they will use them as a basis for improving Spirit, a process which benefits everyone. If you display examples, and Hartmut and Joel (or anyone else) respond by providing working examples of how Spirit does that, too, then better information is propagated on the list, and again everyone benefits.
In general, this is a better way to critique by comparison. Provide actual working code for the comparison, and there is far less room for misinterpretation of intent or conclusions.
John
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Christian, On Tue, Jun 9, 2009 at 10:04 AM, Christian Schladetsch < christian.schladetsch@gmail.com>
Point being that every real person, self included, that has ever tried to use boost::spirit has gone through three stages:
...
It's a clever thing, but hey, the rest of us just think they are silly.
I readily admit to being a lurker on this list and I have been watching this thread (and the DirectX thread) with some amusement. However, I consider myself a real person and I do not agree with your perspectives. Please speak only for yourself and perhaps your workmates, but don't presume to speak with the voice of the Boost and C++ communities at large. Jeremy

On Tue, Jun 9, 2009 at 4:04 PM, Christian Schladetsch <christian.schladetsch@gmail.com> wrote:
Hi John,
This is somewhat unexpected.
The reality for me and my workmates for years has been about boost::spirit: "boost is fun to look at" or "boost has useful things" or "boost::spirit is awesome, wait... what?"
Point being that every real person, self included, that has ever tried to use boost::spirit has gone through three stages:
1. wow, it uses C++ static compile-time rules! 2. gee, this is slow to compile 3. ok, i can't use this. its too slow to compile and the error messages are pointless
Hmmm - I can't be a real person, obviously.... I've used Spirit 1 on several projects with great success. I've also use Antlr on several projects with great success! What's the difference? Well, Antlr (for me) implies a reasonable amount of project overhead - building the runtime support, having additional files to configure, having to deal with the conceptual break between Antlr and C++. Spirit doesn't. It does mean a compile-time burden, true, but that burden is the reason I've used Antlr for larger grammars rather than Spirit.
The reality is that Spirit tries to make C++ do something it shouldn't do.
If that were true of Spirit, it would also be true of a lot of Boost.
Joel and the others think otherwise. But yeah, the C++ *compiler* is not a language tool.
It's a clever thing, but hey, the rest of us just think they are silly.
I'm sorry, but name calling like that isn't warranted, especially when you are asserting that your opinion is universally held, when I think you'll find it's not.
Regards, Christian.
Stuart Dootson

Christian Schladetsch wrote: On Tuesday, June 09, 2009 11:04 AM
The reality for me and my workmates for years has been about boost::spirit: "boost is fun to look at" or "boost has useful things" or "boost::spirit is awesome, wait... what?"
[snip]
The reality is that Spirit tries to make C++ do something it shouldn't do. Joel and the others think otherwise. But yeah, the C++ *compiler* is not a language tool.
It's a clever thing, but hey, the rest of us just think they are silly.
Wow! You began by asking for Boost support of a DirectX support library. You stated that your library idea needed Boost's clout to gain widespread use. When told by numerous people that they perceived it to be outside Boost's scope, you pushed back -- hard. Now you suggest that two principal Boosters are silly and, together with them, imply those that like Spirit to be likewise silly. I for one intend to read or respond to no more of your posts. Your words clearly indicate that don't want to be part of this community, so you are wasting my time. _____ Rob Stewart robert.stewart@sig.com Software Engineer, Core Software using std::disclaimer; Susquehanna International Group, LLP http://www.sig.com IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.

Hi Robert,
I for one intend to read or respond to no more of your posts. Your words clearly indicate that don't want to be part of this community, so you are wasting my time.
I was asked for my opinion of Spirit. I think it's fine, but I also think that the C++ compiler was not meant to be a language tool. Disregard me as you wish, Regards, Christian.

Christian Schladetsch wrote:
Hi Robert,
[snip]
Regards, Christian. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
OK everyone. I'm making an attempt to keep this thread from being hijacked back into arguments without examples. Lets try to stick to real, working code examples as the basis for any arguments. If you wish to have a thread for other arguments, feel free to start it for yourself. John

Hi John, Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before you can post on this thread". Christian.

Christian, On Tue, Jun 9, 2009 at 11:22 AM, Christian Schladetsch < christian.schladetsch@gmail.com> wrote:
Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before you can post on this thread".
How about start by posting your ANTLR code and let someone who uses Spirit post some code that performs a similar function. Or you could explain specifically what ANTLR does that Spirit does not do, which I don't think has shown up yet. Saying things like "Spirit doesn't do everything that ANTLR does" doesn't really cut the mustard. Jeremy

attached, but raw and with edits or prep. On Wed, Jun 10, 2009 at 4:31 AM, Jeremy Day <jeremy.day@gmail.com> wrote:
Christian,
On Tue, Jun 9, 2009 at 11:22 AM, Christian Schladetsch < christian.schladetsch@gmail.com> wrote:
Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before you can post on this thread".
How about start by posting your ANTLR code and let someone who uses Spirit post some code that performs a similar function. Or you could explain specifically what ANTLR does that Spirit does not do, which I don't think has shown up yet. Saying things like "Spirit doesn't do everything that ANTLR does" doesn't really cut the mustard.
Jeremy _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Christian Schladetsch wrote:
Hi John,
Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before you can post on this thread".
Christian.
I apologize for any misunderstanding on this, but that is not what I am requesting. I request that you post the code that you did make (along with some rationale for the design), and that you claim cannot be made in Spirit. I think you did at least part of that in a different post, but I haven't looked at your attachments, yet. I'm also not the best one to look at it, since I lay no claim to being an ANTLR expert, I just wanted to get the discussion onto some potentially useful track. John

Hi John, I did all you asked. I posted my ANTLR grammars, lexer, parser and AST tree. Not my fault you can't find them. I'd do it again now, but it would be a double insult. Regards, Chiristian.
Hi John,
Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before you can post on this thread".
Christian.
I apologize for any misunderstanding on this, but that is not what I am requesting. I request that you post the code that you did make (along with some rationale for the design), and that you claim cannot be made in Spirit. I think you did at least part of that in a different post, but I haven't looked at your attachments, yet. I'm also not the best one to look at it, since I lay no claim to being an ANTLR expert, I just wanted to get the discussion onto some potentially useful track.
John
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

I did all you asked. I posted my ANTLR grammars, lexer, parser and AST tree.
Not my fault you can't find them. I'd do it again now, but it would be a double insult.
Christian, I don't believe any insult was intended. Can everyone involved please try and keep this discussion civil and to the merits of ANTLR vs Spirit, Thanks, John.

Christian, Please excuse for the off-topic post.
I did all you asked. I posted my ANTLR grammars, lexer, parser and AST tree.
Not my fault you can't find them. I'd do it again now, but it would be a double insult.
Please allow to express my opinion on your behavior here. I think I'm old and experienced enough to be allowed to express myself. The general attitude you're exposing on this list is fairly aggressive. You might have reasons for this, but please be aware that this is very unusual for this forum. We try to be moderate in our expressed opinions, valuing and carefully judging any arguments and facts presented by others. As the past of this thread (and the direct-x thread) shows, many people will react to your kind of behavior by just ignoring you. This is mainly because this is a volunteer effort and people contributing see no reason to put themselves through this type of almost insulting dispute. IIUC, your goal is to convince the Boost community to accept your work as a Boost library. Nothing wrong with that, really. I've been through that before. But I have the feeling you won't get a lot of traction amongst the Boost people by not be willing to think about what other people have to say, by ill-reading their responses and by trying to make your point using demagogic techniques. I presume you're very young, because otherwise you wouldn't have the general attitude of being the only person in the world knowing stuff. Believe me, as you get older you will learn to accept that other people are as bright as you are, even if they have a different view. So I humbly ask you to consider my advice to be more restrained in the way you're answering questions, to read others responses more carefully, and, sometimes, just accept that other people might have more experience or just a different way of thinking, working, and - well - developing code. Regards Hartmut
Regards, Chiristian.
Hi John,
Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before
you can
post on this thread".
Christian.
I apologize for any misunderstanding on this, but that is not what I am requesting. I request that you post the code that you did make (along with some rationale for the design), and that you claim cannot be made in Spirit. I think you did at least part of that in a different post, but I haven't looked at your attachments, yet. I'm also not the best one to look at it, since I lay no claim to being an ANTLR expert, I just wanted to get the discussion onto some potentially useful track.
John
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On Jun 9, 2009, at 12:22 PM, Christian Schladetsch wrote:
Hi John,
Excellent way to kill any possible discussion "repeat everything you actually did, using the system that you decided not to use, before you can post on this thread".
John did not ask you to reimplement everything you have already done with ANTLR, not even a single thing. He asked you, in order to show the shortcomings of - and perhaps positively affect the future of - Spirit, show one (or a few) examples where ANTLR is much better (succinct, faster etc.) solution. /David

On Jun 9, 2009, at 11:28 AM, Christian Schladetsch wrote:
Hi Robert,
I for one intend to read or respond to no more of your posts. Your words clearly indicate that don't want to be part of this community, so you are wasting my time.
I was asked for my opinion of Spirit. I think it's fine, but I also think that the C++ compiler was not meant to be a language tool.
Disregard me as you wish,
Christian, what are you trying to achieve here? There are a lot of experienced and skilled, and some are just outright smart ;-) , people on this list. You do not have to bow to the "gods of Boost" as you stated it, but definitely show respect for other people. I think your proposed "best practices" library is completely outside the Boost scope, and explained why I think it is so in a few posts. Everybody else who have spoken, with the exception of Thorsten, seem to agree. The thing is that neither of us used the word "silly" about either your creation or you. Some might start to do that, though, if you continue your quest of "telling the truth." I think C++ (and even C) indeed was meant to be a "language tool", in the sense of providing the bare necessities but complete power instead of being bulky per se, but I think most Boosters understand that Boost is stretching the limits of the template system, and are equally frustrated as you with the poor error messages one gets deep down a template instantiation. That is why BCCL was a welcome addition to the growing Boost family. /David

Hi David, To be honest, my original reply about Spirit was answered in the context/belief that it was a private email. So when I claimed that Joel el al were being "silly" about Spirit, I thought it was a private response, but still respectful. Saying that somone is "silly" about something is different when you say it privately or publically. I have since learned, in spades, that said response was not at all "private". So, do I now retract what I said? No. I belived it then, and I believe it now. Would I have phrased it differently if I thought it was going to [boost]!? YES! Even so, I can't really bring myself to back down. Spirit is looked at being the "way of doing language" in C++ these days, which is a crying shame. There are better tools than Spirit. Spirit is *not* the best way of making a parser. Is ANTLR? I don't know. But Spirit is clever more than it is useful. Does that make me a bad person for saying so? Maybe. Am I big enough and old enough and, yes, experienced enough to say so here, and anywhere, and wear the consequences? Yes. Christian. On Wed, Jun 10, 2009 at 5:03 AM, David Bergman < David.Bergman@bergmangupta.com> wrote:
On Jun 9, 2009, at 11:28 AM, Christian Schladetsch wrote:
Hi Robert,
I for one intend to read or respond to no more of your posts. Your words clearly indicate that don't want to be part of this community, so you are wasting my time.
I was asked for my opinion of Spirit. I think it's fine, but I also think that the C++ compiler was not meant to be a language tool.
Disregard me as you wish,
Christian, what are you trying to achieve here? There are a lot of experienced and skilled, and some are just outright smart ;-) , people on this list. You do not have to bow to the "gods of Boost" as you stated it, but definitely show respect for other people. I think your proposed "best practices" library is completely outside the Boost scope, and explained why I think it is so in a few posts. Everybody else who have spoken, with the exception of Thorsten, seem to agree. The thing is that neither of us used the word "silly" about either your creation or you. Some might start to do that, though, if you continue your quest of "telling the truth."
I think C++ (and even C) indeed was meant to be a "language tool", in the sense of providing the bare necessities but complete power instead of being bulky per se, but I think most Boosters understand that Boost is stretching the limits of the template system, and are equally frustrated as you with the poor error messages one gets deep down a template instantiation. That is why BCCL was a welcome addition to the growing Boost family.
/David
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Christian Schladetsch wrote:
Even so, I can't really bring myself to back down. Spirit is looked at being the "way of doing language" in C++ these days, which is a crying shame. There are better tools than Spirit.
Spirit is *not* the best way of making a parser. Is ANTLR? I don't know. But Spirit is clever more than it is useful.
Does that make me a bad person for saying so? Maybe. Am I big enough and old enough and, yes, experienced enough to say so here, and anywhere, and wear the consequences? Yes.
As a user of both Spirit and ANTLR, I am aware of the merits of each. I enjoy this topic very much but it would be nice to hit the reset button on this thread. -- Sohail Somani http://uint32t.blogspot.com

Sohail Somani wrote:
Christian Schladetsch wrote:
Even so, I can't really bring myself to back down. Spirit is looked at being the "way of doing language" in C++ these days, which is a crying shame. There are better tools than Spirit.
Spirit is *not* the best way of making a parser. Is ANTLR? I don't know. But Spirit is clever more than it is useful.
Does that make me a bad person for saying so? Maybe. Am I big enough and old enough and, yes, experienced enough to say so here, and anywhere, and wear the consequences? Yes.
As a user of both Spirit and ANTLR, I am aware of the merits of each. I enjoy this topic very much but it would be nice to hit the reset button on this thread.
I've been carefully not engaging Christian up to now. But I think it is important to point out something to the rest of you and perhaps to him as well. I learned this a while ago as a way to moderate my own conduct in a way that we would like Christian to do. The key insight I had was that, in order for an interaction with another person to be constructive rather than destructive in nature, being right is not enough. Being right is not enough. So how do you know when it is not enough? You need to ask yourself what the purpose and desired outcome of the interaction is. Often when the purpose or desired outcome is to satisfy your own emotions it means that the interaction is ill advised and self moderation is in order. Take Christian as a case in point. He brought an idea to boost and had it shot down. This produced an emotional desire to feel better by cutting boost itself down a peg, he does this by venting his old frustration about spirit error msgs. being hard to understand. Since his goal in this interaction is now and has been from the beginning nothing more than to feel better about himself after getting his idea shot down I don't believe we can hit the reset button on the thread. We see this same scenario play itself out on a regular basis where someone brings a new library proposal to the boost list, is offended when the response doesn't meet some unrealistic expectation of approval and volunteering to expend effort helping them, and then becomes defensive, offsensive or passive aggressive. By engaging Christian we just fuel his anger, when what he needs is time to cool off and rethink things. That's what I needed when I was in his shoes years ago. I only wish I had been as successful in applying my insight about constructive interactions in the past as I intend to be in the future. Regards, Luke

Spirit is looked at being the "way of doing language" in C++ these days, which is a crying shame. There are better tools than Spirit.
Spirit is *not* the best way of making a parser. Is ANTLR? I don't know. But Spirit is clever more than it is useful.
I can only say that let us make Spirit more useful than it is now by actively working on it. There is always a scope of improvement everywhere.
Does that make me a bad person for saying so? Maybe. Am I big enough and old enough and, yes, experienced enough to say so here, and anywhere, and wear the consequences? Yes.
Let us bring the (relentless) actions(as rigorous as it can be) alongwith the sayings by working(positively) together and that demands respect of each-other's opinions too.
Christian.

Christian Schladetsch wrote:
Hi John,
This is somewhat unexpected.
The reality for me and my workmates for years has been about boost::spirit: "boost is fun to look at" or "boost has useful things" or "boost::spirit is awesome, wait... what?"
Point being that every real person, self included, that has ever tried to use boost::spirit has gone through three stages:
1. wow, it uses C++ static compile-time rules! 2. gee, this is slow to compile 3. ok, i can't use this. its too slow to compile and the error messages are pointless
The reality is that Spirit tries to make C++ do something it shouldn't do. Joel and the others think otherwise. But yeah, the C++ *compiler* is not a language tool.
It's a clever thing, but hey, the rest of us just think they are silly.
Regards, Christian.
Christian, Actually, I and many other have used it for real projects. I lay no claim to it being perfect, but it is good for what I have used it for. However, this does not address the point of the thread. Please respond with real code examples, instead of "everyone who knows anything knows this" sort of statements. You are asserting that there are things you can't do with Spirit, so please support that assertion. For the record, I have had no part in developing Spirit, so I am not being defensive about something I worked on. John

3. ok, i can't use this. its too slow to compile and the error messages are pointless
The serialization library of xml archives uses spirit to parse and has so from the beginning. I've been very pleased with the results. I havn't had to look at the code in the last 6 years. The serialization library has the xml_parser compiled into it. So, it is recompiled once for each boost release. There was a learning curve. However, it was an interesting one rather than a tedious one. Implementation of the xml archive was greatly helped by the inclusion of an xml parser example in the spirit documents. I did have to make some changes in it (wide characters etc) and slimmed it down. But for me, bottom line for using a library is that it does the job more or less once and for all. By that criteria, Spirit has been very successful in my experience. And it's true. It IS a very clever an cool idea. Robert Ramey

On 06/09/09 09:50, John Phillips wrote:
Christian,
Inside the directx thread you asserted that there are things that ANTLR can do and Spirit can't. This met with some resistance, but I would like to take a different approach.
Please post a working code example, along with rationale for why you want to do it, that shows something ANTLR can do, but Spirit can't. [snip] In general, this is a better way to critique by comparison. Provide actual working code for the comparison, and there is far less room for misinterpretation of intent or conclusions.
+1 This is a *great* suggestion! Thanks John. -Larry

John Phillips пишет:
In general, this is a better way to critique by comparison. Provide actual working code for the comparison, and there is far less room for misinterpretation of intent or conclusions.
Okay, I will try.... :) When I decide to write my own Boost.Build v2 on steroids, first of all I pick the Spirit as parser, because I knew it. After writing more or less complex gramma I hit into slow edit/compile/run cycles. That was annoying but I can live with it. But when I hit the gramma debugging I gived up. For me debuging was impossible to do in any reasonable time. May be I use Spirit in a wrong way, I suppose I am not, but I decide to give a try to ANTLR v3. Now I can tell for sure - I will never use Spirit for more-less complex gramma until at least it will have tool like ANTLRWorks is. I am not a compiler builder expert, but experienced C++ developer. I need the tool to solve problems. In that single example Spirit doesn't solve my problems it only introduce new. Even in Hammer frontend I can't use Spirit I use it everywhere where I need a small inline parsing. Before Spirit I have used boost.regex. But since I learn Spirit I do not use it anymore. EBNF is much more readable for me than regexes. That is my experience....

This exactly corelates to my 1,2,3 steps of Spirite usage. But somehow I am the Demon? On Wed, Jun 10, 2009 at 4:36 AM, Konstantin Litvinenko < to.darkangel@gmail.com> wrote:
John Phillips пишет:
In general, this is a better way to critique by comparison. Provide actual working code for the comparison, and there is far less room for misinterpretation of intent or conclusions.
Okay, I will try.... :)
When I decide to write my own Boost.Build v2 on steroids, first of all I pick the Spirit as parser, because I knew it. After writing more or less complex gramma I hit into slow edit/compile/run cycles. That was annoying but I can live with it. But when I hit the gramma debugging I gived up. For me debuging was impossible to do in any reasonable time. May be I use Spirit in a wrong way, I suppose I am not, but I decide to give a try to ANTLR v3. Now I can tell for sure - I will never use Spirit for more-less complex gramma until at least it will have tool like ANTLRWorks is. I am not a compiler builder expert, but experienced C++ developer. I need the tool to solve problems. In that single example Spirit doesn't solve my problems it only introduce new. Even in Hammer frontend I can't use Spirit I use it everywhere where I need a small inline parsing. Before Spirit I have used boost.regex. But since I learn Spirit I do not use it anymore. EBNF is much more readable for me than regexes. That is my experience....
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On Jun 9, 2009, at 12:46 PM, Christian Schladetsch wrote:
This exactly corelates to my 1,2,3 steps of Spirite usage. But somehow I am the Demon?
ROFL. Yes, you are the Demon! :-) At least you inject a lot of energy into this list, hopefully you will keep off the negative side of energy a bit... /David
On Wed, Jun 10, 2009 at 4:36 AM, Konstantin Litvinenko < to.darkangel@gmail.com> wrote:
John Phillips пишет:
In general, this is a better way to critique by comparison. Provide actual working code for the comparison, and there is far less room for misinterpretation of intent or conclusions.
Okay, I will try.... :)
When I decide to write my own Boost.Build v2 on steroids, first of all I pick the Spirit as parser, because I knew it. After writing more or less complex gramma I hit into slow edit/compile/run cycles. That was annoying but I can live with it. But when I hit the gramma debugging I gived up. For me debuging was impossible to do in any reasonable time. May be I use Spirit in a wrong way, I suppose I am not, but I decide to give a try to ANTLR v3. Now I can tell for sure - I will never use Spirit for more-less complex gramma until at least it will have tool like ANTLRWorks is. I am not a compiler builder expert, but experienced C++ developer. I need the tool to solve problems. In that single example Spirit doesn't solve my problems it only introduce new. Even in Hammer frontend I can't use Spirit I use it everywhere where I need a small inline parsing. Before Spirit I have used boost.regex. But since I learn Spirit I do not use it anymore. EBNF is much more readable for me than regexes. That is my experience....
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On 06/09/09 11:46, Christian Schladetsch wrote:
This exactly corelates to my 1,2,3 steps of Spirite usage. But somehow I am the Demon? [snip]
I think you have some good points, Christian, that you made here: http://article.gmane.org/gmane.comp.lib.boost.devel/190361 The slow compile times, IIRC, have been mentioned frequently. The cryptic error messages have also been mentioned before, but they are not spirit specific. They are a problem with template metaprogramming and expression templates debugging in general, as acknowledged near the beginning of Chap. 8 of: http://www.amazon.com/exec/obidos/ASIN/0321227255/billvennersA/ So, the problem, as you noted earlier, but slightly modified, is the C++ *compiler* is not a *fast* language *development* tool. However, the one advantage of spirit (that I can think of at the moment) is that the parser produced *parses faster* than one produced with antlr or yacc because of the compile-time optimization possible with expression templates. OK, I'm just guessing here, and I have no benchmarks to show that. Maybe the spirit folks do? Now I can see your justification for abandoning spirit because the slow compile times and cryptic error messages slow down the developer. On the other hand, the faster parse times saves the end-user time. So it's a balance between whether one thinks the parse time, which is experienced *many* times by the end user, is more important than the developer time, which is experienced probably *fewer* times than the parse times. Is that about right? Anyway, although I think you may have some good points, I also think you could get more useful responses with more diplomacy. -Sincerely, Larry

Larry Evans wrote:
However, the one advantage of spirit (that I can think of at the moment) is that the parser produced *parses faster* than one produced with antlr or yacc because of the compile-time optimization possible with expression templates. OK, I'm just guessing here, and I have no benchmarks to show that. Maybe the spirit folks do?
Now I can see your justification for abandoning spirit because the slow compile times and cryptic error messages slow down the developer. On the other hand, the faster parse times saves the end-user time. So it's a balance between whether one thinks the parse time, which is experienced *many* times by the end user, is more important than the developer time, which is experienced probably *fewer* times than the parse times.
Is that about right?
I don't think your guess about parse times is right. I think the ANTLR parser is quite fast. They might be roughly equal. Of course, a good parser generator cannot make up for a bad grammar. And that's my guess! :-) -- Sohail Somani http://uint32t.blogspot.com
participants (14)
-
Chandrashekhar Kumar
-
Christian Schladetsch
-
David Bergman
-
Hartmut Kaiser
-
Jeremy Day
-
John Maddock
-
John Phillips
-
Konstantin Litvinenko
-
Larry Evans
-
Robert Ramey
-
Simonson, Lucanus J
-
Sohail Somani
-
Stewart, Robert
-
Stuart Dootson