[serialization] Warnings from spirit header in XML archive headers (non_terminal/rule.hpp)

I'm encountering many warning about a deprecated header when writing my own XML input archive class: In file included from /opt/cfs/include/boost/archive/impl/basic_xml_grammar.hpp:59, from /opt/cfs/include/boost/archive/impl/xml_iarchive_impl.ipp:41, /opt/cfs/include/boost/spirit/core/non_terminal/rule.hpp:18:4: warning: #warning is a GCC extension /opt/cfs/include/boost/spirit/core/non_terminal/rule.hpp:18:4: warning: #warning "This header is deprecated. Please use: boost/spirit/include/classic_rule.hpp" This is because the serialization library is using "Spirit.Classic" and should be including different headers: http://www.boost.org/doc/libs/1_43_0/libs/spirit/doc/html/spirit/what_s_new/... I've noticed patches related to this on the web, e.g. http://gitorious.org/ryppl/doc/commit/2711cc4a1e8751455f9188ffefa9b34de13797... ... and have repackaged a patch against the current 1.43.0 which fixes these warnings? Please could this be committed for the next release? Regards, Simon

Number Cruncher wrote:
I spent some time with a similar patch. I found no way a makiing it compatible with one of the compilers which serialization supported at the time. (borland). So I just left things as they were. In the meantime the borland compiler version of the serialization library has been broken in any case so my original motivation for not doing something like this non longer exists. On the other hand, the warning is totally benign and only appears when the library is built - not in user programs so I don't think it's worth any effort to address. If one want's to do something truely worthwhile, it would be to upgrade the xml_serialization to latest version of Qi/Karma. It's purported to be much faster. The serialization library uses spirit to parse only one line of xml at a time so it's actually a very simple application. That is, it's a good excercise for someone who want's to experience spirit but doesn't have a real application available. Robert Ramey

On 25/05/10 17:46, Robert Ramey wrote:
Except when you want to build on the xml_iarchive e.g. to implement different header handling. Then I need to invoke the boost/archive/impl/xml_iarchive_impl.ipp template instantiations which pulls in the basic_xml_grammar.hpp header. Neither of these are library-compiled-only; they are part of boost include directory and are the recommended way of extending some of the serialization archives (see e.g http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/derivation.html )
I agree that migrating to Qi/Karma is a great idea; I may yet get round to it some day! However, in the mean time, the spirit authors have provided a clear upgrade path by first deprecating some old header locations and changing some paths. Surely the first step to an upgrade is to be compliant with the new structure by using the symbols from spirit::classic? At the end of the day, I can also patch my copy of boost locally with the non-borland-compliant fix, but in light of your response about borland problems, couldn't you just commit the patch to the trunk? The spirit authors state "The forwarding headers are expected to be removed in the future.", i.e. boost::serialization *will break*. ( http://www.boost.org/doc/libs/1_43_0/libs/spirit/doc/html/spirit/what_s_new/... ) Thanks for incredibly useful library, Simon.
participants (2)
-
Number Cruncher
-
Robert Ramey