
I'd reviewed xpressive sometime last week. Since then, I'd found a place where xpressive might provide a performance improvement over a Spirit grammar that I've been using. I worked for a few days on trying to use xpressive to replace the Spirit grammar. Unfortunately, I ran out of time and wasn't able to finish it. Even so, my experiences might be of interest here. First, I should point out that I really like the library. I ran into a few glitches, but Eric has been able to fix them pretty quickly. It doesn't look as though there are any serious problems with the library. By far the most serious problems that I ran into involved the limitations of the Microsoft VC7.1 compiler. It really doesn't want to see anything harder than a simple static xpressive expression. This is a serious limitation of the library until VC8 comes out for me. Eric says that gcc 3.3+ is a lot better, though I didn't try that. He also says that the VC8 team used an early version of the library for testing, so it might get better at some point. Note that the VC8 beta does at least as well as VC7.1; I can say this with some certainty since my code was pushing VC7.1 pretty close to its limit. I can't really give the performance numbers that I was hoping for since I didn't have time to optimize my xpressive code for anything other than compiling under VC7.1. Once I get to start using the library under a compiler that works better, I'm going to really enjoy playing with xpressive. If nothing else, it seems like a good model to write template meta-programming with. I frequently got intelligible error messages out of it! (Most frequently this involved a Microsoft internal compiler error that pointed to the correct static assert. Though a bit strange, this is actually better than what boost static assert is supposed to do.) Since I now have significantly more experience with the library, I should explicitly reaffirm my support for adding xpressive to boost. -Fred
participants (1)
-
Fred