#2771 closed Bugs (fixed)
Serialization documentation should make portability issues more obvious
Reported by: | Owned by: | Robert Ramey | |
---|---|---|---|
Milestone: | Boost 1.39.0 | Component: | serialization |
Version: | Boost 1.37.0 | Severity: | Not Applicable |
Keywords: | Cc: |
Description
Specifically, the following do not use portable features:
- BOOST_CLASS_EXPORT
- base_object
Perhaps a section in the "Special Considerations" part of the manual which says not to use these features in portable code.
Yes, I knew this but did it anyway :-)
Change History (6)
follow-up: 2 comment:1 by , 14 years ago
comment:2 by , 14 years ago
Replying to boost@taggedtype.net:
Essentially anything using the new singleton is not portable so as long as the serialization library provides a portable way to implement the same "automatic registration"
Finishing that sentence: as long as the serialization library provides a portable way to implement the same "automatic registration", it is still possible to write portable code. It just has to be more verbose.
comment:3 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
"Essentially anything using the new singleton is not portable so as long as the serialization library provides a portable way to implement the same "automatic registration" "
I think this is incorrect. I believe that the lock free singleton included in boost serialization IS portable. What is not guaranteed to be portable is the "automatic" code instantiation implemented by BOOST_CLASS_EXPORT. This currently fails on the SUNCC compiler (though it might be fixed by now) and VaCPP compiler (IBM - they have been advised of this and have shown interest in addressing it.)
Note that I've added a new section to the manual - "Tips and Tricks". This is to be used for those who want to add their own special bits of knowledge which other users may find useful. Its a constructive way to vent one's frustration. Submit proposals for new tips - in paste ready form - as a new TRAK item.
Robert Ramey
BTW - I think the SunCC failures have been showing up on the trunk test for years and no one ever complained. Perhaps one who is interested in the issue might work to get the compilers that they are concerned about added to the "release" platforms and raise issues when they first occur.
RR
comment:4 by , 14 years ago
Robert,
I don't know how you can say for certain that it is portable. There is no reference to any standardese in the code.
I agree, BOOST_CLASS_EXPORT is not portable. But if BOOST_CLASS_EXPORT is not portable, then the portability of the singleton almost doesn't matter!
I will happily send you my tips and tricks. I have a bunch.
By the way, if you are interested in the macro I wrote which roughly guarantees a function will be called before main, let me know. It falls back to the singleton above if the macro is not specialized for the current platform/compiler. It would raise the abstraction level, imo.
follow-up: 6 comment:5 by , 14 years ago
(In [51774]) Merge most of the recent changes to quickbook and boostbook.
Left out doxygen changes: [51323],[51324],[51680] And a quickbook change which might be a breaking change: [51403]
Fixes #1977, #1170, #1213, #2701. Refs #2153, #2771.
Merged revisions 51268-51269,51319-51321,51370-51372,51388-51389,51401-51402,51405-51406,51508,51647,51696 via svnmerge from https://svn.boost.org/svn/boost/trunk
........
r51268 | johnmaddock | 2009-02-16 10:39:18 +0000 (Mon, 16 Feb 2009) | 1 line
Add default path for callouts.
........
r51269 | johnmaddock | 2009-02-16 10:40:26 +0000 (Mon, 16 Feb 2009) | 1 line
Add preliminary HTMLHelp support.
........
r51319 | danieljames | 2009-02-18 21:22:37 +0000 (Wed, 18 Feb 2009) | 1 line
Remove long out of date warning.
........
r51320 | danieljames | 2009-02-18 21:23:13 +0000 (Wed, 18 Feb 2009) | 1 line
Write out the quickbook options when the file is missing.
........
r51321 | danieljames | 2009-02-18 21:23:35 +0000 (Wed, 18 Feb 2009) | 1 line
Add default path for callouts to xhtml.
........
r51370 | danieljames | 2009-02-21 18:50:00 +0000 (Sat, 21 Feb 2009) | 4 lines
Regenerate boostbook reference documentation and merge with existing documentation.
Ref #2153
........
r51371 | danieljames | 2009-02-21 18:50:14 +0000 (Sat, 21 Feb 2009) | 1 line
Fix links in standalone boostbook documentation.
........
r51372 | danieljames | 2009-02-21 18:50:25 +0000 (Sat, 21 Feb 2009) | 3 lines
Change license in boostbook docs to boost license.
Douglas Gregor is listed in the blanket permissions file.
........
r51388 | danieljames | 2009-02-22 11:54:01 +0000 (Sun, 22 Feb 2009) | 1 line
This DTD isn't stable, so I'm calling it a 'development' version. Which is probably wrong, but there you go.
........
r51389 | danieljames | 2009-02-22 11:54:18 +0000 (Sun, 22 Feb 2009) | 2 lines
Support the alt tag in headername and macroname. Also make headername and macroname valid. Refs #1977
........
r51401 | danieljames | 2009-02-22 23:47:51 +0000 (Sun, 22 Feb 2009) | 8 lines
Add a purpose for macroname, headername, enumname, globalname.
Ref #2153: There's still no documentation for methodname and classname. These are actually defined in the docbook DTD for a different purpose so I'm not sure how to deal with them.
http://www.docbook.org/tdg/en/html/methodname.html http://www.docbook.org/tdg/en/html/classname.html
........
r51402 | danieljames | 2009-02-22 23:48:37 +0000 (Sun, 22 Feb 2009) | 7 lines
Generate slightly more valid boostbook.
For document types other than library:
- Don't generate name or dirname for document types.
- Put title before document info.
Ref #2771
........
r51405 | danieljames | 2009-02-22 23:49:21 +0000 (Sun, 22 Feb 2009) | 3 lines
Print out unexpected characters as errors.
Ref #1170
........
r51406 | danieljames | 2009-02-22 23:49:36 +0000 (Sun, 22 Feb 2009) | 1 line
Better handling of errors without line numbers.
........
r51508 | danieljames | 2009-03-01 14:16:44 +0000 (Sun, 01 Mar 2009) | 3 lines
Try to make anchor and link usage a little clearer.
........
r51647 | danieljames | 2009-03-08 09:45:51 +0000 (Sun, 08 Mar 2009) | 1 line
Display text purposes in function reference.
........
r51696 | johnmaddock | 2009-03-11 10:22:42 +0000 (Wed, 11 Mar 2009) | 1 line
Set margins to 0pt so they line up with surrounding text rather than appearing outside it - prevents margins from overlapping other content.
........
Essentially anything using the new singleton is not portable so as long as the serialization library provides a portable way to implement the same "automatic registration"