serialization library #17

Fellow boosters, I have just uploaded serialization17.zip to the boost files section at Yahoo.com. A copy can also be found at www.rrsd.com This is the latest version of my serialization library. It has been built and tested in debug and release mode with VC++ 6.0, VC++ 7.0, VC++ 7.1, GCC 3.2, and GCC 3.3. It requires boost 1.31 to function. It has no known bugs. Compared to previous versions, documentation, examples, tests and portability have all been enhanced. I would like this library to be placed in the review queue. Robert Ramey

"Robert Ramey" <ramey@rrsd.com> wrote
I have just uploaded serialization17.zip ...
It has been built and tested in debug and release mode with VC++ 6.0, VC++ 7.0, VC++ 7.1, GCC 3.2, and GCC 3.3.
Porting to BCB is underway. I hope it is feasible. If anyone tries and fixes some problems under BCB 6.4, let me know, please. You may be interested in collection of my fixes as well. /Pavel

Robert Ramey wrote:
Fellow boosters,
I have just uploaded serialization17.zip to the boost files section at Yahoo.com. A copy can also be found at www.rrsd.com
This is the latest version of my serialization library.
It has been built and tested in debug and release mode with VC++ 6.0, VC++ 7.0, VC++ 7.1, GCC 3.2, and GCC 3.3.
It requires boost 1.31 to function.
It has no known bugs.
Compared to previous versions, documentation, examples, tests and portability have all been enhanced.
I would like this library to be placed in the review queue.
I had a couple of problems to build with boost_1_31_0 and gcc-3.3.3: gcc-C++-action ../../../bin/boost/libs/serialization/build/libboost_serialization.a/gcc/debug/runtime-link-static/threading-multi/basic_iserializer.o ../../../libs/serialization/src/basic_iserializer.cpp:32: error: prototype for `boost::serialization::basic_iserializer::basic_iserializer(const boost::serialization::extended_type_info&, bool)' does not match any in class `boost::serialization::basic_iserializer' /usr/local/src/boost_1_31_0/boost/serialization/basic_iserializer.hpp:33: error: candidates are: boost::serialization::basic_iserializer::basic_iserializer(const boost::serialization::basic_iserializer&) /usr/local/src/boost_1_31_0/boost/serialization/basic_iserializer.hpp:35: error: boost::serialization::basic_iserializer::basic_iserializer(const boost::serialization::extended_type_info&) ../../../libs/serialization/src/basic_iserializer.cpp: In constructor ` boost::serialization::basic_iserializer::basic_iserializer(const boost::serialization::extended_type_info&, bool)': ../../../libs/serialization/src/basic_iserializer.cpp:34: error: class ` boost::serialization::basic_iserializer' does not have any field named ` load_object_ptr' ../../../libs/serialization/src/basic_iserializer.cpp: At global scope: ../../../libs/serialization/src/basic_iserializer.cpp:41: error: no `const boost::serialization::basic_iserializer* boost::serialization::basic_iserializer::find(const boost::serialization::extended_type_info&)' member function declared in class `boost::serialization::basic_iserializer' gcc-C++-action ../../../bin/boost/libs/serialization/build/libboost_serialization.a/gcc/debug/runtime-link-static/threading-multi/basic_oserializer.o ../../../libs/serialization/src/basic_oserializer.cpp:32: error: redefinition of `boost::serialization::basic_oserializer::basic_oserializer(const boost::serialization::extended_type_info&)' /usr/local/src/boost_1_31_0/boost/serialization/basic_oserializer.hpp:35: error: ` boost::serialization::basic_oserializer::basic_oserializer(const boost::serialization::extended_type_info&)' previously defined here ../../../libs/serialization/src/basic_oserializer.cpp:32: error: no ` boost::serialization::basic_oserializer::basic_oserializer(const boost::serialization::extended_type_info&)' member function declared in class `boost::serialization::basic_oserializer' ../../../libs/serialization/src/basic_oserializer.cpp: In constructor ` boost::serialization::basic_oserializer::basic_oserializer(const boost::serialization::extended_type_info&)': ../../../libs/serialization/src/basic_oserializer.cpp:33: error: class ` boost::serialization::basic_oserializer' does not have any field named ` save_object_ptr' ../../../libs/serialization/src/basic_oserializer.cpp: At global scope: ../../../libs/serialization/src/basic_oserializer.cpp:37: error: no `void boost::serialization::basic_oserializer::self_register()' member function declared in class `boost::serialization::basic_oserializer' ../../../libs/serialization/src/basic_oserializer.cpp:43: error: no `const boost::serialization::basic_oserializer* boost::serialization::basic_oserializer::find(const boost::serialization::extended_type_info&)' member function declared in class `boost::serialization::basic_oserializer' gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --disable-libunwind-exceptions --with-system-zlib --enable-__cxa_atexit --host=i386-redhat-linux Thread model: posix gcc version 3.3.3 20040216 (Red Hat Linux 3.3.3-2)

Never mind, I had no cleaned out previous serialization files. There IS one problem though, the serialization17 includes jamfile, not Jamfile. bjam doesn't recognize jamfile (on linux, at least).

I have 1 more question. What about an archive that uses mmap? This should be very efficient for saving/restoring large structures in binary format. Is this a good idea?

On Mon, 01 Mar 2004 21:47:05 -0500, Neal Becker wrote
I have 1 more question. What about an archive that uses mmap? This should be very efficient for saving/restoring large structures in binary format. Is this a good idea?
Probably. Maybe someone should try adapting Craig Henderson's memmap library which is in the sandbox. From the docs: A memory mapped file associates the contents of a file with a block of virtual address space of a process. The Win32 platform and POSIX standard provide means of creating and managing memory mapped files, however, the methods for this is different between the two. The intention of the Boost Memory Mapped File is to bridge the compatibility gap here, so that users can write portable code that uses memory mapped files Jeff

On Mon, 1 Mar 2004 13:20:17 -0800, Robert Ramey wrote
Fellow boosters,
I have just uploaded serialization17.zip to the boost files section at Yahoo.com. A copy can also be found at www.rrsd.com
This is the latest version of my serialization library.
It has been built and tested in debug and release mode with VC++ 6.0, VC++ 7.0, VC++ 7.1, GCC 3.2, and GCC 3.3.
It requires boost 1.31 to function.
Just so you know, the compile blows up with the CVS as of about a day ago. I'm sure not your fault, but so you know... Jeff gcc-C++-action ../../../bin/boost_cvs/libs/serialization/build/libboost_serialization.a/gcc/debug/runtime-link-static/text_iarchive.o /home/jeff/devTools/boost_cvs/boost/mpl/apply_if.hpp: In instantiation of `boost::mpl::apply_if<boost::detail::is_tag<boost::single_pass_traversal_tag, boost::swappable_iterator_tag>, boost::mpl::identity<boost::detail::null_category_tag>, boost::error_iterator_tag>': /home/jeff/devTools/boost_cvs/boost/mpl/apply_if.hpp:39: instantiated from `boost::mpl::apply_if<boost::detail::is_tag<boost::readable_iterator_tag, boost::single_pass_traversal_tag>, boost::mpl::identity<boost::readable_iterator_tag>, boost::mpl::apply_if<boost::detail::is_tag<boost::single_pass_traversal_tag, boost::swappable_iterator_tag>, boost::mpl::identity<boost::detail::null_category_tag>, boost::error_iterator_tag> >' /home/jeff/devTools/boost_cvs/boost/mpl/apply_if.hpp:39: instantiated from `boost::detail::known_tag<boost::single_pass_traversal_tag, boost::readable_iterator_tag, boost::mpl::apply_if<boost::detail::is_tag<boost::single_pass_traversal_tag, boost::swappable_iterator_tag>, boost::mpl::identity<boost::detail::null_category_tag>, boost::error_iterator_tag> >' /home/jeff/devTools/boost_cvs/boost/mpl/apply_if.hpp:39: instantiated from `boost::mpl::apply_if<boost::detail::is_tag<boost::writable_iterator_tag, boost::single_pass_traversal_tag>, boost::mpl::identity<boost::writable_iterator_tag>, boost::detail::known_tag<boost::single_pass_traversal_tag, boost::readable_iterator_tag, boost::mpl::apply_if<boost::detail::is_tag<boost::single_pass_traversal_tag, boost::swappable_iterator_tag>, boost::mpl::identity<boost::detail::null_category_tag>, boost::error_iterator_tag> > >' /home/jeff/devTools/boost_cvs/boost/mpl/apply_if.hpp:39: instantiated from `boost::detail::known_tag<boost::single_pass_traversal_tag, boost::writable_iterator_tag, boost::detail::known_tag<boost::single_pass_traversal_tag, boost::readable_iterator_tag, boost::mpl::apply_if<boost::detail::is_tag<boost::single_pass_traversal_tag, boost::swappable_iterator_tag>, boost::mpl::identity<boost::detail::null_category_tag>, boost::error_iterator_tag> > >' etc...
participants (4)
-
Jeff Garland
-
Neal Becker
-
Pavel Vozenilek
-
Robert Ramey