
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 09/09/2010 02:32 AM, Robert Ramey wrote:
Note that there is an extensive test suite for the serialization library. You should run that on your local machine.
I've finished and done (preliminary) testing on the new grammar. All tests passed on x86_64-linux-gnu-gcc-4.5.1 (link=shared, variant=debug), four warnings (unsigned/signed comparisons in other parts of Serialization that I haven't touched). I've got my machine running the full test suite (link=shared,static, variant=debug,profile,release). I'm also running the profile.sh script in performance (I can't find any existing performance data for Serialization to compare against in the HTML docs, though). I can't do Windows tests: I currently only have Linux machines available to me. My local copy of the boost trunk is checked out with svn via https. How should I get the changes to you for review? Patch?
My understanding is that the new library is much faster than the currently used one so people should be happy about that.
I don't think we'll see a notable speed increase (at least, not with the work I've done so far). The bottleneck in the xml parser is the input stream -> intermediary string -> spirit design pattern in basic_xml_grammar<CharType>::my_parse. Removing the middleman string is a bit of a problem. A stream iterator such as std::istream_iterator can't be used with Spirit, because of the backtracking present in a a recursive descent parser such as Qi. Spirit provides a multi_pass iterator (fulfills forward iterator) that can wrap an input iterator for use with Qi. Rules that present the possible need to backtrack will cause buffering with the multi_pass iterator. So, to (hopefully) get a respectable increase in speed, I'll have to refactor the new Qi grammar to minimize use of rules that will backtrack, and then modify the grammar and interface to use the multi_pass iterator. If the new parser doesn't break horribly on Windows/other compilers, I'll get started on the multi_pass stuff this weekend. - Bryce Lelbach -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyJyGwACgkQO/fqqIuE2t6QqACdE2Cw4OGtbnnclDXx2t2N3lRx 9ZkAn2zH//H16XTMtkpcbAVKF8f4RL/J =9oYL -----END PGP SIGNATURE-----