Boost logo

Boost Users :

Subject: [Boost-users] RFC: Spirit Porting
From: Bryce Lelbach (admin_at_[hidden])
Date: 2010-10-28 02:25:57


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is possibly better suited for the Spirit mailing list; however, I would
like to get as broad an audience as possible here.

Recently, I ported the Boost.Serialization XML grammar from Spirit Classic to
Spirit Qi. It was a pretty straightforward port, but I did expect an increase in
the compile-time complexity of building the grammar. My reasons for this line of
thinking were as follows:

  * Spirit 2.x is fully attributed, while Spirit 1.x is not. This increases both
    the amount of data that we're dealing with (every parser/generator component
    must have an attribute), as well as adding additional compile-time checks
    and transformations which much be applied to that data.
  * To make Spirit fully attributed, Spirit 2.x uses frameworks that Spirit
    Classic did not use; Boost.Proto and Boost.Fusion (Fusion was created for
    Spirit 2.x, I believe), as well as a newer version of Boost.Phoenix.

To my knowledge, this new XML grammar is the first Boost component to use Spirit
2.x (Wave uses Spirit Classic). I believe this means this is the first time that
software using Spirit 2.x has been placed under the scrutiny of Boost testing.
Certainly, Spirit 2.x and the underlying libraries it uses undergo rigorous
testing, but in my mind, testing a library and testing software that uses said
library are two very different processes.

My question stems partially from the thoughts of Serialization's maintainer,
Robery Ramey:

  "Basically, my view is that we cannot ship something that doesn't work at
   least as well as the previous version."

My question for you:

  Can software that uses Spirit Classic be ported to Spirit 2.x and retain the
  same level of compiler/platform compatibility without significant refactoring
  of the fundamental structure of the Spirit components of the software?

Please do note that I believe that there is room in the Serialization XML
grammar for refactoring, and I certainly don't mean to imply that the authors
of Spirit, Proto, Fusion or Phoenix are at fault here in any way.

- --
Bryce Lelbach aka wash
http://groups.google.com/group/ariel_devel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkzJF3UACgkQO/fqqIuE2t7j2wCgumHhaOfOEOvmZ/090cm5o7+x
f9QAoOhPvph24tlpCnuTrnUdtZ6BGD6/
=Dfkl
-----END PGP SIGNATURE-----


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net