|
Boost-Commit : |
From: eric_at_[hidden]
Date: 2007-12-02 18:20:19
Author: eric_niebler
Date: 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
New Revision: 41596
URL: http://svn.boost.org/trac/boost/changeset/41596
Log:
Merged revisions 41488-41595 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r41489 | djowel | 2007-11-30 02:07:41 -0800 (Fri, 30 Nov 2007) | 1 line
fixed link
........
r41493 | grafik | 2007-11-30 07:56:42 -0800 (Fri, 30 Nov 2007) | 1 line
Mode proposal.pdf to new web site. (fixes #1364)
........
r41494 | grafik | 2007-11-30 07:58:59 -0800 (Fri, 30 Nov 2007) | 1 line
Obsolete. (fixes #1362)
........
r41497 | grafik | 2007-11-30 08:21:49 -0800 (Fri, 30 Nov 2007) | 1 line
Move the content of old more/links.html doc to new web site. (fixes #1360).
........
r41500 | bemandawes | 2007-11-30 08:44:23 -0800 (Fri, 30 Nov 2007) | 1 line
Refresh examples, add example build script, reflect that in docs. Apply suggestions from Darren Cook.
........
r41501 | grafik | 2007-11-30 09:13:02 -0800 (Fri, 30 Nov 2007) | 1 line
Obsolete. (fixes #1365)
........
r41502 | grafik | 2007-11-30 09:16:00 -0800 (Fri, 30 Nov 2007) | 1 line
Obsolete. (fixes #1348)
........
r41504 | grafik | 2007-11-30 09:45:24 -0800 (Fri, 30 Nov 2007) | 1 line
Obsolete. (fixes #1345)
........
r41505 | anthonyw | 2007-11-30 10:38:21 -0800 (Fri, 30 Nov 2007) | 1 line
interruptible_wait (and hence condition timed_wait) now uses a WaitableTimer where possible, to be robust in the face of clock changes
........
r41506 | danieljames | 2007-11-30 11:28:46 -0800 (Fri, 30 Nov 2007) | 2 lines
Frank Mori Hess's patch to get the documentation building.
........
r41511 | danieljames | 2007-11-30 12:06:44 -0800 (Fri, 30 Nov 2007) | 3 lines
Remove the formal review schedule, as it has been moved to the new site.
Fixes #1351
........
r41519 | djowel | 2007-11-30 17:11:44 -0800 (Fri, 30 Nov 2007) | 1 line
remove old unused file
........
r41521 | dave | 2007-11-30 18:15:17 -0800 (Fri, 30 Nov 2007) | 7 lines
Boost.Python:
* Workarounds for many SunCC 5.9 bugs
* Suppression of many SunCC 5.9 warnings
* Improve the style of some test invocations in Jamfile
........
r41526 | dave | 2007-11-30 21:07:13 -0800 (Fri, 30 Nov 2007) | 2 lines
Fixed grammar in error message
........
r41529 | niels_dekker | 2007-12-01 04:14:37 -0800 (Sat, 01 Dec 2007) | 1 line
Added value_init tests, based upon GCC bug report by Jonathan Wakely. Added URL to Borland bug report.
........
r41530 | niels_dekker | 2007-12-01 05:57:06 -0800 (Sat, 01 Dec 2007) | 1 line
Marked value_init_test failures on GCC as "expected failures", referring to ticket #1491
........
r41532 | vladimir_prus | 2007-12-01 06:56:23 -0800 (Sat, 01 Dec 2007) | 2 lines
Change the detection of 64-bit windows to handle EM64T processors.
........
r41534 | danieljames | 2007-12-01 08:44:20 -0800 (Sat, 01 Dec 2007) | 4 lines
Transfer the rest of the version history to the new website.
Fixes #1374.
........
r41535 | grafik | 2007-12-01 08:44:54 -0800 (Sat, 01 Dec 2007) | 1 line
Plug memory leak when closing out actions. Thanks to Martin Kortmann for finding this.
........
r41538 | vladimir_prus | 2007-12-01 09:56:47 -0800 (Sat, 01 Dec 2007) | 2 lines
Document 64-bit compilation.
........
r41539 | danieljames | 2007-12-01 09:58:44 -0800 (Sat, 01 Dec 2007) | 2 lines
Mark hash_long_double_test as failing on all PA-RISC compilers.
........
r41540 | igaztanaga | 2007-12-01 10:01:15 -0800 (Sat, 01 Dec 2007) | 1 line
Simplified mutexes for systems with no _POSIX_TIMEOUTS.
........
r41542 | vladimir_prus | 2007-12-01 11:07:22 -0800 (Sat, 01 Dec 2007) | 4 lines
Add <testing.arg> functionality to unit-test rule.
Patch from Mark Desnoyer.
........
r41544 | jhunold | 2007-12-01 11:27:06 -0800 (Sat, 01 Dec 2007) | 2 lines
Silence compiler by adding cosmetic virtual destructors.
........
r41547 | vladimir_prus | 2007-12-01 12:06:43 -0800 (Sat, 01 Dec 2007) | 1 line
Document runtime-link
........
r41548 | grafik | 2007-12-01 12:17:52 -0800 (Sat, 01 Dec 2007) | 1 line
Add support for detection and building with vc9. (fixes #1490)
........
r41549 | jhunold | 2007-12-01 12:24:51 -0800 (Sat, 01 Dec 2007) | 2 lines
Silence compiler by adding cosmetic virtual destructors.
........
r41550 | jhunold | 2007-12-01 12:26:37 -0800 (Sat, 01 Dec 2007) | 3 lines
Remove unused paramters.
Add -Wextra to gcc flags to enable more warnings.
........
r41552 | grafik | 2007-12-01 12:40:56 -0800 (Sat, 01 Dec 2007) | 1 line
Remove borders from simple list tables.
........
r41553 | grafik | 2007-12-01 12:42:27 -0800 (Sat, 01 Dec 2007) | 1 line
Remove borders from simple list tables.
........
r41554 | t_schwinger | 2007-12-01 12:52:00 -0800 (Sat, 01 Dec 2007) | 3 lines
Using central stylesheet now.
........
r41555 | vladimir_prus | 2007-12-01 13:26:09 -0800 (Sat, 01 Dec 2007) | 1 line
Document STLport
........
r41556 | grafik | 2007-12-01 13:53:47 -0800 (Sat, 01 Dec 2007) | 1 line
Document various "new" features, and add in the history till now for 3.1.16. (fixes #1445 #1447 #1448)
........
r41557 | vladimir_prus | 2007-12-01 14:31:04 -0800 (Sat, 01 Dec 2007) | 1 line
Remove unused method
........
r41562 | grafik | 2007-12-01 17:59:02 -0800 (Sat, 01 Dec 2007) | 1 line
No-op no-empty action.
........
r41563 | grafik | 2007-12-01 18:03:48 -0800 (Sat, 01 Dec 2007) | 1 line
';' can't be a no-op on nix.
........
r41565 | grafik | 2007-12-01 20:06:28 -0800 (Sat, 01 Dec 2007) | 1 line
Remove outdated release procedures, and move content to wiki. Content moved to <http://svn.boost.org/trac/boost/wiki/ReleasePractices/Procedures> and <http://svn.boost.org/trac/boost/wiki/ReleasePractices/ManagerCheckList>. (fixes #1366 #1367)
........
r41566 | grafik | 2007-12-01 20:22:34 -0800 (Sat, 01 Dec 2007) | 1 line
Remove obsolete images. (fixes #1257)
........
r41568 | grafik | 2007-12-01 22:56:38 -0800 (Sat, 01 Dec 2007) | 1 line
"Who's Using Boost?" content moved to new web site.
........
r41569 | grafik | 2007-12-01 23:02:12 -0800 (Sat, 01 Dec 2007) | 1 line
"Who's Using Boost?" content moved to new web site.
........
r41571 | igaztanaga | 2007-12-02 01:25:53 -0800 (Sun, 02 Dec 2007) | 1 line
Added missing #include <typeinfo> overwritten by previous commit
........
r41572 | danieljames | 2007-12-02 01:59:15 -0800 (Sun, 02 Dec 2007) | 1 line
Add some parameters to the standalone hash build.
........
r41574 | danieljames | 2007-12-02 02:23:58 -0800 (Sun, 02 Dec 2007) | 2 lines
Initialise svnmerge.
........
r41575 | danieljames | 2007-12-02 02:25:22 -0800 (Sun, 02 Dec 2007) | 1 line
Fix the navbar links.
........
r41577 | jhunold | 2007-12-02 03:51:08 -0800 (Sun, 02 Dec 2007) | 3 lines
Revert revisions 41544 and 41549.
See http://lists.boost.org/Archives/boost/2007/12/131116.php for details.
........
r41580 | danieljames | 2007-12-02 05:47:31 -0800 (Sun, 02 Dec 2007) | 2 lines
Revert a change I mean to make on the fix-links branch.
........
r41582 | danieljames | 2007-12-02 06:15:25 -0800 (Sun, 02 Dec 2007) | 5 lines
Remove formal_review_process, it looks like I forgot to when I updated the
version in the new site.
Refs #1350.
........
r41587 | grafik | 2007-12-02 09:03:43 -0800 (Sun, 02 Dec 2007) | 1 line
Obsolete.
........
r41588 | hkaiser | 2007-12-02 09:18:54 -0800 (Sun, 02 Dec 2007) | 1 line
Applied patch supplied by Jens Seidel. Fixed #1410.
........
r41590 | hkaiser | 2007-12-02 11:08:13 -0800 (Sun, 02 Dec 2007) | 1 line
Wave: More fixes to allow error free compilation of every header on its own.
........
r41592 | grafik | 2007-12-02 12:15:25 -0800 (Sun, 02 Dec 2007) | 1 line
Support building of universal binaries using architecture options. Thanks to Mat Marcus. (fixes #552 #1342 #989)
........
r41593 | niels_dekker | 2007-12-02 14:10:45 -0800 (Sun, 02 Dec 2007) | 1 line
Added missing GCC version (4.0) to expected GCC failures of value_init_test
........
Added:
branches/proto/v3/libs/filesystem/example/vc++.bat
- copied unchanged from r41593, /trunk/libs/filesystem/example/vc++.bat
branches/proto/v3/libs/thread/test/condition_test_common.hpp
- copied unchanged from r41593, /trunk/libs/thread/test/condition_test_common.hpp
branches/proto/v3/libs/thread/test/test_condition_notify_all.cpp
- copied unchanged from r41593, /trunk/libs/thread/test/test_condition_notify_all.cpp
branches/proto/v3/libs/thread/test/test_condition_notify_one.cpp
- copied unchanged from r41593, /trunk/libs/thread/test/test_condition_notify_one.cpp
branches/proto/v3/libs/thread/test/test_condition_timed_wait_times_out.cpp
- copied unchanged from r41593, /trunk/libs/thread/test/test_condition_timed_wait_times_out.cpp
Removed:
branches/proto/v3/boost/fusion/include/utility.hpp
branches/proto/v3/boost/fusion/sequence/utility.hpp
branches/proto/v3/doc/html/who_s_using_boost_.html
branches/proto/v3/google_logo_40wht.png
branches/proto/v3/libs/function_types/doc/html/boostbook.css
branches/proto/v3/libs/interprocess/proj/to-do.txt
branches/proto/v3/libs/intrusive/proj/vc7ide/to-do.txt
branches/proto/v3/libs/intrusive/test/test_templates.hpp
branches/proto/v3/more/boost-dark-trans.png
branches/proto/v3/more/boost_1_33_0.jpg
branches/proto/v3/more/boost_soc_06_overview.html
branches/proto/v3/more/cvs.html
branches/proto/v3/more/faq.htm
branches/proto/v3/more/formal_review_process.htm
branches/proto/v3/more/formal_review_schedule.html
branches/proto/v3/more/google_logo_25wht.gif
branches/proto/v3/more/links.htm
branches/proto/v3/more/microsoft_vcpp.html
branches/proto/v3/more/proposal.pdf
branches/proto/v3/more/regression.html
branches/proto/v3/more/release_mgr_checklist.html
branches/proto/v3/more/release_procedures.htm
branches/proto/v3/more/space.gif
branches/proto/v3/more/version_history.html
branches/proto/v3/more/w3c_valid_css.png
branches/proto/v3/more/w3c_valid_xhtml10.png
branches/proto/v3/more/whos_using/
Properties modified:
branches/proto/v3/ (props changed)
Text files modified:
branches/proto/v3/boost/fusion/include/accumulate.hpp | 2
branches/proto/v3/boost/interprocess/detail/workaround.hpp | 8 +
branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp | 4
branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp | 8 -
branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp | 12 --
branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp | 146 ++++++------------------------
branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp | 173 +++++-------------------------------
branches/proto/v3/boost/python/converter/rvalue_from_python_data.hpp | 4
branches/proto/v3/boost/python/data_members.hpp | 6
branches/proto/v3/boost/python/detail/result.hpp | 4
branches/proto/v3/boost/python/detail/unwind_type.hpp | 2
branches/proto/v3/boost/python/object/class_metadata.hpp | 2
branches/proto/v3/boost/python/object/pointer_holder.hpp | 9 +
branches/proto/v3/boost/python/object_protocol.hpp | 14 +-
branches/proto/v3/boost/python/object_slices.hpp | 22 ++-
branches/proto/v3/boost/python/to_python_value.hpp | 4
branches/proto/v3/boost/test/impl/test_tools.ipp | 2
branches/proto/v3/boost/thread/win32/condition_variable.hpp | 156 ++++++++------------------------
branches/proto/v3/boost/thread/win32/shared_mutex.hpp | 8
branches/proto/v3/boost/thread/win32/thread.hpp | 79 ++++++++++++++++
branches/proto/v3/boost/wave/cpp_iteration_context.hpp | 1
branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp | 1
branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp | 2
branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp | 9 +
branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp | 3
branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp | 3
branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp | 21 ++--
branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp | 3
branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp | 1
branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp | 3
branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp | 12 +-
branches/proto/v3/boost/wave/util/symbol_table.hpp | 2
branches/proto/v3/boost/wave/util/time_conversion_helper.hpp | 1
branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp | 10 -
branches/proto/v3/boost/wave/wave_config.hpp | 7
branches/proto/v3/boost/wave/whitespace_handling.hpp | 1
branches/proto/v3/doc/Jamfile.v2 | 2
branches/proto/v3/doc/html/boostbook.css | 2
branches/proto/v3/doc/src/boost.xml | 2
branches/proto/v3/doc/src/boostbook.css | 2
branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2 | 8
branches/proto/v3/libs/filesystem/doc/index.htm | 29 ++++-
branches/proto/v3/libs/filesystem/example/file_size.cpp | 4
branches/proto/v3/libs/filesystem/example/simple_ls.cpp | 8
branches/proto/v3/libs/function_types/doc/Jamfile | 1
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/about_tag_types.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/acknowledgements.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/introduction.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/rationale.html | 18 +-
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/classification.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/decomposition.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/macros.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/synthesis.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/tag_types.html | 2
branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/use_cases.html | 2
branches/proto/v3/libs/function_types/doc/html/index.html | 6
branches/proto/v3/libs/functional/hash/doc/Jamfile.v2 | 12 ++
branches/proto/v3/libs/interprocess/doc/html/reference.css | 8 +
branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj | 4
branches/proto/v3/libs/interprocess/test/condition_test_template.hpp | 6
branches/proto/v3/libs/interprocess/test/expand_bwd_test_template.hpp | 4
branches/proto/v3/libs/interprocess/test/mutex_test_template.hpp | 28 ++--
branches/proto/v3/libs/interprocess/test/named_creation_template.hpp | 8
branches/proto/v3/libs/interprocess/test/semaphore_test_template.hpp | 4
branches/proto/v3/libs/interprocess/test/shared_memory_mapping_test.cpp | 2
branches/proto/v3/libs/intrusive/doc/html/reference.css | 8 +
branches/proto/v3/libs/intrusive/example/doc_splay_algorithms.cpp | 3
branches/proto/v3/libs/python/src/dict.cpp | 2
branches/proto/v3/libs/python/src/exec.cpp | 2
branches/proto/v3/libs/python/src/list.cpp | 2
branches/proto/v3/libs/python/src/long.cpp | 6
branches/proto/v3/libs/python/src/object/class.cpp | 36 +++---
branches/proto/v3/libs/python/src/object/enum.cpp | 6
branches/proto/v3/libs/python/src/object/function.cpp | 21 ++--
branches/proto/v3/libs/python/src/object/life_support.cpp | 2
branches/proto/v3/libs/python/src/str.cpp | 7
branches/proto/v3/libs/python/src/tuple.cpp | 2
branches/proto/v3/libs/python/test/Jamfile.v2 | 10 +
branches/proto/v3/libs/python/test/andreas_beyer.cpp | 4
branches/proto/v3/libs/python/test/back_reference.cpp | 2
branches/proto/v3/libs/python/test/borrowed.cpp | 4
branches/proto/v3/libs/python/test/callbacks.cpp | 2
branches/proto/v3/libs/python/test/complicated.hpp | 6
branches/proto/v3/libs/python/test/exec.cpp | 2
branches/proto/v3/libs/python/test/m1.cpp | 6
branches/proto/v3/libs/python/test/numpy.cpp | 4
branches/proto/v3/libs/python/test/operators_wrapper.cpp | 4
branches/proto/v3/libs/python/test/pickle1.cpp | 4
branches/proto/v3/libs/python/test/pickle2.cpp | 4
branches/proto/v3/libs/python/test/pickle3.cpp | 4
branches/proto/v3/libs/python/test/pickle4.cpp | 4
branches/proto/v3/libs/python/test/slice.cpp | 6 +
branches/proto/v3/libs/python/test/staticmethod.cpp | 2
branches/proto/v3/libs/python/test/test_class.hpp | 2
branches/proto/v3/libs/python/test/test_pointer_adoption.cpp | 2
branches/proto/v3/libs/python/test/virtual_functions.cpp | 2
branches/proto/v3/libs/thread/src/win32/thread.cpp | 133 +++++++++++++++++++++++++---
branches/proto/v3/libs/thread/src/win32/tss_pe.cpp | 3
branches/proto/v3/libs/thread/test/Jamfile.v2 | 4
branches/proto/v3/libs/thread/test/test_barrier.cpp | 2
branches/proto/v3/libs/thread/test/test_condition.cpp | 90 -------------------
branches/proto/v3/libs/thread/test/test_shared_mutex.cpp | 2
branches/proto/v3/libs/thread/test/util.inl | 21 ++++
branches/proto/v3/libs/utility/value_init_test.cpp | 38 ++++++++
branches/proto/v3/libs/wave/ChangeLog | 7 +
branches/proto/v3/status/explicit-failures-markup.xml | 23 ++++
branches/proto/v3/tools/build/v2/build/generators.jam | 25 -----
branches/proto/v3/tools/build/v2/doc/src/reference.xml | 188 +++++++++++++++++++++++++++++++++++++++
branches/proto/v3/tools/build/v2/tools/darwin.jam | 120 +++++++++++++++++++++++-
branches/proto/v3/tools/build/v2/tools/msvc.jam | 10 +
branches/proto/v3/tools/build/v2/tools/python.jam | 15 +-
branches/proto/v3/tools/build/v2/tools/testing.jam | 3
branches/proto/v3/tools/jam/doc/bjam.qbk | 65 +++++++++++++
branches/proto/v3/tools/jam/doc/history.qbk | 68 ++++++++++++++
branches/proto/v3/tools/jam/src/build.bat | 26 +++++
branches/proto/v3/tools/jam/src/build.jam | 7 +
branches/proto/v3/tools/jam/src/execnt.c | 1
branches/proto/v3/tools/jam/test/action_status.jam | 5 +
119 files changed, 1173 insertions(+), 777 deletions(-)
Modified: branches/proto/v3/boost/fusion/include/accumulate.hpp
==============================================================================
--- branches/proto/v3/boost/fusion/include/accumulate.hpp (original)
+++ branches/proto/v3/boost/fusion/include/accumulate.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -7,6 +7,6 @@
#if !defined(FUSION_INCLUDE_ACCUMULATE)
#define FUSION_INCLUDE_ACCUMULATE
-#include <boost/fusion/algorithm/accumulate.hpp>
+#include <boost/fusion/algorithm/iteration/accumulate.hpp>
#endif
Deleted: branches/proto/v3/boost/fusion/include/utility.hpp
==============================================================================
--- branches/proto/v3/boost/fusion/include/utility.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,12 +0,0 @@
-/*=============================================================================
- Copyright (c) 2001-2007 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_INCLUDE_UTILITY)
-#define FUSION_INCLUDE_UTILITY
-
-#include <boost/fusion/sequence/utility.hpp>
-
-#endif
Deleted: branches/proto/v3/boost/fusion/sequence/utility.hpp
==============================================================================
--- branches/proto/v3/boost/fusion/sequence/utility.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,14 +0,0 @@
-//
-// Copyright (c) 2006 João Abecasis
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#if !defined(BOOST_FUSION_SEQUENCE_UTILITY_HPP_INCLUDED)
-#define BOOST_FUSION_SEQUENCE_UTILITY_HPP_INCLUDED
-
-# include <boost/fusion/sequence/utility/unpack_args.hpp>
-
-#endif // include guard
Modified: branches/proto/v3/boost/interprocess/detail/workaround.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/detail/workaround.hpp (original)
+++ branches/proto/v3/boost/interprocess/detail/workaround.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -15,6 +15,8 @@
#if !(defined BOOST_WINDOWS) || (defined BOOST_DISABLE_WIN32)
+ #include <unistd.h>
+
#if defined(_POSIX_THREAD_PROCESS_SHARED)
# if !((_XOPEN_VERSION >= 600) && (_POSIX_THREAD_PROCESS_SHARED - 0 <= 0))
# if !defined(__CYGWIN__)
@@ -88,6 +90,10 @@
#endif
#endif
+ #if ((_POSIX_VERSION + 0)>= 200112L || (_XOPEN_VERSION + 0)>= 500)
+ #define BOOST_INTERPROCESS_POSIX_RECURSIVE_MUTEXES
+ #endif
+
#endif
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)
@@ -102,7 +108,7 @@
# endif
#endif
-#if defined(BOOST_INTERPROCESS_RVALUE_REFERENCE) || defined(BOOST_INTERPROCESS_VARIADIC_TEMPLATES)
+#if defined(BOOST_INTERPROCESS_RVALUE_REFERENCE) && defined(BOOST_INTERPROCESS_VARIADIC_TEMPLATES)
#define BOOST_INTERPROCESS_PERFECT_FORWARDING
#endif
Modified: branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/emulation/interprocess_mutex.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -54,9 +54,7 @@
if(now >= abs_time) return false;
do{
- boost::uint32_t prev_s = detail::atomic_cas32((boost::uint32_t*)&m_s, 1, 0);
-
- if (m_s == 1 && prev_s == 0){
+ if(this->try_lock()){
break;
}
now = microsec_clock::universal_time();
Modified: branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_mutex.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -109,13 +109,7 @@
#if defined(BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
volatile boost::uint32_t m_s;
#elif defined(BOOST_INTERPROCESS_USE_POSIX)
- #ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
- pthread_mutex_t m_mut;
- #else
- pthread_mutex_t m_mut;
- pthread_cond_t m_cond;
- bool m_locked;
- #endif
+ pthread_mutex_t m_mut;
#endif //#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)
/// @endcond
};
Modified: branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/interprocess_recursive_mutex.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -36,7 +36,7 @@
#include <boost/interprocess/detail/posix_time_types_wrk.hpp>
#include <cassert>
-#if defined BOOST_INTERPROCESS_POSIX_PROCESS_SHARED
+#if defined BOOST_INTERPROCESS_POSIX_PROCESS_SHARED && defined BOOST_INTERPROCESS_POSIX_RECURSIVE_MUTEXES
#include <pthread.h>
#include <errno.h>
#include <boost/interprocess/sync/posix/pthread_helpers.hpp>
@@ -107,15 +107,7 @@
unsigned int m_nLockCount;
detail::OS_thread_id_t m_nOwner;
#else //#if defined (BOOST_INTERPROCESS_USE_GENERIC_EMULATION)
- #if (_POSIX_VERSION >= 200112L || _XOPEN_VERSION >= 500) && defined BOOST_INTERPROCESS_POSIX_TIMEOUTS
- pthread_mutex_t m_mut;
- #else //#if (_POSIX_VERSION >= 200112L || _XOPEN_VERSION >= 500) && defined BOOST_INTERPROCESS_POSIX_TIMEOUTS
- pthread_mutex_t m_mut;
- pthread_cond_t m_unlocked;
- pthread_t m_thread_id;
- bool m_valid_id;
- unsigned int m_count;
- #endif //#if (_POSIX_VERSION >= 200112L || _XOPEN_VERSION >= 500) && defined BOOST_INTERPROCESS_POSIX_TIMEOUTS
+ pthread_mutex_t m_mut;
#endif //#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)
/// @endcond
};
Modified: branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/interprocess_mutex.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -27,13 +27,13 @@
#include <boost/interprocess/sync/posix/ptime_to_timespec.hpp>
#include <boost/interprocess/detail/posix_time_types_wrk.hpp>
#include <boost/interprocess/exceptions.hpp>
+#ifndef BOOST_INTERPROCESS_POSIX_TIMEOUTS
+# include <boost/interprocess/detail/os_thread_functions.hpp>
+#endif
namespace boost {
-
namespace interprocess {
-#ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
-
inline interprocess_mutex::interprocess_mutex()
{
detail::mutexattr_wrapper mut_attr;
@@ -56,139 +56,51 @@
inline bool interprocess_mutex::try_lock()
{
int res = pthread_mutex_trylock(&m_mut);
- if (res == EDEADLK) throw lock_exception();
- assert(res == 0 || res == EBUSY);
+ if (!(res == 0 || res == EBUSY))
+ throw lock_exception();
return res == 0;
}
inline bool interprocess_mutex::timed_lock(const boost::posix_time::ptime &abs_time)
{
+ #ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
+
timespec ts = detail::ptime_to_timespec(abs_time);
int res = pthread_mutex_timedlock(&m_mut, &ts);
- if (res == EDEADLK || (res != 0 && res != ETIMEDOUT))
+ if (res != 0 && res != ETIMEDOUT)
throw lock_exception();
return res == 0;
-}
-inline void interprocess_mutex::unlock()
-{
- int res = 0;
- res = pthread_mutex_unlock(&m_mut);
-// if (res == EPERM) throw lock_exception();
- assert(res == 0);
-}
+ #else //BOOST_INTERPROCESS_POSIX_TIMEOUTS
-#else //#ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
+ //Obtain current count and target time
+ boost::posix_time::ptime now = microsec_clock::universal_time();
-inline interprocess_mutex::interprocess_mutex()
- : m_locked(false)
-{
- //Mutex init
- detail::mutexattr_wrapper mut_attr;
- detail::mutex_initializer mut(m_mut, mut_attr);
-
- //Condition init
- detail::condattr_wrapper cond_attr;
- detail::condition_initializer cond(m_cond, cond_attr);
-
- mut.release();
- cond.release();
-}
+ if(now >= abs_time) return false;
-inline interprocess_mutex::~interprocess_mutex()
-{
- assert(!m_locked);
- int res = 0;
- res = pthread_mutex_destroy(&m_mut);
- assert(res == 0);
+ do{
+ if(this->try_lock()){
+ break;
+ }
+ now = microsec_clock::universal_time();
+
+ if(now >= abs_time){
+ return false;
+ }
+ // relinquish current time slice
+ detail::thread_yield();
+ }while (true);
+ return true;
- res = pthread_cond_destroy(&m_cond);
- assert(res == 0);
-}
-
-inline void interprocess_mutex::lock()
-{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- while (m_locked){
- res = pthread_cond_wait(&m_cond, &m_mut);
- assert(res == 0);
- }
-
- assert(!m_locked);
- m_locked = true;
-
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
-}
-
-inline bool interprocess_mutex::try_lock()
-{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- bool ret = false;
- if (!m_locked)
- {
- m_locked = true;
- ret = true;
- }
-
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
- return ret;
-}
-
-inline bool interprocess_mutex::timed_lock(const boost::posix_time::ptime &abs_time)
-{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- timespec ts = detail::ptime_to_timespec(abs_time);
-
- while (m_locked)
- {
- res = pthread_cond_timedwait(&m_cond, &m_mut, &ts);
- assert(res == 0 || res == ETIMEDOUT);
-
- if (res == ETIMEDOUT)
- break;
- }
-
- bool ret = false;
- if (!m_locked)
- {
- m_locked = true;
- ret = true;
- }
-
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
- return ret;
+ #endif //BOOST_INTERPROCESS_POSIX_TIMEOUTS
}
inline void interprocess_mutex::unlock()
{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- assert(m_locked);
- m_locked = false;
-
- res = pthread_cond_signal(&m_cond);
- assert(res == 0);
-
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
+ int res = 0;
+ res = pthread_mutex_unlock(&m_mut);
+ assert(res == 0);
}
-#endif //#ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
-
} //namespace interprocess {
-
} //namespace boost {
Modified: branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp (original)
+++ branches/proto/v3/boost/interprocess/sync/posix/interprocess_recursive_mutex.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -27,12 +27,14 @@
#include <boost/interprocess/sync/posix/ptime_to_timespec.hpp>
#include <boost/interprocess/detail/posix_time_types_wrk.hpp>
#include <boost/interprocess/exceptions.hpp>
+#ifndef BOOST_INTERPROCESS_POSIX_TIMEOUTS
+# include <boost/interprocess/detail/os_thread_functions.hpp>
+#endif
namespace boost {
namespace interprocess {
-#if (_POSIX_VERSION >= 200112L || _XOPEN_VERSION >= 500) && defined BOOST_INTERPROCESS_POSIX_TIMEOUTS
inline interprocess_recursive_mutex::interprocess_recursive_mutex()
{
detail::mutexattr_wrapper mut_attr(true);
@@ -48,179 +50,58 @@
inline void interprocess_recursive_mutex::lock()
{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- if (res == EDEADLK) throw lock_exception();
- assert(res == 0);
+ if (pthread_mutex_lock(&m_mut) != 0)
+ throw lock_exception();
}
inline bool interprocess_recursive_mutex::try_lock()
{
- int res = 0;
- res = pthread_mutex_trylock(&m_mut);
- if (res == EDEADLK) throw lock_exception();
- assert(res == 0 || res == EBUSY);
+ int res = pthread_mutex_trylock(&m_mut);
+ if (!(res == 0 || res == EBUSY))
+ throw lock_exception();
return res == 0;
}
inline bool interprocess_recursive_mutex::timed_lock(const boost::posix_time::ptime &abs_time)
{
+ #ifdef BOOST_INTERPROCESS_POSIX_TIMEOUTS
+
timespec ts = detail::ptime_to_timespec(abs_time);
int res = pthread_mutex_timedlock(&m_mut, &ts);
- if (res == EDEADLK) throw lock_exception();
- assert(res == 0 || res == EBUSY);
+ if (res != 0 && res != ETIMEDOUT)
+ throw lock_exception();
return res == 0;
-}
-
-inline void interprocess_recursive_mutex::unlock()
-{
- int res = 0;
- res = pthread_mutex_unlock(&m_mut);
- if (res == EPERM) throw lock_exception();
- assert(res == 0);
-}
-
-#else //#if (_POSIX_VERSION >= 200112L || _XOPEN_VERSION >= 500) && defined BOOST_INTERPROCESS_POSIX_TIMEOUTS
-inline interprocess_recursive_mutex::interprocess_recursive_mutex()
- : m_valid_id(false), m_count(0)
-{
- //Mutex init
- detail::mutexattr_wrapper mut_attr;
- detail::mutex_initializer mut(m_mut, mut_attr);
-
- //Condition init
- detail::condattr_wrapper cond_attr;
- detail::condition_initializer cond(m_unlocked, cond_attr);
+ #else //BOOST_INTERPROCESS_POSIX_TIMEOUTS
- mut.release();
- cond.release();
-}
-
-inline interprocess_recursive_mutex::~interprocess_recursive_mutex()
-{
- int res = 0;
- res = pthread_mutex_destroy(&m_mut);
- assert(res == 0);
+ //Obtain current count and target time
+ boost::posix_time::ptime now = microsec_clock::universal_time();
- res = pthread_cond_destroy(&m_unlocked);
- assert(res == 0);
-}
+ if(now >= abs_time) return false;
-inline void interprocess_recursive_mutex::lock()
-{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- if(res != 0){
- throw interprocess_exception(system_error_code());
- }
- assert(res == 0);
-
- pthread_t tid = pthread_self();
- if (m_valid_id && pthread_equal(m_thread_id, tid)){
- ++m_count;
- }
- else{
- while (m_valid_id)
- {
- res = pthread_cond_wait(&m_unlocked, &m_mut);
- assert(res == 0);
+ do{
+ if(this->try_lock()){
+ break;
}
+ now = microsec_clock::universal_time();
- m_thread_id = tid;
- m_valid_id = true;
- m_count = 1;
- }
-
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
-}
-
-inline bool interprocess_recursive_mutex::try_lock()
-{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- bool ret = false;
- pthread_t tid = pthread_self();
- if (m_valid_id && pthread_equal(m_thread_id, tid)){
- ++m_count;
- ret = true;
- }
- else if (!m_valid_id){
- m_thread_id = tid;
- m_valid_id = true;
- m_count = 1;
- ret = true;
- }
-
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
- return ret;
-}
-
-inline bool interprocess_recursive_mutex::timed_lock(const boost::posix_time::ptime &abs_time)
-{
- int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- bool ret = false;
- pthread_t tid = pthread_self();
- if (m_valid_id && pthread_equal(m_thread_id, tid)){
- ++m_count;
- ret = true;
- }
- else{
- timespec ts = detail::ptime_to_timespec(abs_time);
-
- while (m_valid_id){
- res = pthread_cond_timedwait(&m_unlocked, &m_mut, &ts);
- if (res == ETIMEDOUT)
- break;
- assert(res == 0);
- }
-
- if (!m_valid_id){
- m_thread_id = tid;
- m_valid_id = true;
- m_count = 1;
- ret = true;
+ if(now >= abs_time){
+ return false;
}
- }
+ // relinquish current time slice
+ detail::thread_yield();
+ }while (true);
+ return true;
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
- return ret;
+ #endif //BOOST_INTERPROCESS_POSIX_TIMEOUTS
}
inline void interprocess_recursive_mutex::unlock()
{
int res = 0;
- res = pthread_mutex_lock(&m_mut);
- assert(res == 0);
-
- pthread_t tid = pthread_self();
- if (m_valid_id && !pthread_equal(m_thread_id, tid)){
- res = pthread_mutex_unlock(&m_mut);
- assert(res == 0);
- throw lock_exception();
- }
-
- if (--m_count == 0){
- assert(m_valid_id);
- m_valid_id = false;
-
- res = pthread_cond_signal(&m_unlocked);
- assert(res == 0);
- }
-
res = pthread_mutex_unlock(&m_mut);
assert(res == 0);
}
-#endif //#if (_POSIX_VERSION >= 200112L || _XOPEN_VERSION >= 500) && defined BOOST_INTERPROCESS_POSIX_TIMEOUTS
-
} //namespace interprocess {
} //namespace boost {
Modified: branches/proto/v3/boost/python/converter/rvalue_from_python_data.hpp
==============================================================================
--- branches/proto/v3/boost/python/converter/rvalue_from_python_data.hpp (original)
+++ branches/proto/v3/boost/python/converter/rvalue_from_python_data.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -117,9 +117,9 @@
// Implementataions
//
template <class T>
-inline rvalue_from_python_data<T>::rvalue_from_python_data(rvalue_from_python_stage1_data const& stage1)
+inline rvalue_from_python_data<T>::rvalue_from_python_data(rvalue_from_python_stage1_data const& _stage1)
{
- this->stage1 = stage1;
+ this->stage1 = _stage1;
}
template <class T>
Modified: branches/proto/v3/boost/python/data_members.hpp
==============================================================================
--- branches/proto/v3/boost/python/data_members.hpp (original)
+++ branches/proto/v3/boost/python/data_members.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -265,7 +265,8 @@
template <class D>
inline object make_getter(D& x)
{
- detail::not_specified policy;
+ detail::not_specified policy
+ = detail::not_specified(); // suppress a SunPro warning
return detail::make_getter(x, policy, is_member_pointer<D>(), 0L);
}
@@ -273,7 +274,8 @@
template <class D>
inline object make_getter(D const& d)
{
- detail::not_specified policy;
+ detail::not_specified policy
+ = detail::not_specified(); // Suppress a SunPro warning
return detail::make_getter(d, policy, is_member_pointer<D>(), 0L);
}
# endif
Modified: branches/proto/v3/boost/python/detail/result.hpp
==============================================================================
--- branches/proto/v3/boost/python/detail/result.hpp (original)
+++ branches/proto/v3/boost/python/detail/result.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -95,7 +95,7 @@
# define N BOOST_PP_ITERATION()
template <class R BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class A)>
-boost::type<R>* result(R (*pf)(BOOST_PP_ENUM_PARAMS_Z(1, N, A)), int = 0)
+boost::type<R>* result(R (*)(BOOST_PP_ENUM_PARAMS_Z(1, N, A)), int = 0)
{
return 0;
}
@@ -120,7 +120,7 @@
# define Q BOOST_PYTHON_CV_QUALIFIER(BOOST_PP_RELATIVE_ITERATION(1))
template <class R, class T BOOST_PP_ENUM_TRAILING_PARAMS_Z(1, N, class A)>
-boost::type<R>* result(R (T::*pmf)(BOOST_PP_ENUM_PARAMS_Z(1, N, A)) Q, int = 0)
+boost::type<R>* result(R (T::*)(BOOST_PP_ENUM_PARAMS_Z(1, N, A)) Q, int = 0)
{
return 0;
}
Modified: branches/proto/v3/boost/python/detail/unwind_type.hpp
==============================================================================
--- branches/proto/v3/boost/python/detail/unwind_type.hpp (original)
+++ branches/proto/v3/boost/python/detail/unwind_type.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -149,7 +149,7 @@
template <class Generator, class U>
inline typename Generator::result_type
#ifndef _MSC_VER
-unwind_type(boost::type<U>*p, Generator*)
+unwind_type(boost::type<U>*, Generator*)
#else
unwind_type(boost::type<U>*p =0, Generator* =0)
#endif
Modified: branches/proto/v3/boost/python/object/class_metadata.hpp
==============================================================================
--- branches/proto/v3/boost/python/object/class_metadata.hpp (original)
+++ branches/proto/v3/boost/python/object/class_metadata.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -236,7 +236,7 @@
//
// Support for converting smart pointers to python
//
- inline static void maybe_register_pointer_to_python(void*,void*,void*) {}
+ inline static void maybe_register_pointer_to_python(...) {}
#ifndef BOOST_PYTHON_NO_PY_SYGNATURES
inline static void maybe_register_pointer_to_python(void*,void*,mpl::true_*)
Modified: branches/proto/v3/boost/python/object/pointer_holder.hpp
==============================================================================
--- branches/proto/v3/boost/python/object/pointer_holder.hpp (original)
+++ branches/proto/v3/boost/python/object/pointer_holder.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -127,7 +127,14 @@
)
return &this->m_p;
- Value* p = get_pointer(this->m_p);
+ Value* p
+# if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+ = static_cast<Value*>( get_pointer(this->m_p) )
+# else
+ = get_pointer(this->m_p)
+# endif
+ ;
+
if (p == 0)
return 0;
Modified: branches/proto/v3/boost/python/object_protocol.hpp
==============================================================================
--- branches/proto/v3/boost/python/object_protocol.hpp (original)
+++ branches/proto/v3/boost/python/object_protocol.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -24,45 +24,45 @@
# endif
template <class Target, class Key>
-object getattr(Target const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(key))
+object getattr(Target const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
return getattr(object(target), object(key));
}
template <class Target, class Key, class Default>
-object getattr(Target const& target, Key const& key, Default const& default_ BOOST_PYTHON_NO_ARRAY_ARG(key))
+object getattr(Target const& target, Key const& key, Default const& default_ BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
return getattr(object(target), object(key), object(default_));
}
template <class Key, class Value>
-void setattr(object const& target, Key const& key, Value const& value BOOST_PYTHON_NO_ARRAY_ARG(key))
+void setattr(object const& target, Key const& key, Value const& value BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
setattr(target, object(key), object(value));
}
template <class Key>
-void delattr(object const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(key))
+void delattr(object const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
delattr(target, object(key));
}
template <class Target, class Key>
-object getitem(Target const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(key))
+object getitem(Target const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
return getitem(object(target), object(key));
}
template <class Key, class Value>
-void setitem(object const& target, Key const& key, Value const& value BOOST_PYTHON_NO_ARRAY_ARG(key))
+void setitem(object const& target, Key const& key, Value const& value BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
setitem(target, object(key), object(value));
}
template <class Key>
-void delitem(object const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(key))
+void delitem(object const& target, Key const& key BOOST_PYTHON_NO_ARRAY_ARG(Key))
{
delitem(target, object(key));
}
Modified: branches/proto/v3/boost/python/object_slices.hpp
==============================================================================
--- branches/proto/v3/boost/python/object_slices.hpp (original)
+++ branches/proto/v3/boost/python/object_slices.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -27,6 +27,12 @@
static void del(object const& target, key_type const& key);
};
+template <class T, class U>
+inline slice_policies::key_type slice_key(T x, U y)
+{
+ return slice_policies::key_type(handle<>(x), handle<>(y));
+}
+
//
// implementation
//
@@ -35,7 +41,7 @@
object_operators<U>::slice(object_cref start, object_cref finish)
{
object_cref2 x = *static_cast<U*>(this);
- return object_slice(x, std::make_pair(borrowed(start.ptr()), borrowed(finish.ptr())));
+ return object_slice(x, api::slice_key(borrowed(start.ptr()), borrowed(finish.ptr())));
}
template <class U>
@@ -43,7 +49,7 @@
object_operators<U>::slice(object_cref start, object_cref finish) const
{
object_cref2 x = *static_cast<U const*>(this);
- return const_object_slice(x, std::make_pair(borrowed(start.ptr()), borrowed(finish.ptr())));
+ return const_object_slice(x, api::slice_key(borrowed(start.ptr()), borrowed(finish.ptr())));
}
template <class U>
@@ -51,7 +57,7 @@
object_operators<U>::slice(slice_nil, object_cref finish)
{
object_cref2 x = *static_cast<U*>(this);
- return object_slice(x, std::make_pair(allow_null((PyObject*)0), borrowed(finish.ptr())));
+ return object_slice(x, api::slice_key(allow_null((PyObject*)0), borrowed(finish.ptr())));
}
template <class U>
@@ -59,7 +65,7 @@
object_operators<U>::slice(slice_nil, object_cref finish) const
{
object_cref2 x = *static_cast<U const*>(this);
- return const_object_slice(x, std::make_pair(allow_null((PyObject*)0), borrowed(finish.ptr())));
+ return const_object_slice(x, api::slice_key(allow_null((PyObject*)0), borrowed(finish.ptr())));
}
template <class U>
@@ -67,7 +73,7 @@
object_operators<U>::slice(slice_nil, slice_nil)
{
object_cref2 x = *static_cast<U*>(this);
- return object_slice(x, std::make_pair(allow_null((PyObject*)0), allow_null((PyObject*)0)));
+ return object_slice(x, api::slice_key(allow_null((PyObject*)0), allow_null((PyObject*)0)));
}
template <class U>
@@ -75,7 +81,7 @@
object_operators<U>::slice(slice_nil, slice_nil) const
{
object_cref2 x = *static_cast<U const*>(this);
- return const_object_slice(x, std::make_pair(allow_null((PyObject*)0), allow_null((PyObject*)0)));
+ return const_object_slice(x, api::slice_key(allow_null((PyObject*)0), allow_null((PyObject*)0)));
}
template <class U>
@@ -83,7 +89,7 @@
object_operators<U>::slice(object_cref start, slice_nil)
{
object_cref2 x = *static_cast<U*>(this);
- return object_slice(x, std::make_pair(borrowed(start.ptr()), allow_null((PyObject*)0)));
+ return object_slice(x, api::slice_key(borrowed(start.ptr()), allow_null((PyObject*)0)));
}
template <class U>
@@ -91,7 +97,7 @@
object_operators<U>::slice(object_cref start, slice_nil) const
{
object_cref2 x = *static_cast<U const*>(this);
- return const_object_slice(x, std::make_pair(borrowed(start.ptr()), allow_null((PyObject*)0)));
+ return const_object_slice(x, api::slice_key(borrowed(start.ptr()), allow_null((PyObject*)0)));
}
# if !defined(BOOST_MSVC) || BOOST_MSVC > 1300
template <class U>
Modified: branches/proto/v3/boost/python/to_python_value.hpp
==============================================================================
--- branches/proto/v3/boost/python/to_python_value.hpp (original)
+++ branches/proto/v3/boost/python/to_python_value.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -36,7 +36,7 @@
struct object_manager_get_pytype
{
template <class U>
- static PyTypeObject const* get( U& (*p)() =0)
+ static PyTypeObject const* get( U& (*)() =0)
{
return converter::object_manager_traits<U>::get_pytype();
}
@@ -46,7 +46,7 @@
struct object_manager_get_pytype<true>
{
template <class U>
- static PyTypeObject const* get( U const& (*p)() =0)
+ static PyTypeObject const* get( U const& (*)() =0)
{
return converter::object_manager_traits<U>::get_pytype();
}
Modified: branches/proto/v3/boost/test/impl/test_tools.ipp
==============================================================================
--- branches/proto/v3/boost/test/impl/test_tools.ipp (original)
+++ branches/proto/v3/boost/test/impl/test_tools.ipp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -527,7 +527,7 @@
if( !m_pimpl->m_pattern.is_open() ) {
result = false;
- result.message() << "Pattern file could not be open!";
+ result.message() << "Pattern file could not be opened!";
}
else {
if( m_pimpl->m_match_or_save ) {
Modified: branches/proto/v3/boost/thread/win32/condition_variable.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/condition_variable.hpp (original)
+++ branches/proto/v3/boost/thread/win32/condition_variable.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -13,7 +13,6 @@
#include <boost/thread/thread.hpp>
#include <boost/thread/thread_time.hpp>
#include "interlocked_read.hpp"
-#include <boost/cstdint.hpp>
#include <boost/thread/xtime.hpp>
namespace boost
@@ -112,136 +111,65 @@
};
- protected:
- struct timeout
+ template<typename lock_type>
+ void start_wait_loop_first_time(relocker<lock_type>& locker,
+ detail::win32::handle_manager& local_wake_sem)
{
- unsigned long start;
- uintmax_t milliseconds;
- bool relative;
- boost::system_time abs_time;
-
- static unsigned long const max_non_infinite_wait=0xfffffffe;
-
- timeout(uintmax_t milliseconds_):
- start(win32::GetTickCount()),
- milliseconds(milliseconds_),
- relative(true),
- abs_time(boost::get_system_time())
- {}
-
- timeout(boost::system_time const& abs_time_):
- start(win32::GetTickCount()),
- milliseconds(0),
- relative(false),
- abs_time(abs_time_)
- {}
-
- struct remaining_time
+ locker.unlock();
+ if(!wake_sem)
{
- bool more;
- unsigned long milliseconds;
-
- remaining_time(uintmax_t remaining):
- more(remaining>max_non_infinite_wait),
- milliseconds(more?max_non_infinite_wait:(unsigned long)remaining)
- {}
- };
-
- remaining_time remaining_milliseconds() const
+ wake_sem=detail::win32::create_anonymous_semaphore(0,LONG_MAX);
+ BOOST_ASSERT(wake_sem);
+ }
+ local_wake_sem=detail::win32::duplicate_handle(wake_sem);
+
+ if(generations[0].notified)
{
- if(milliseconds==~uintmax_t(0))
- {
- return remaining_time(win32::infinite);
- }
- else if(relative)
- {
- unsigned long const now=win32::GetTickCount();
- unsigned long const elapsed=now-start;
- return remaining_time((elapsed<milliseconds)?(milliseconds-elapsed):0);
- }
- else
- {
- system_time const now=get_system_time();
- if(abs_time<now)
- {
- return remaining_time(0);
- }
- return remaining_time((abs_time-get_system_time()).total_milliseconds()+1);
- }
+ shift_generations_down();
}
-
- static timeout sentinel()
+ else if(!active_generation_count)
{
- return timeout(sentinel_type());
+ active_generation_count=1;
}
- private:
- struct sentinel_type
- {};
-
- explicit timeout(sentinel_type):
- start(0),milliseconds(~uintmax_t(0)),relative(true)
- {}
- };
+ }
+
+ template<typename lock_type>
+ void start_wait_loop(relocker<lock_type>& locker,
+ detail::win32::handle_manager& local_wake_sem,
+ detail::win32::handle_manager& sem)
+ {
+ boost::mutex::scoped_lock internal_lock(internal_mutex);
+ detail::interlocked_write_release(&total_count,total_count+1);
+ if(!local_wake_sem)
+ {
+ start_wait_loop_first_time(locker,local_wake_sem);
+ }
+ if(!generations[0].semaphore)
+ {
+ generations[0].semaphore=detail::win32::create_anonymous_semaphore(0,LONG_MAX);
+ BOOST_ASSERT(generations[0].semaphore);
+ }
+ ++generations[0].count;
+ sem=detail::win32::duplicate_handle(generations[0].semaphore);
+ }
+ protected:
template<typename lock_type>
bool do_wait(lock_type& lock,timeout wait_until)
{
detail::win32::handle_manager local_wake_sem;
detail::win32::handle_manager sem;
- bool first_loop=true;
bool woken=false;
relocker<lock_type> locker(lock);
while(!woken)
{
+ start_wait_loop(locker,local_wake_sem,sem);
+
+ if(!this_thread::interruptible_wait(sem,wait_until))
{
- boost::mutex::scoped_lock internal_lock(internal_mutex);
- detail::interlocked_write_release(&total_count,total_count+1);
- if(first_loop)
- {
- locker.unlock();
- if(!wake_sem)
- {
- wake_sem=detail::win32::create_anonymous_semaphore(0,LONG_MAX);
- BOOST_ASSERT(wake_sem);
- }
- local_wake_sem=detail::win32::duplicate_handle(wake_sem);
-
- if(generations[0].notified)
- {
- shift_generations_down();
- }
- else if(!active_generation_count)
- {
- active_generation_count=1;
- }
-
- first_loop=false;
- }
- if(!generations[0].semaphore)
- {
- generations[0].semaphore=detail::win32::create_anonymous_semaphore(0,LONG_MAX);
- BOOST_ASSERT(generations[0].semaphore);
- }
- ++generations[0].count;
- sem=detail::win32::duplicate_handle(generations[0].semaphore);
- }
- while(true)
- {
- timeout::remaining_time const remaining=wait_until.remaining_milliseconds();
- if(this_thread::interruptible_wait(sem,remaining.milliseconds))
- {
- break;
- }
- else if(!remaining.more)
- {
- return false;
- }
- if(wait_until.relative)
- {
- wait_until.milliseconds-=timeout::max_non_infinite_wait;
- }
+ return false;
}
unsigned long const woken_result=detail::win32::WaitForSingleObject(local_wake_sem,0);
@@ -333,7 +261,7 @@
public:
void wait(unique_lock<mutex>& m)
{
- do_wait(m,timeout::sentinel());
+ do_wait(m,detail::timeout::sentinel());
}
template<typename predicate_type>
@@ -372,7 +300,7 @@
template<typename lock_type>
void wait(lock_type& m)
{
- do_wait(m,timeout::sentinel());
+ do_wait(m,detail::timeout::sentinel());
}
template<typename lock_type,typename predicate_type>
Modified: branches/proto/v3/boost/thread/win32/shared_mutex.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/shared_mutex.hpp (original)
+++ branches/proto/v3/boost/thread/win32/shared_mutex.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -48,10 +48,10 @@
}
state_data state;
- void* semaphores[2];
- void* &unlock_sem;
- void* &exclusive_sem;
- void* upgrade_sem;
+ detail::win32::handle semaphores[2];
+ detail::win32::handle &unlock_sem;
+ detail::win32::handle &exclusive_sem;
+ detail::win32::handle upgrade_sem;
void release_waiters(state_data old_state)
{
Modified: branches/proto/v3/boost/thread/win32/thread.hpp
==============================================================================
--- branches/proto/v3/boost/thread/win32/thread.hpp (original)
+++ branches/proto/v3/boost/thread/win32/thread.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -19,6 +19,7 @@
#include <list>
#include <algorithm>
#include <boost/ref.hpp>
+#include <boost/cstdint.hpp>
namespace boost
{
@@ -73,6 +74,82 @@
};
typedef boost::intrusive_ptr<detail::thread_data_base> thread_data_ptr;
+
+ struct timeout
+ {
+ unsigned long start;
+ uintmax_t milliseconds;
+ bool relative;
+ boost::system_time abs_time;
+
+ static unsigned long const max_non_infinite_wait=0xfffffffe;
+
+ timeout(uintmax_t milliseconds_):
+ start(win32::GetTickCount()),
+ milliseconds(milliseconds_),
+ relative(true),
+ abs_time(boost::get_system_time())
+ {}
+
+ timeout(boost::system_time const& abs_time_):
+ start(win32::GetTickCount()),
+ milliseconds(0),
+ relative(false),
+ abs_time(abs_time_)
+ {}
+
+ struct remaining_time
+ {
+ bool more;
+ unsigned long milliseconds;
+
+ remaining_time(uintmax_t remaining):
+ more(remaining>max_non_infinite_wait),
+ milliseconds(more?max_non_infinite_wait:(unsigned long)remaining)
+ {}
+ };
+
+ remaining_time remaining_milliseconds() const
+ {
+ if(is_sentinel())
+ {
+ return remaining_time(win32::infinite);
+ }
+ else if(relative)
+ {
+ unsigned long const now=win32::GetTickCount();
+ unsigned long const elapsed=now-start;
+ return remaining_time((elapsed<milliseconds)?(milliseconds-elapsed):0);
+ }
+ else
+ {
+ system_time const now=get_system_time();
+ if(abs_time<=now)
+ {
+ return remaining_time(0);
+ }
+ return remaining_time((abs_time-now).total_milliseconds()+1);
+ }
+ }
+
+ bool is_sentinel() const
+ {
+ return milliseconds==~uintmax_t(0);
+ }
+
+
+ static timeout sentinel()
+ {
+ return timeout(sentinel_type());
+ }
+ private:
+ struct sentinel_type
+ {};
+
+ explicit timeout(sentinel_type):
+ start(0),milliseconds(~uintmax_t(0)),relative(true)
+ {}
+ };
}
class BOOST_THREAD_DECL thread
@@ -210,7 +287,7 @@
thread::id BOOST_THREAD_DECL get_id();
- bool BOOST_THREAD_DECL interruptible_wait(detail::win32::handle handle_to_wait_for,unsigned long milliseconds);
+ bool BOOST_THREAD_DECL interruptible_wait(detail::win32::handle handle_to_wait_for,detail::timeout target_time);
inline bool interruptible_wait(unsigned long milliseconds)
{
return interruptible_wait(detail::win32::invalid_handle_value,milliseconds);
Modified: branches/proto/v3/boost/wave/cpp_iteration_context.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpp_iteration_context.hpp (original)
+++ branches/proto/v3/boost/wave/cpp_iteration_context.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -22,6 +22,7 @@
#include <boost/wave/cpp_exceptions.hpp>
#include <boost/wave/language_support.hpp>
#include <boost/wave/util/file_position.hpp>
+#include <boost/spirit/iterator/multi_pass.hpp> // make_multi_pass
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
Modified: branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/cpp_lex_interface_generator.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -17,6 +17,7 @@
#include <boost/wave/util/file_position.hpp>
#include <boost/wave/language_support.hpp>
#include <boost/wave/cpplexer/cpp_lex_interface.hpp>
+#include <boost/wave/cpplexer/cpp_lex_token.hpp> // lex_token
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
Modified: branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp
==============================================================================
--- branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp (original)
+++ branches/proto/v3/boost/wave/cpplexer/re2clex/cpp_re.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -33,6 +33,8 @@
namespace cpplexer {
namespace re2clex {
+struct Scanner;
+
///////////////////////////////////////////////////////////////////////////////
// The scanner function to call whenever a new token is requested
BOOST_WAVE_DECL boost::wave::token_id scan(Scanner *s);
Modified: branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_chlit_grammar.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -14,6 +14,8 @@
#include <limits> // std::numeric_limits
#include <climits> // CHAR_BIT
+#include <boost/wave/wave_config.hpp>
+
#include <boost/static_assert.hpp>
#include <boost/cstdint.hpp>
@@ -26,7 +28,6 @@
#include <boost/spirit/phoenix/statements.hpp>
#include <boost/spirit/phoenix/functions.hpp>
-#include <boost/wave/wave_config.hpp>
#include <boost/wave/cpp_exceptions.hpp>
#include <boost/wave/grammars/cpp_literal_grammar_gen.hpp>
@@ -63,9 +64,9 @@
///////////////////////////////////////////////////////////////////////////////
struct compose_character_literal {
- template <typename ResultT, typename A1, typename A2, typename A3>
- struct result {
-
+ template <typename A1, typename A2, typename A3, typename A4>
+ struct result
+ {
typedef void type;
};
Modified: branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_defined_grammar.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -11,6 +11,8 @@
#if !defined(CPP_DEFINED_GRAMMAR_HPP_F48287B2_DC67_40A8_B4A1_800EFBD67869_INCLUDED)
#define CPP_DEFINED_GRAMMAR_HPP_F48287B2_DC67_40A8_B4A1_800EFBD67869_INCLUDED
+#include <boost/wave/wave_config.hpp>
+
#include <boost/assert.hpp>
#include <boost/spirit/core.hpp>
#include <boost/spirit/attribute/closure.hpp>
@@ -19,7 +21,6 @@
#include <boost/spirit/actor/push_back_actor.hpp>
#endif // SPIRIT_VERSION >= 0x1700
-#include <boost/wave/wave_config.hpp>
#include <boost/wave/token_ids.hpp>
#include <boost/wave/util/pattern_parser.hpp>
#include <boost/wave/grammars/cpp_defined_grammar_gen.hpp>
Modified: branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_expression_grammar.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -11,6 +11,8 @@
#if !defined(CPP_EXPRESSION_GRAMMAR_HPP_099CD1A4_A6C0_44BE_8F24_0B00F5BE5674_INCLUDED)
#define CPP_EXPRESSION_GRAMMAR_HPP_099CD1A4_A6C0_44BE_8F24_0B00F5BE5674_INCLUDED
+#include <boost/wave/wave_config.hpp>
+
#include <boost/assert.hpp>
#include <boost/spirit/core.hpp>
#include <boost/spirit/attribute/closure.hpp>
@@ -26,7 +28,6 @@
#include <boost/spirit/phoenix/statements.hpp>
#include <boost/spirit/phoenix/casts.hpp>
-#include <boost/wave/wave_config.hpp>
#include <boost/wave/token_ids.hpp>
#include <boost/wave/cpp_exceptions.hpp>
Modified: branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_expression_value.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -16,6 +16,7 @@
#endif // defined(BOOST_SPIRIT_DEBUG)
#include <boost/wave/wave_config.hpp>
+#include <boost/wave/grammars/cpp_value_error.hpp> // value_error
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
@@ -185,8 +186,8 @@
case is_bool:
{
int_literal_type result = value.i + as_long(rhs);
- if (rhs.value.i > 0L && value.i > result ||
- rhs.value.i < 0L && value.i < result)
+ if ((rhs.value.i > 0L && value.i > result) ||
+ (rhs.value.i < 0L && value.i < result))
{
valid = error_integer_overflow;
}
@@ -199,8 +200,8 @@
case is_int:
{
int_literal_type result = value.i + rhs.value.i;
- if (rhs.value.i > 0L && value.i > result ||
- rhs.value.i < 0L && value.i < result)
+ if ((rhs.value.i > 0L && value.i > result) ||
+ (rhs.value.i < 0L && value.i < result))
{
valid = error_integer_overflow;
}
@@ -252,8 +253,8 @@
case is_bool:
{
int_literal_type result = value.i - as_long(rhs);
- if (rhs.value.i > 0L && result > value.i ||
- rhs.value.i < 0L && result < value.i)
+ if ((rhs.value.i > 0L && result > value.i) ||
+ (rhs.value.i < 0L && result < value.i))
{
valid = error_integer_overflow;
}
@@ -266,8 +267,8 @@
case is_int:
{
int_literal_type result = value.i - rhs.value.i;
- if (rhs.value.i > 0L && result > value.i ||
- rhs.value.i < 0L && result < value.i)
+ if ((rhs.value.i > 0L && result > value.i) ||
+ (rhs.value.i < 0L && result < value.i))
{
valid = error_integer_overflow;
}
@@ -310,8 +311,8 @@
case is_int:
{
uint_literal_type result = value.ui - rhs.value.i;
- if (rhs.value.i > 0L && result > value.ui ||
- rhs.value.i < 0L && result < value.ui)
+ if ((rhs.value.i > 0L && result > value.ui) ||
+ (rhs.value.i < 0L && result < value.ui))
{
valid = error_integer_overflow;
}
Modified: branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp
==============================================================================
--- branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp (original)
+++ branches/proto/v3/boost/wave/grammars/cpp_intlit_grammar.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -11,6 +11,8 @@
#if !defined(CPP_INTLIT_GRAMMAR_HPP_2E1E70B1_F15C_4132_8554_10A231B0D91C_INCLUDED)
#define CPP_INTLIT_GRAMMAR_HPP_2E1E70B1_F15C_4132_8554_10A231B0D91C_INCLUDED
+#include <boost/wave/wave_config.hpp>
+
#include <boost/spirit/core.hpp>
#include <boost/spirit/attribute/closure.hpp>
#if SPIRIT_VERSION >= 0x1700
@@ -22,7 +24,6 @@
#include <boost/spirit/phoenix/primitives.hpp>
#include <boost/spirit/phoenix/statements.hpp>
-#include <boost/wave/wave_config.hpp>
#include <boost/wave/cpp_exceptions.hpp>
#include <boost/wave/grammars/cpp_literal_grammar_gen.hpp>
Modified: branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_macromap_predef.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -19,6 +19,7 @@
#include <boost/wave/wave_config.hpp>
#include <boost/wave/wave_config_constant.hpp>
#include <boost/wave/token_ids.hpp>
+#include <boost/wave/util/time_conversion_helper.hpp> // time_conversion_helper
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
Modified: branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp (original)
+++ branches/proto/v3/boost/wave/util/cpp_macromap_utils.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -17,6 +17,7 @@
#include <boost/wave/wave_config.hpp>
#include <boost/wave/token_ids.hpp>
+#include <boost/wave/util/unput_queue_iterator.hpp>
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
@@ -420,8 +421,6 @@
inline bool
is_whitespace_only (ContainerT const &argument)
{
- using namespace cpplexer;
-
typename ContainerT::const_iterator end = argument.end();
for (typename ContainerT::const_iterator it = argument.begin();
it != end; ++it)
Modified: branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp (original)
+++ branches/proto/v3/boost/wave/util/insert_whitespace_detection.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -84,7 +84,7 @@
}
// T_INTLIT
inline bool
- handle_intlit(boost::wave::token_id prev, boost::wave::token_id before)
+ handle_intlit(boost::wave::token_id prev, boost::wave::token_id /*before*/)
{
using namespace boost::wave;
switch (static_cast<unsigned int>(prev)) {
@@ -101,7 +101,7 @@
// T_FLOATLIT
inline bool
handle_floatlit(boost::wave::token_id prev,
- boost::wave::token_id before)
+ boost::wave::token_id /*before*/)
{
using namespace boost::wave;
switch (static_cast<unsigned int>(prev)) {
@@ -118,7 +118,7 @@
// <% T_LEFTBRACE
inline bool
handle_alt_leftbrace(boost::wave::token_id prev,
- boost::wave::token_id before)
+ boost::wave::token_id /*before*/)
{
using namespace boost::wave;
switch (static_cast<unsigned int>(prev)) {
@@ -131,7 +131,7 @@
// <: T_LEFTBRACKET
inline bool
handle_alt_leftbracket(boost::wave::token_id prev,
- boost::wave::token_id before)
+ boost::wave::token_id /*before*/)
{
using namespace boost::wave;
switch (static_cast<unsigned int>(prev)) {
@@ -144,7 +144,7 @@
// T_FIXEDPOINTLIT
inline bool
handle_fixedpointlit(boost::wave::token_id prev,
- boost::wave::token_id before)
+ boost::wave::token_id /*before*/)
{
using namespace boost::wave;
switch (static_cast<unsigned int>(prev)) {
@@ -174,7 +174,7 @@
// T_QUESTION_MARK
inline bool
handle_questionmark(boost::wave::token_id prev,
- boost::wave::token_id before)
+ boost::wave::token_id /*before*/)
{
using namespace boost::wave;
switch(static_cast<unsigned int>(prev)) {
Modified: branches/proto/v3/boost/wave/util/symbol_table.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/symbol_table.hpp (original)
+++ branches/proto/v3/boost/wave/util/symbol_table.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -14,6 +14,8 @@
#include <map>
#include <boost/wave/wave_config.hpp>
+#include <boost/shared_ptr.hpp>
+
#if BOOST_WAVE_SERIALIZATION != 0
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/map.hpp>
Modified: branches/proto/v3/boost/wave/util/time_conversion_helper.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/time_conversion_helper.hpp (original)
+++ branches/proto/v3/boost/wave/util/time_conversion_helper.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -12,6 +12,7 @@
#define TIME_CONVERSION_HELPER_HPP_DA97E389_1797_43BA_82AE_B071064B3EF4_INCLUDED
#include <ctime>
+#include <cstring>
#include <boost/config.hpp>
#include <boost/spirit/core.hpp>
Modified: branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp
==============================================================================
--- branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp (original)
+++ branches/proto/v3/boost/wave/util/unput_queue_iterator.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -18,6 +18,7 @@
#include <boost/iterator_adaptors.hpp>
#include <boost/wave/wave_config.hpp>
+#include <boost/wave/token_ids.hpp> // token_id
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
@@ -416,10 +417,7 @@
inline boost::wave::token_id
skip_whitespace(IteratorT &first, IteratorT const &last)
{
- using namespace cpplexer;
-
- token_id id = next_token<IteratorT>::peek(first, last, false);
-
+ token_id id = next_token<IteratorT>::peek(first, last, false);
if (IS_CATEGORY(id, WhiteSpaceTokenType)) {
do {
++first;
@@ -434,11 +432,9 @@
inline boost::wave::token_id
skip_whitespace(IteratorT &first, IteratorT const &last, ContainerT &queue)
{
- using namespace cpplexer;
queue.push_back (*first); // queue up the current token
- token_id id = next_token<IteratorT>::peek(first, last, false);
-
+ token_id id = next_token<IteratorT>::peek(first, last, false);
if (IS_CATEGORY(id, WhiteSpaceTokenType)) {
do {
queue.push_back(*++first); // queue up the next whitespace
Modified: branches/proto/v3/boost/wave/wave_config.hpp
==============================================================================
--- branches/proto/v3/boost/wave/wave_config.hpp (original)
+++ branches/proto/v3/boost/wave/wave_config.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -347,7 +347,7 @@
// import as a keyword (T_IMPORT token id)
//
#if !defined(BOOST_WAVE_SUPPORT_IMPORT_KEYWORD)
-#define BOOST_WAVE_SUPPORT_IMPORT_KEYWORD 0
+#define BOOST_WAVE_SUPPORT_IMPORT_KEYWORD 0
#endif
///////////////////////////////////////////////////////////////////////////////
@@ -404,8 +404,9 @@
#define PHOENIX_LIMIT 6
#endif
#if PHOENIX_LIMIT < 6
-#error "Boost.Wave: the constant PHOENIX_LIMIT must be at least defined to 4" \
- " to compile the library."
+// boost/spirit/attribute.hpp sets PHOENIX_LIMIT to 3!
+#error "Boost.Wave: the constant PHOENIX_LIMIT must be at least defined to 6" \
+" to compile the library."
#endif
///////////////////////////////////////////////////////////////////////////////
Modified: branches/proto/v3/boost/wave/whitespace_handling.hpp
==============================================================================
--- branches/proto/v3/boost/wave/whitespace_handling.hpp (original)
+++ branches/proto/v3/boost/wave/whitespace_handling.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -16,6 +16,7 @@
#include <boost/wave/wave_config.hpp>
#include <boost/wave/token_ids.hpp>
#include <boost/wave/preprocessing_hooks.hpp>
+#include <boost/wave/language_support.hpp>
// this must occur after all of the includes and before any code appears
#ifdef BOOST_HAS_ABI_HEADERS
Modified: branches/proto/v3/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/doc/Jamfile.v2 (original)
+++ branches/proto/v3/doc/Jamfile.v2 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -29,7 +29,6 @@
<dependency>../libs/date_time/xmldoc//gregorian_autodoc.xml
<dependency>../libs/date_time/xmldoc//posix_time_autodoc.xml
<dependency>../libs/date_time/xmldoc//local_time_autodoc.xml
- <dependency>../more/whos_using//using
<dependency>../tools/jam/doc//bjam
<dependency>../tools/quickbook/doc//quickbook
<dependency>../libs/interprocess/doc//autodoc.xml
@@ -46,7 +45,6 @@
<implicit-dependency>../libs/foreach/doc//foreach
<implicit-dependency>../libs/typeof/doc//typeof
<implicit-dependency>../libs/xpressive/doc//xpressive
- <implicit-dependency>../more/whos_using//using
<implicit-dependency>../tools/jam/doc//bjam
<implicit-dependency>../tools/quickbook/doc//quickbook
<implicit-dependency>../libs/mpi/doc//mpi
Modified: branches/proto/v3/doc/html/boostbook.css
==============================================================================
--- branches/proto/v3/doc/html/boostbook.css (original)
+++ branches/proto/v3/doc/html/boostbook.css 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -266,6 +266,7 @@
width: auto !important;
margin: 0em !important;
padding: 0em !important;
+ border: none !important;
}
table.simplelist td
{
@@ -273,6 +274,7 @@
padding: 0em !important;
text-align: left !important;
font-size: 9pt !important;
+ border: none !important;
}
/*=============================================================================
Deleted: branches/proto/v3/doc/html/who_s_using_boost_.html
==============================================================================
--- branches/proto/v3/doc/html/who_s_using_boost_.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,17 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
- <head>
- <!-- Copyright (C) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
-
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt) -->
- <title>Redirect to generated documentation</title>
- <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/who_s_using_boost_.html">
- </head>
- <body>
- Automatic redirection failed, please go to
- http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/who_s_using_boost_.html
- </body>
-</html>
-
Modified: branches/proto/v3/doc/src/boost.xml
==============================================================================
--- branches/proto/v3/doc/src/boost.xml (original)
+++ branches/proto/v3/doc/src/boost.xml 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -748,8 +748,6 @@
<xi:include href="bjam.xml"/>
<xi:include href="../../tools/build/v2/doc/src/userman.xml"/>
</part>
-
- <xi:include href="using.xml"/>
</boostbook>
Modified: branches/proto/v3/doc/src/boostbook.css
==============================================================================
--- branches/proto/v3/doc/src/boostbook.css (original)
+++ branches/proto/v3/doc/src/boostbook.css 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -266,6 +266,7 @@
width: auto !important;
margin: 0em !important;
padding: 0em !important;
+ border: none !important;
}
table.simplelist td
{
@@ -273,6 +274,7 @@
padding: 0em !important;
text-align: left !important;
font-size: 9pt !important;
+ border: none !important;
}
/*=============================================================================
Deleted: branches/proto/v3/google_logo_40wht.png
==============================================================================
Binary file. No diff available.
Modified: branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/date_time/xmldoc/Jamfile.v2 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -38,7 +38,7 @@
doxygen date_time_autodoc :
$(date_time_files) :
<doxygen:param>ENABLE_PREPROCESSING=NO
- <xsl:param>"boost.doxygen.reftitle=\"Date Time Reference\""
+ <xsl:param>boost.doxygen.reftitle="Date Time Reference"
<doxygen.doxproc.title>"Date Time Reference"
<doxygen.doxproc.id>"date_time_reference"
;
@@ -46,7 +46,7 @@
doxygen gregorian_autodoc :
$(gregorian_files) :
<doxygen:param>ENABLE_PREPROCESSING=NO
- <xsl:param>"boost.doxygen.reftitle=\"Gregorian Reference\""
+ <xsl:param>boost.doxygen.reftitle="Gregorian Reference"
<doxygen.doxproc.title>"Gregorian Reference"
<doxygen.doxproc.id>"gregorian_reference"
;
@@ -54,7 +54,7 @@
doxygen posix_time_autodoc :
[ glob ../../../boost/date_time/posix_time/*.hpp ] :
<doxygen:param>ENABLE_PREPROCESSING=NO
- <xsl:param>"boost.doxygen.reftitle=\"Posix Time Reference\""
+ <xsl:param>boost.doxygen.reftitle="Posix Time Reference"
<doxygen.doxproc.title>"Posix Time Reference"
<doxygen.doxproc.id>"posix_time_reference"
;
@@ -62,7 +62,7 @@
doxygen local_time_autodoc :
[ glob ../../../boost/date_time/local_time/*.hpp ] :
<doxygen:param>ENABLE_PREPROCESSING=NO
- <xsl:param>"boost.doxygen.reftitle=\"Local Time Reference\""
+ <xsl:param>boost.doxygen.reftitle="Local Time Reference"
<doxygen.doxproc.title>"Local Time Reference"
<doxygen.doxproc.id>"local_time_reference"
;
Modified: branches/proto/v3/libs/filesystem/doc/index.htm
==============================================================================
--- branches/proto/v3/libs/filesystem/doc/index.htm (original)
+++ branches/proto/v3/libs/filesystem/doc/index.htm 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -38,10 +38,11 @@
<tr>
<td width="100%" bgcolor="#E8F5FF">
<a href="#Introduction">Introduction</a><br>
+ Using the library<br>
<a href="#tutorial">Two-minute tutorial</a><br>
<a href="#Cautions">Cautions</a><br>
<a href="#Using_reference_doc">Using the Reference Documentation</a><br>
- Examples<br>
+ Example programs<br>
<a href="#Implementation">Implementation</a><br>
<a href="#narrow-only">Using only narrow character paths</a><br>
<a href="#Building">Building the object-library</a><br>
@@ -108,7 +109,18 @@
Library's <i>fstream</i> header, except
that files are identified by <i>basic_path</i> objects rather that <i>char *</i>'s.</li>
</ul>
+<h2><a name="Using">Using</a> the library</h2>
+<p>Boost.Filesystem is implemented as a separately compiled library, so before
+using it you must install it in a location that can be found by your linker. See
+Building the object-library. </p>
+<p>The library's example directory contains very simple
+scripts for building the example programs on various
+platforms. You can use these scripts to see what's needed to compile and link
+your own programs.</p>
<h2>Two-minute <a name="tutorial">tutorial</a></h2>
+<p>(A
+<a href="http://beans.seartipy.com/2006/05/10/boost-filesystem-library-writing-portable-c-programs-to-acess-the-filesystem/">
+more elaborate tutorial</a> is also available from Tabrez Iqbal.)</p>
<p>First some preliminaries:</p>
<blockquote>
<pre>#include "boost/filesystem.hpp" // includes all needed Boost.Filesystem declarations
@@ -178,7 +190,7 @@
{
if ( find_file( itr->path(), file_name, path_found ) ) return true;
}
- else if ( itr->path().leaf() == file_name ) // see below
+ else if ( itr->leaf() == file_name ) // see below
{
path_found = itr->path();
return true;
@@ -259,8 +271,8 @@
BOOST_NO_EXCEPTIONS at the time the filesystem source files are compiled.</p>
<p>Non-throwing versions are provided of several functions that are often used
in contexts where error codes may be the preferred way to report an error.</p>
-<h2><a name="Examples">Examples</a></h2>
-<h3>simple_ls.cpp</h3>
+<h2><a name="Examples">Example programs</a></h2>
+<h3>simple_ls.cpp</h3>
<p>The example program simple_ls.cpp is
given a path as a command line argument. Since the command line argument may be
a relative path, the complete path is determined so that messages displayed
@@ -274,6 +286,8 @@
<p>Try compiling and executing simple_ls.cpp
to see how it works on your system. Try various path arguments to see what
happens.</p>
+<h3>file_size.cpp</h3>
+<p>This example program prints the file's size if it is a regular file.</p>
<h3>Other examples</h3>
<p>The programs used to generate the Boost regression test status tables use the
Filesystem Library extensively. See:</p>
@@ -305,7 +319,8 @@
macro BOOST_FILESYSTEM_NARROW_ONLY. That may be useful for dealing with legacy
compilers or operating systems.</p>
<h2><a name="Building">Building</a> the object-library</h2>
-<p>The object-library will normally be built automatically. See
+<p>The object-library will be built automatically if you are using the Boost
+build system. See
<a href="../../../more/getting_started.html">Getting Started</a>. It can also be
built manually using a Jamfile
supplied in directory libs/filesystem/build, or the user can construct an IDE
@@ -341,7 +356,7 @@
<h2><a name="Acknowledgements">Acknowledgements</a></h2>
<p>The Filesystem Library was designed and implemented by Beman Dawes. The
original <i>directory_iterator</i> and <i>filesystem_error</i> classes were
-based on prior work from Dietmar Kühl, as modified by Jan Langer. Thomas Witt
+based on prior work from Dietmar Kuehl, as modified by Jan Langer. Thomas Witt
was a particular help in later stages of initial development. Peter Dimov and
Rob Stewart made many useful suggestions and comments over a long period of
time. Howard Hinnant helped with internationalization issues.</p>
@@ -540,7 +555,7 @@
<hr>
<p>Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->08 November, 2007<!--webbot bot="Timestamp" endspan i-checksum="39371" --></p>
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->30 November, 2007<!--webbot bot="Timestamp" endspan i-checksum="39358" --></p>
<p>© Copyright Beman Dawes, 2002-2005</p>
<p> Use, modification, and distribution are subject to the Boost Software
Modified: branches/proto/v3/libs/filesystem/example/file_size.cpp
==============================================================================
--- branches/proto/v3/libs/filesystem/example/file_size.cpp (original)
+++ branches/proto/v3/libs/filesystem/example/file_size.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -32,9 +32,9 @@
return 1;
}
- if ( fs::is_directory( p ) )
+ if ( !fs::is_regular( p ) )
{
- std::cout << "not a file: " << argv[1] << std::endl;
+ std::cout << "not a regular file: " << argv[1] << std::endl;
return 1;
}
Modified: branches/proto/v3/libs/filesystem/example/simple_ls.cpp
==============================================================================
--- branches/proto/v3/libs/filesystem/example/simple_ls.cpp (original)
+++ branches/proto/v3/libs/filesystem/example/simple_ls.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -51,24 +51,24 @@
if ( fs::is_directory( dir_itr->status() ) )
{
++dir_count;
- std::cout << dir_itr->path().leaf() << " [directory]\n";
+ std::cout << dir_itr->leaf() << " [directory]\n";
}
else if ( fs::is_regular( dir_itr->status() ) )
{
++file_count;
- std::cout << dir_itr->path().leaf() << "\n";
+ std::cout << dir_itr->leaf() << "\n";
}
else
{
++other_count;
- std::cout << dir_itr->path().leaf() << " [other]\n";
+ std::cout << dir_itr->leaf() << " [other]\n";
}
}
catch ( const std::exception & ex )
{
++err_count;
- std::cout << dir_itr->path().leaf() << " " << ex.what() << std::endl;
+ std::cout << dir_itr->leaf() << " " << ex.what() << std::endl;
}
}
std::cout << "\n" << file_count << " files\n"
Modified: branches/proto/v3/libs/function_types/doc/Jamfile
==============================================================================
--- branches/proto/v3/libs/function_types/doc/Jamfile (original)
+++ branches/proto/v3/libs/function_types/doc/Jamfile 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -13,6 +13,7 @@
:
<xsl:param>boost.root=../../../..
<xsl:param>boost.libraries=../../../libraries.htm
+ <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
<xsl:param>chunk.first.sections=1
<xsl:param>chunk.section.depth=2
<xsl:param>generate.section.toc.level=2
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/about_tag_types.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/about_tag_types.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/about_tag_types.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> About Tag Types</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/acknowledgements.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/acknowledgements.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/acknowledgements.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Acknowledgements</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/introduction.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/introduction.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/introduction.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Introduction</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/rationale.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/rationale.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/rationale.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Rationale</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
@@ -26,7 +26,7 @@
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_functiontypes.rationale"></a> Rationale</h2></div></div></div>
<a name="boost_functiontypes.rationale.error_handling_rationale"></a><h3>
-<a name="id932131"></a>
+<a name="id932133"></a>
<a href="rationale.html#boost_functiontypes.rationale.error_handling_rationale">Error
handling rationale</a>
</h3>
@@ -41,7 +41,7 @@
can be spotted easily.
</p>
<a name="boost_functiontypes.rationale.why_mpl_sequences_"></a><h3>
-<a name="id932169"></a>
+<a name="id932170"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_mpl_sequences_">Why MPL Sequences?</a>
</h3>
<p>
@@ -54,7 +54,7 @@
so another reason is interoperability.
</p>
<a name="boost_functiontypes.rationale.pointer_to_member_object_types"></a><h3>
-<a name="id932226"></a>
+<a name="id932228"></a>
<a href="rationale.html#boost_functiontypes.rationale.pointer_to_member_object_types">Pointer
to member object types</a>
</h3>
@@ -63,7 +63,7 @@
functionals.
</p>
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter"></a><h3>
-<a name="id932258"></a>
+<a name="id932259"></a>
<a href="rationale.html#boost_functiontypes.rationale.the_classtransform_template_parameter">The
ClassTransform template parameter</a>
</h3>
@@ -80,7 +80,7 @@
all parameters uniformly.
</p>
<a name="boost_functiontypes.rationale.why_tag_types_"></a><h3>
-<a name="id932313"></a>
+<a name="id932315"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_tag_types_">Why tag types?</a>
</h3>
<p>
@@ -99,7 +99,7 @@
with older compilers.
</p>
<a name="boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_"></a><h3>
-<a name="id932364"></a>
+<a name="id932365"></a>
<a href="rationale.html#boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_">Is
it safe to have the synthesis templates take a callable builtin type or an
MPL sequence as the first template argument?</a>
@@ -114,7 +114,7 @@
type a sequence have been included, which can easily violate the ODR.
</p>
<a name="boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_"></a><h3>
-<a name="id932412"></a>
+<a name="id932413"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_">Why
does the hidden <code class="literal">this</code> parameter count for the function arity
of member functions?</a>
@@ -128,7 +128,7 @@
function_arity">function_arity</a><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span>
</pre>
<a name="boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_"></a><h3>
-<a name="id932539"></a>
+<a name="id932540"></a>
<a href="rationale.html#boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_">Why
ignore top-level cv-qualifiers on pointers?</a>
</h3>
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Reference</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/classification.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/classification.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/classification.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Class
templates for type classification</title>
-<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/decomposition.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/decomposition.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/decomposition.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Class templates
for type decomposition</title>
-<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/macros.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/macros.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/macros.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Macros</title>
-<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/synthesis.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/synthesis.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/synthesis.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Class templates
for type synthesis</title>
-<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/tag_types.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/tag_types.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/reference/tag_types.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Tag Types</title>
-<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../reference.html" title=" Reference">
Modified: branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/use_cases.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/use_cases.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/boost_functiontypes/use_cases.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Use Cases</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
Deleted: branches/proto/v3/libs/function_types/doc/html/boostbook.css
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/boostbook.css 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,528 +0,0 @@
-/*=============================================================================
- Copyright (c) 2004 Joel de Guzman
- http://spirit.sourceforge.net/
-
- Use, modification and distribution is subject to the Boost Software
- License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-/*=============================================================================
- Body defaults
-=============================================================================*/
-
- body
- {
- margin: 1em;
- font-family: sans-serif;
- }
-
-/*=============================================================================
- Paragraphs
-=============================================================================*/
-
- p
- {
- text-align: left;
- font-size: 10pt;
- line-height: 1.15;
- }
-
-/*=============================================================================
- Program listings
-=============================================================================*/
-
- /* Code on paragraphs */
- p tt.computeroutput
- {
- font-size: 9pt;
- }
-
- pre.synopsis
- {
- font-size: 90%;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- .programlisting,
- .screen
- {
- font-size: 9pt;
- display: block;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.5pc 0.5pc;
- }
-
- /* Program listings in tables don't get borders */
- td .programlisting,
- td .screen
- {
- margin: 0pc 0pc 0pc 0pc;
- padding: 0pc 0pc 0pc 0pc;
- }
-
-/*=============================================================================
- Headings
-=============================================================================*/
-
- h1, h2, h3, h4, h5, h6
- {
- text-align: left;
- margin: 1em 0em 0.5em 0em;
- font-weight: bold;
- }
-
- h1 { font: 140% }
- h2 { font: bold 140% }
- h3 { font: bold 130% }
- h4 { font: bold 120% }
- h5 { font: italic 110% }
- h6 { font: italic 100% }
-
- /* Top page titles */
- title,
- h1.title,
- h2.title
- h3.title,
- h4.title,
- h5.title,
- h6.title,
- .refentrytitle
- {
- font-weight: bold;
- margin-bottom: 1pc;
- }
-
- h1.title { font-size: 140% }
- h2.title { font-size: 140% }
- h3.title { font-size: 130% }
- h4.title { font-size: 120% }
- h5.title { font-size: 110% }
- h6.title { font-size: 100% }
-
- .section h1
- {
- margin: 0em 0em 0.5em 0em;
- font-size: 140%;
- }
-
- .section h2 { font-size: 140% }
- .section h3 { font-size: 130% }
- .section h4 { font-size: 120% }
- .section h5 { font-size: 110% }
- .section h6 { font-size: 100% }
-
- /* Code on titles */
- h1 tt.computeroutput { font-size: 140% }
- h2 tt.computeroutput { font-size: 140% }
- h3 tt.computeroutput { font-size: 130% }
- h4 tt.computeroutput { font-size: 120% }
- h5 tt.computeroutput { font-size: 110% }
- h6 tt.computeroutput { font-size: 100% }
-
-/*=============================================================================
- Author
-=============================================================================*/
-
- h3.author
- {
- font-size: 100%
- }
-
-/*=============================================================================
- Lists
-=============================================================================*/
-
- li
- {
- font-size: 10pt;
- line-height: 1.3;
- }
-
- /* Unordered lists */
- ul
- {
- text-align: left;
- }
-
- /* Ordered lists */
- ol
- {
- text-align: left;
- }
-
-/*=============================================================================
- Links
-=============================================================================*/
-
- a
- {
- text-decoration: none; /* no underline */
- }
-
- a:hover
- {
- text-decoration: underline;
- }
-
-/*=============================================================================
- Spirit style navigation
-=============================================================================*/
-
- .spirit-nav
- {
- text-align: right;
- }
-
- .spirit-nav a
- {
- color: white;
- padding-left: 0.5em;
- }
-
- .spirit-nav img
- {
- border-width: 0px;
- }
-
-/*=============================================================================
- Table of contents
-=============================================================================*/
-
- .toc
- {
- margin: 1pc 4% 0pc 4%;
- padding: 0.1pc 1pc 0.1pc 1pc;
- font-size: 80%;
- line-height: 1.15;
- }
-
- .boost-toc
- {
- float: right;
- padding: 0.5pc;
- }
-
-/*=============================================================================
- Tables
-=============================================================================*/
-
- .table-title,
- div.table p.title
- {
- margin-left: 4%;
- padding-right: 0.5em;
- padding-left: 0.5em;
- }
-
- .informaltable table,
- .table table
- {
- width: 92%;
- margin-left: 4%;
- margin-right: 4%;
- }
-
- div.informaltable table,
- div.table table
- {
- padding: 4px;
- }
-
- /* Table Cells */
- div.informaltable table tr td,
- div.table table tr td
- {
- padding: 0.5em;
- text-align: left;
- font-size: 9pt;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- padding: 0.5em 0.5em 0.5em 0.5em;
- border: 1pt solid white;
- font-size: 80%;
- }
-
-/*=============================================================================
- Blurbs
-=============================================================================*/
-
- div.note,
- div.tip,
- div.important,
- div.caution,
- div.warning,
- div.sidebar
- {
- font-size: 9pt; /* A little bit smaller than the main text */
- line-height: 1.2;
- display: block;
- margin: 1pc 4% 0pc 4%;
- padding: 0.5pc 0.5pc 0.0pc 0.5pc;
- }
-
- div.sidebar img
- {
- padding: 1pt;
- }
-
-/*=============================================================================
- Callouts
-=============================================================================*/
- .line_callout_bug img
- {
- float: left;
- position:relative;
- left: 4px;
- top: -12px;
- clear: left;
- margin-left:-22px;
- }
-
- .callout_bug img
- {
- }
-
-/*=============================================================================
- Variable Lists
-=============================================================================*/
-
- /* Make the terms in definition lists bold */
- div.variablelist dl dt,
- span.term
- {
- font-weight: bold;
- font-size: 10pt;
- }
-
- div.variablelist table tbody tr td
- {
- text-align: left;
- vertical-align: top;
- padding: 0em 2em 0em 0em;
- font-size: 10pt;
- margin: 0em 0em 0.5em 0em;
- line-height: 1;
- }
-
- div.variablelist dl dt
- {
- margin-bottom: 0.2em;
- }
-
- div.variablelist dl dd
- {
- margin: 0em 0em 0.5em 2em;
- font-size: 10pt;
- }
-
- div.variablelist table tbody tr td p,
- div.variablelist dl dd p
- {
- margin: 0em 0em 0.5em 0em;
- line-height: 1;
- }
-
-/*=============================================================================
- Misc
-=============================================================================*/
-
- /* Title of books and articles in bibliographies */
- span.title
- {
- font-style: italic;
- }
-
- span.underline
- {
- text-decoration: underline;
- }
-
- span.strikethrough
- {
- text-decoration: line-through;
- }
-
- /* Copyright, Legal Notice */
- div div.legalnotice p
- {
- text-align: left
- }
-
-/*=============================================================================
- Colors
-=============================================================================*/
-
- @media screen
- {
- /* Links */
- a
- {
- color: #005a9c;
- }
-
- a:visited
- {
- color: #9c5a9c;
- }
-
- h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
- h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
- h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
- {
- text-decoration: none; /* no underline */
- color: #000000;
- }
-
- /* Syntax Highlighting */
- .keyword { color: #0000AA; }
- .identifier { color: #000000; }
- .special { color: #707070; }
- .preprocessor { color: #402080; }
- .char { color: teal; }
- .comment { color: #800000; }
- .string { color: teal; }
- .number { color: teal; }
- .white_bkd { background-color: #FFFFFF; }
- .dk_grey_bkd { background-color: #999999; }
-
- /* Copyright, Legal Notice */
- .copyright
- {
- color: #666666;
- font-size: small;
- }
-
- div div.legalnotice p
- {
- color: #666666;
- }
-
- /* Program listing */
- pre.synopsis
- {
- border: 1px solid #DCDCDC;
- }
-
- .programlisting,
- .screen
- {
- border: 1px solid #DCDCDC;
- }
-
- td .programlisting,
- td .screen
- {
- border: 0px solid #DCDCDC;
- }
-
- /* Blurbs */
- div.note,
- div.tip,
- div.important,
- div.caution,
- div.warning,
- div.sidebar
- {
- border: 1px solid #DCDCDC;
- }
-
- /* Table of contents */
- .toc
- {
- border: 1px solid #DCDCDC;
- }
-
- /* Tables */
- div.informaltable table tr td,
- div.table table tr td
- {
- border: 1px solid #DCDCDC;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- background-color: #F0F0F0;
- border: 1px solid #DCDCDC;
- }
-
- /* Misc */
- span.highlight
- {
- color: #00A000;
- }
- }
-
- @media print
- {
- /* Links */
- a
- {
- color: black;
- }
-
- a:visited
- {
- color: black;
- }
-
- .spirit-nav
- {
- display: none;
- }
-
- /* Program listing */
- pre.synopsis
- {
- border: 1px solid gray;
- }
-
- .programlisting,
- .screen
- {
- border: 1px solid gray;
- }
-
- td .programlisting,
- td .screen
- {
- border: 0px solid #DCDCDC;
- }
-
- /* Table of contents */
- .toc
- {
- border: 1px solid gray;
- }
-
- .informaltable table,
- .table table
- {
- border: 1px solid gray;
- border-collapse: collapse;
- }
-
- /* Tables */
- div.informaltable table tr td,
- div.table table tr td
- {
- border: 1px solid gray;
- }
-
- div.informaltable table tr th,
- div.table table tr th
- {
- border: 1px solid gray;
- }
-
- /* Misc */
- span.highlight
- {
- font-weight: bold;
- }
- }
Modified: branches/proto/v3/libs/function_types/doc/html/index.html
==============================================================================
--- branches/proto/v3/libs/function_types/doc/html/index.html (original)
+++ branches/proto/v3/libs/function_types/doc/html/index.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -2,7 +2,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapter 1. Boost.FunctionTypes 2.5</title>
-<link rel="stylesheet" href="boostbook.css" type="text/css">
+<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
<link rel="next" href="boost_functiontypes/introduction.html" title=" Introduction">
@@ -27,7 +27,7 @@
</h3></div></div>
<div><p class="copyright">Copyright © 2004 -2007 Tobias Schwinger</p></div>
<div><div class="legalnotice">
-<a name="id905079"></a><p>
+<a name="id905080"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -46,7 +46,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: May 13, 2007 at 13:12:48 GMT</small></p></td>
+<td align="left"><p><small>Last revised: November 05, 2007 at 18:24:58 +0100</small></p></td>
<td align="right"><small></small></td>
</tr></table>
<hr>
Modified: branches/proto/v3/libs/functional/hash/doc/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/functional/hash/doc/Jamfile.v2 (original)
+++ branches/proto/v3/libs/functional/hash/doc/Jamfile.v2 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,9 +1,17 @@
-# Copyright 2005 Daniel James.
+# Copyright 2005-2007 Daniel James.
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
using quickbook ;
xml hash : hash.qbk ;
-boostbook standalone : hash ;
+boostbook standalone : hash :
+ <xsl:param>boost.root=../../../../..
+ <xsl:param>boost.libraries=../../../../libraries.htm
+ <xsl:param>html.stylesheet=../../../../../doc/html/boostbook.css
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>chunk.section.depth=2
+ <xsl:param>generate.section.toc.level=2
+ <xsl:param>toc.section.depth=1
+ <xsl:param>toc.max.depth=1 ;
Modified: branches/proto/v3/libs/interprocess/doc/html/reference.css
==============================================================================
--- branches/proto/v3/libs/interprocess/doc/html/reference.css (original)
+++ branches/proto/v3/libs/interprocess/doc/html/reference.css 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,3 +1,11 @@
+/*=============================================================================
+ Copyright (c) 2004 Joel de Guzman
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
PRE.synopsis {
background-color: #e0ffff;
border: thin solid blue;
Deleted: branches/proto/v3/libs/interprocess/proj/to-do.txt
==============================================================================
--- branches/proto/v3/libs/interprocess/proj/to-do.txt 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,73 +0,0 @@
--> Implement zero_memory flag for allocation_command
-
--> Add explanations about system libraries (-lrt) or options (-pthread) to be added
- to the command line.
-
--> The general allocation funtion can be improved with some fixed size allocation bins.
-
--> Update the documentation about memory algorithms with explanations about new functions.
-
--> Adapt error reporting to TR1 system exceptions
-
--> Improve exception messages
-
--> Movability of containers should depend on the no-throw guarantee of allocators copy constructor
-
--> Check self-assignment for vectors
-
--> Detect POD data in vector/deque to use memcpy and minimize code.
-
--> Update writing a new memory allocator explaining new functions (like alignment)
-
--> private node allocators could take the number of nodes as a runtime parameter.
-
--> Explain how to build intrusive indexes.
-
--> Add intrusive index types as available indexes.
-
--> Add maximum alignment allocation limit in PageSize bytes. Otherwise, we can't
- guarantee alignment for process-shared allocations.
-
--> Add default algorithm and index types. The user does not need to know how are
- they implemented.
-
--> Add private mapping to managed classes.
-
--> Add unique_ptr documentation.
-
--> Pass max size check in allocation to node pools
-
--> Add atomic_func explanation in docs
-
--> Once shrink to fit indexes is implemented test all memory has been deallocated
- in tests to detect leaks/implementation failures.
-
--> Improve allocate_many functions to allocate all the nodes forming a singly
- linked list of nodes.
-
--> rbtree_algorithms can be improved wrt the balanced tree. When erasing the old
- node and inserting the new (expanded or shrunk) check if the position should
- be the same. If so, avoid erase() + insert() and just update the size.
-
--> Use in-place expansion capabilities to shrink_to_fit and reserve functions
- from iunordered_index.
-
--> Refactor pool allocators to extract common operations
-
--> Shrink in place interface is not adequate for with objects that don't have
- a trivial destructor: how many destructors can we call before deallocating
- the memory? Options:
- 1. Call destructors in the low-level shrink function (but this might lead to
- deadlock)
- 2. Offer a function to know how much can we shrink (but destructor + shrinking
- would not be atomic so we must guarantee that shrinking will succeed).
-
--> Optimize copy_n with std::copy in vector. Revise other functions to improve optimizations
-
--> Keep an eye on container iterator constness issue to bring Interprocess containers up-to-date.
-
--> change unique_ptr to avoid using compressed_pair
-
--> Improve unique_ptr test to test move assignment and other goodies like assigment from null
-
--> barrier_test fails on MacOS X on PowerPC.
\ No newline at end of file
Modified: branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj
==============================================================================
--- branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj (original)
+++ branches/proto/v3/libs/interprocess/proj/vc7ide/interprocesslib.vcproj 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -238,10 +238,6 @@
RelativePath="..\..\..\..\boost\interprocess\sync\upgradable_lock.hpp">
</File>
<Filter
- Name="win32"
- Filter="">
- </Filter>
- <Filter
Name="posix"
Filter="">
<File
Modified: branches/proto/v3/libs/interprocess/test/condition_test_template.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/condition_test_template.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/condition_test_template.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -139,7 +139,7 @@
// Test timed_wait.
while (data->notified != 3)
- data->condition.timed_wait(lock, ptime_delay(10));
+ data->condition.timed_wait(lock, ptime_delay(5));
assert(lock ? true : false);
assert(data->notified == 3);
data->awoken++;
@@ -147,7 +147,7 @@
// Test predicate timed_wait.
cond_predicate pred(data->notified, 4);
- bool ret = data->condition.timed_wait(lock, ptime_delay(10), pred);
+ bool ret = data->condition.timed_wait(lock, ptime_delay(5), pred);
assert(ret);(void)ret;
assert(lock ? true : false);
assert(pred());
@@ -177,7 +177,7 @@
template <class Condition, class Mutex>
void do_test_condition_notify_all()
{
- const int NUMTHREADS = 5;
+ const int NUMTHREADS = 3;
boost::thread_group threads;
condition_test_data<Condition, Mutex> data;
Modified: branches/proto/v3/libs/interprocess/test/expand_bwd_test_template.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/expand_bwd_test_template.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/expand_bwd_test_template.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -76,7 +76,7 @@
//Function to check if both sets are equal
template <class Vector1, class Vector2>
-static bool CheckEqualVector(const Vector1 &vector1, const Vector2 &vector2)
+bool CheckEqualVector(const Vector1 &vector1, const Vector2 &vector2)
{
if(vector1.size() != vector2.size())
return false;
@@ -84,7 +84,7 @@
}
template<class Vector>
-static bool CheckUninitializedIsZero(const Vector & v)
+bool CheckUninitializedIsZero(const Vector & v)
{
typedef typename Vector::value_type value_type;
typename Vector::size_type sz = v.size();
Modified: branches/proto/v3/libs/interprocess/test/mutex_test_template.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/mutex_test_template.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/mutex_test_template.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -123,7 +123,7 @@
BOOST_INTERPROCES_CHECK(lock ? true : false);
lock.unlock();
BOOST_INTERPROCES_CHECK(!lock);
- boost::posix_time::ptime pt = delay(10*BaseSeconds, 0);
+ boost::posix_time::ptime pt = delay(3*BaseSeconds, 0);
BOOST_INTERPROCES_CHECK(lock.timed_lock(pt));
BOOST_INTERPROCES_CHECK(lock ? true : false);
}
@@ -152,7 +152,7 @@
}
{
//This should always lock
- boost::posix_time::ptime pt = delay(3*BaseSeconds);
+ boost::posix_time::ptime pt = delay(2*BaseSeconds);
lock_type lock1(mx, pt);
lock_type lock2(mx, pt);
}
@@ -171,7 +171,7 @@
boost::thread::sleep(xsecs(pdata->m_secs));
}
else{
- boost::thread::sleep(xsecs(3*BaseSeconds));
+ boost::thread::sleep(xsecs(2*BaseSeconds));
}
++shared_val;
@@ -184,7 +184,7 @@
data<M> *pdata = (data<M> *) arg;
boost::interprocess::scoped_lock<M> l(sm, boost::interprocess::defer_lock);
if (l.try_lock()){
- boost::thread::sleep(xsecs(3*BaseSeconds));
+ boost::thread::sleep(xsecs(2*BaseSeconds));
++shared_val;
pdata->m_value = shared_val;
}
@@ -198,7 +198,7 @@
boost::interprocess::scoped_lock<M>
l (sm, boost::interprocess::defer_lock);
if (l.timed_lock(pt)){
- boost::thread::sleep(xsecs(3*BaseSeconds));
+ boost::thread::sleep(xsecs(2*BaseSeconds));
++shared_val;
pdata->m_value = shared_val;
}
@@ -223,13 +223,13 @@
data<M> d1(1);
data<M> d2(2);
- // Locker one launches, holds the lock for 3*BaseSeconds seconds.
+ // Locker one launches, holds the lock for 2*BaseSeconds seconds.
boost::thread tm1(thread_adapter<M>(&lock_and_sleep, &d1, *pm1));
//Wait 1*BaseSeconds
boost::thread::sleep(xsecs(1*BaseSeconds));
- // Locker two launches, but it won't hold the lock for 3*BaseSeconds seconds.
+ // Locker two launches, but it won't hold the lock for 2*BaseSeconds seconds.
boost::thread tm2(thread_adapter<M>(&lock_and_sleep, &d2, *pm2));
//Wait completion
@@ -259,7 +259,7 @@
data<M> d1(1);
data<M> d2(2);
- // Locker one launches, holds the lock for 3*BaseSeconds seconds.
+ // Locker one launches, holds the lock for 2*BaseSeconds seconds.
boost::thread tm1(thread_adapter<M>(&try_lock_and_sleep, &d1, *pm1));
//Wait 1*BaseSeconds
@@ -293,16 +293,16 @@
pm2 = &m2;
}
- data<M> d1(1, 3*BaseSeconds);
- data<M> d2(2, 3*BaseSeconds);
+ data<M> d1(1, 2*BaseSeconds);
+ data<M> d2(2, 2*BaseSeconds);
- // Locker one launches, holds the lock for 3*BaseSeconds seconds.
+ // Locker one launches, holds the lock for 2*BaseSeconds seconds.
boost::thread tm1(thread_adapter<M>(&timed_lock_and_sleep, &d1, *pm1));
//Wait 1*BaseSeconds
boost::thread::sleep(xsecs(1*BaseSeconds));
- // Locker two launches, holds the lock for 3*BaseSeconds seconds.
+ // Locker two launches, holds the lock for 2*BaseSeconds seconds.
boost::thread tm2(thread_adapter<M>(&timed_lock_and_sleep, &d2, *pm2));
//Wait completion
@@ -315,7 +315,7 @@
}
template <typename M>
-static inline void test_all_lock()
+inline void test_all_lock()
{
//Now generic interprocess_mutex tests
std::cout << "test_lock<" << typeid(M).name() << ">" << std::endl;
@@ -327,7 +327,7 @@
}
template <typename M>
-static inline void test_all_recursive_lock()
+inline void test_all_recursive_lock()
{
//Now generic interprocess_mutex tests
std::cout << "test_recursive_lock<" << typeid(M).name() << ">" << std::endl;
Modified: branches/proto/v3/libs/interprocess/test/named_creation_template.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/named_creation_template.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/named_creation_template.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -21,7 +21,7 @@
namespace boost { namespace interprocess { namespace test {
template <class NamedResource>
-static inline void create_then_open_then_open_or_create()
+inline void create_then_open_then_open_or_create()
{
try{
//Create it and open it twice
@@ -36,7 +36,7 @@
}
template <class NamedResource>
-static inline void open_or_create_then_create()
+inline void open_or_create_then_create()
{
//Create it with open_or_create and try to create it twice
NamedResource nresource1(open_or_create);
@@ -49,7 +49,7 @@
}
template <class NamedResource>
-static inline void dont_create_and_open()
+inline void dont_create_and_open()
{
//Try to open it without creating
try{
@@ -64,7 +64,7 @@
}
template <class NamedResource>
-static inline void test_named_creation()
+inline void test_named_creation()
{
std::cout << "create_then_open_then_open_or_create<"
<< typeid(NamedResource).name() << ">" << std::endl;
Modified: branches/proto/v3/libs/interprocess/test/semaphore_test_template.hpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/semaphore_test_template.hpp (original)
+++ branches/proto/v3/libs/interprocess/test/semaphore_test_template.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -282,7 +282,7 @@
}
template <typename P>
-static inline void test_all_lock()
+inline void test_all_lock()
{
//Now generic interprocess_mutex tests
std::cout << "test_wait<" << typeid(P).name() << ">" << std::endl;
@@ -294,7 +294,7 @@
}
template <typename P>
-static inline void test_all_recursive_lock()
+inline void test_all_recursive_lock()
{
//Now generic interprocess_mutex tests
std::cout << "test_recursive_lock<" << typeid(P).name() << ">" << std::endl;
Modified: branches/proto/v3/libs/interprocess/test/shared_memory_mapping_test.cpp
==============================================================================
--- branches/proto/v3/libs/interprocess/test/shared_memory_mapping_test.cpp (original)
+++ branches/proto/v3/libs/interprocess/test/shared_memory_mapping_test.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -69,7 +69,7 @@
//Create a file mapping
shared_memory_object mapping(open_only, test::get_process_id_name(), read_write);
mapped_region region(mapping, read_write, 0, FileSize/2, 0);
- mapped_region region2(mapping, read_write, FileSize/2, 0/*FileSize - FileSize/2*/, 0);
+ mapped_region region2(mapping, read_write, FileSize/2, FileSize - FileSize/2, 0);
unsigned char *checker = (unsigned char*)region.get_address();
//Check pattern
Modified: branches/proto/v3/libs/intrusive/doc/html/reference.css
==============================================================================
--- branches/proto/v3/libs/intrusive/doc/html/reference.css (original)
+++ branches/proto/v3/libs/intrusive/doc/html/reference.css 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,3 +1,11 @@
+/*=============================================================================
+ Copyright (c) 2004 Joel de Guzman
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to the Boost Software
+ License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
PRE.synopsis {
background-color: #e0ffff;
border: thin solid blue;
Modified: branches/proto/v3/libs/intrusive/example/doc_splay_algorithms.cpp
==============================================================================
--- branches/proto/v3/libs/intrusive/example/doc_splay_algorithms.cpp (original)
+++ branches/proto/v3/libs/intrusive/example/doc_splay_algorithms.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -75,5 +75,4 @@
algo::erase(&header, &three);
return 0;
}
-
-//]
\ No newline at end of file
+//]
Deleted: branches/proto/v3/libs/intrusive/proj/vc7ide/to-do.txt
==============================================================================
--- branches/proto/v3/libs/intrusive/proj/vc7ide/to-do.txt 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,7 +0,0 @@
-add includes needed for the snippets
-add section explaining splice(...,n)
-Faltaría, en mi opinión, una guía de qué headers incluyen a cuáles. P.ej.,
-los *_hook.hpp típicamente están incluidos por el header del contenedor asociado, etc.
-Add resize() to list
-Optimize rehash for when shrinking: there is no need to hash the values.
-Optimize store_hash<true> to work with the same node and type traits as store_hash<false>
Deleted: branches/proto/v3/libs/intrusive/test/test_templates.hpp
==============================================================================
--- branches/proto/v3/libs/intrusive/test/test_templates.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,65 +0,0 @@
-#ifndef BOOST_INTRUSIVE_TEST_TEST_TEMPLATES_HPP
-#define BOOST_INTRUSIVE_TEST_TEST_TEMPLATES_HPP
-
-#include <vector>
-
-namespace boost {
-namespace intrusive {
-namespace test {
-
-template<class Container>
-void test_shift()
-{
- typedef typename ValueTraits::value_type testvalue_t;
- boost::test_tools::output_test_stream test_seq;
- Container test_cont;
- const int NumElem = 6;
-
- std::vector<typename Container::value_type> values(NumElem);
- for(int i = 0; i < NumElem; ++i){
- values[i] = i+1;
- }
-
- const int num_values = (int)values.size();
- std::vector<int> expected_values(num_values);
-
- //Shift forward all possible positions 3 times
- for(int i = 0; i < num_values*3; ++i){
- test_cont.assign(values.begin(), values.end());
- test_cont.shift_forward(i);
- for(int j = 0; j < num_values; ++j){
- expected_values[(j + num_values - i%num_values) % num_values] = (j + 1);
- }
- std::copy (test_cont.begin(), test_cont.end(),
- std::ostream_iterator<testvalue_t> (test_seq));
- std::stringstream stream;
- std::copy (expected_values.begin(), expected_values.end(),
- std::ostream_iterator<testvalue_t> (stream));
- stream << std::ends;
- BOOST_CHECK (test_seq.is_equal (stream.str().c_str()));
- test_cont.clear();
- }
-
- //Shift backwards all possible positions
- for(int i = 0; i < num_values*2; ++i){
- test_cont.assign(values.begin(), values.end());
- test_cont.shift_backwards(i);
- for(int j = 0; j < num_values; ++j){
- expected_values[(j + i) % num_values] = (j + 1);
- }
- std::copy (test_cont.begin(), test_cont.end(),
- std::ostream_iterator<testvalue_t> (test_seq));
- std::stringstream stream;
- std::copy (expected_values.begin(), expected_values.end(),
- std::ostream_iterator<testvalue_t> (stream));
- stream << std::ends;
- BOOST_CHECK (test_seq.is_equal (stream.str().c_str()));
- test_cont.clear();
- }
-}
-
-} //namespace test {
-} //namespace intrusive {
-} //namespace boost {
-
-#endif //#ifndef BOOST_INTRUSIVE_TEST_TEST_TEMPLATES_HPP
Modified: branches/proto/v3/libs/python/src/dict.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/dict.cpp (original)
+++ branches/proto/v3/libs/python/src/dict.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -29,7 +29,7 @@
detail::new_reference dict_base::call(object const& arg_)
{
return (detail::new_reference)PyObject_CallFunction(
- (PyObject*)&PyDict_Type, "(O)",
+ (PyObject*)&PyDict_Type, const_cast<char*>("(O)"),
arg_.ptr());
}
Modified: branches/proto/v3/libs/python/src/exec.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/exec.cpp (original)
+++ branches/proto/v3/libs/python/src/exec.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -39,7 +39,7 @@
// should be 'char const *' but older python versions don't use 'const' yet.
char *f = python::extract<char *>(filename);
// Let python open the file to avoid potential binary incompatibilities.
- PyObject *pyfile = PyFile_FromString(f, "r");
+ PyObject *pyfile = PyFile_FromString(f, const_cast<char*>("r"));
if (!pyfile) throw std::invalid_argument(std::string(f) + " : no such file");
python::handle<> file(pyfile);
PyObject* result = PyRun_File(PyFile_AsFile(file.get()),
Modified: branches/proto/v3/libs/python/src/list.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/list.cpp (original)
+++ branches/proto/v3/libs/python/src/list.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -13,7 +13,7 @@
return (detail::new_non_null_reference)
(expect_non_null)(
PyObject_CallFunction(
- (PyObject*)&PyList_Type, "(O)",
+ (PyObject*)&PyList_Type, const_cast<char*>("(O)"),
arg_.ptr()));
}
Modified: branches/proto/v3/libs/python/src/long.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/long.cpp (original)
+++ branches/proto/v3/libs/python/src/long.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -9,21 +9,21 @@
new_non_null_reference long_base::call(object const& arg_)
{
return (detail::new_non_null_reference)PyObject_CallFunction(
- (PyObject*)&PyLong_Type, "(O)",
+ (PyObject*)&PyLong_Type, const_cast<char*>("(O)"),
arg_.ptr());
}
new_non_null_reference long_base::call(object const& arg_, object const& base)
{
return (detail::new_non_null_reference)PyObject_CallFunction(
- (PyObject*)&PyLong_Type, "(OO)",
+ (PyObject*)&PyLong_Type, const_cast<char*>("(OO)"),
arg_.ptr(), base.ptr());
}
long_base::long_base()
: object(
detail::new_reference(
- PyObject_CallFunction((PyObject*)&PyLong_Type, "()"))
+ PyObject_CallFunction((PyObject*)&PyLong_Type, const_cast<char*>("()")))
)
{}
Modified: branches/proto/v3/libs/python/src/object/class.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/object/class.cpp (original)
+++ branches/proto/v3/libs/python/src/object/class.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -74,7 +74,7 @@
{
propertyobject *gs = (propertyobject *)self;
- return PyObject_CallFunction(gs->prop_get, "()");
+ return PyObject_CallFunction(gs->prop_get, const_cast<char*>("()"));
}
static int
@@ -95,9 +95,9 @@
return -1;
}
if (value == NULL)
- res = PyObject_CallFunction(func, "()");
+ res = PyObject_CallFunction(func, const_cast<char*>("()"));
else
- res = PyObject_CallFunction(func, "(O)", value);
+ res = PyObject_CallFunction(func, const_cast<char*>("(O)"), value);
if (res == NULL)
return -1;
Py_DECREF(res);
@@ -108,7 +108,7 @@
static PyTypeObject static_data_object = {
PyObject_HEAD_INIT(0)//&PyType_Type)
0,
- "Boost.Python.StaticProperty",
+ const_cast<char*>("Boost.Python.StaticProperty"),
PyType_Type.tp_basicsize,
0,
0, /* tp_dealloc */
@@ -212,7 +212,7 @@
static PyTypeObject class_metatype_object = {
PyObject_HEAD_INIT(0)//&PyType_Type)
0,
- "Boost.Python.class",
+ const_cast<char*>("Boost.Python.class"),
PyType_Type.tp_basicsize,
0,
0, /* tp_dealloc */
@@ -316,7 +316,7 @@
{
// Attempt to find the __instance_size__ attribute. If not present, no problem.
PyObject* d = type_->tp_dict;
- PyObject* instance_size_obj = PyObject_GetAttrString(d, "__instance_size__");
+ PyObject* instance_size_obj = PyObject_GetAttrString(d, const_cast<char*>("__instance_size__"));
long instance_size = instance_size_obj ? PyInt_AsLong(instance_size_obj) : 0;
@@ -357,20 +357,20 @@
static PyGetSetDef instance_getsets[] = {
- {"__dict__", instance_get_dict, instance_set_dict, NULL, 0},
+ {const_cast<char*>("__dict__"), instance_get_dict, instance_set_dict, NULL, 0},
{0, 0, 0, 0, 0}
};
static PyMemberDef instance_members[] = {
- {"__weakref__", T_OBJECT, offsetof(instance<>, weakrefs), 0, 0},
+ {const_cast<char*>("__weakref__"), T_OBJECT, offsetof(instance<>, weakrefs), 0, 0},
{0, 0, 0, 0, 0}
};
static PyTypeObject class_type_object = {
PyObject_HEAD_INIT(0) //&class_metatype_object)
0,
- "Boost.Python.instance",
+ const_cast<char*>("Boost.Python.instance"),
offsetof(instance<>,storage), /* tp_basicsize */
1, /* tp_itemsize */
instance_dealloc, /* tp_dealloc */
@@ -572,7 +572,7 @@
{
object property(
(python::detail::new_reference)
- PyObject_CallFunction((PyObject*)&PyProperty_Type, "Osss", fget.ptr(), 0, 0, docstr));
+ PyObject_CallFunction((PyObject*)&PyProperty_Type, const_cast<char*>("Osss"), fget.ptr(), 0, 0, docstr));
this->setattr(name, property);
}
@@ -582,7 +582,7 @@
{
object property(
(python::detail::new_reference)
- PyObject_CallFunction((PyObject*)&PyProperty_Type, "OOss", fget.ptr(), fset.ptr(), 0, docstr));
+ PyObject_CallFunction((PyObject*)&PyProperty_Type, const_cast<char*>("OOss"), fget.ptr(), fset.ptr(), 0, docstr));
this->setattr(name, property);
}
@@ -591,7 +591,7 @@
{
object property(
(python::detail::new_reference)
- PyObject_CallFunction(static_data(), "O", fget.ptr()));
+ PyObject_CallFunction(static_data(), const_cast<char*>("O"), fget.ptr()));
this->setattr(name, property);
}
@@ -600,7 +600,7 @@
{
object property(
(python::detail::new_reference)
- PyObject_CallFunction(static_data(), "OO", fget.ptr(), fset.ptr()));
+ PyObject_CallFunction(static_data(), const_cast<char*>("OO"), fget.ptr(), fset.ptr()));
this->setattr(name, property);
}
@@ -615,13 +615,13 @@
{
extern "C" PyObject* no_init(PyObject*, PyObject*)
{
- ::PyErr_SetString(::PyExc_RuntimeError, "This class cannot be instantiated from Python");
+ ::PyErr_SetString(::PyExc_RuntimeError, const_cast<char*>("This class cannot be instantiated from Python"));
return NULL;
}
static ::PyMethodDef no_init_def = {
- "__init__", no_init, METH_VARARGS,
- "Raises an exception\n"
- "This class cannot be instantiated from Python\n"
+ const_cast<char*>("__init__"), no_init, METH_VARARGS,
+ const_cast<char*>("Raises an exception\n"
+ "This class cannot be instantiated from Python\n")
};
}
@@ -650,7 +650,7 @@
::PyErr_Format(
PyExc_TypeError
- , "staticmethod expects callable object; got an object of type %s, which is not callable"
+ , const_cast<char*>("staticmethod expects callable object; got an object of type %s, which is not callable")
, callable->ob_type->tp_name
);
Modified: branches/proto/v3/libs/python/src/object/enum.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/object/enum.cpp (original)
+++ branches/proto/v3/libs/python/src/object/enum.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -23,7 +23,7 @@
};
static PyMemberDef enum_members[] = {
- {"name", T_OBJECT_EX, offsetof(enum_object,name),READONLY, 0},
+ {const_cast<char*>("name"), T_OBJECT_EX, offsetof(enum_object,name),READONLY, 0},
{0, 0, 0, 0, 0}
};
@@ -32,7 +32,7 @@
{
static PyObject* enum_repr(PyObject* self_)
{
- const char *mod = PyString_AsString(PyObject_GetAttrString( self_, "__module__"));
+ const char *mod = PyString_AsString(PyObject_GetAttrString( self_, const_cast<char*>("__module__")));
enum_object* self = downcast<enum_object>(self_);
if (!self->name)
{
@@ -65,7 +65,7 @@
static PyTypeObject enum_type_object = {
PyObject_HEAD_INIT(0) // &PyType_Type
0,
- "Boost.Python.enum",
+ const_cast<char*>("Boost.Python.enum"),
sizeof(enum_object), /* tp_basicsize */
0, /* tp_itemsize */
0, /* tp_dealloc */
Modified: branches/proto/v3/libs/python/src/object/function.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/object/function.cpp (original)
+++ branches/proto/v3/libs/python/src/object/function.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -297,7 +297,7 @@
void function::argument_error(PyObject* args, PyObject* /*keywords*/) const
{
static handle<> exception(
- PyErr_NewException("Boost.Python.ArgumentError", PyExc_TypeError, 0));
+ PyErr_NewException(const_cast<char*>("Boost.Python.ArgumentError"), PyExc_TypeError, 0));
object message = "Python argument types in\n %s.%s("
% make_tuple(this->m_namespace, this->m_name);
@@ -440,7 +440,7 @@
else if (PyType_Check(ns))
dict = ((PyTypeObject*)ns)->tp_dict;
else
- dict = PyObject_GetAttrString(ns, "__dict__");
+ dict = PyObject_GetAttrString(ns, const_cast<char*>("__dict__"));
if (dict == 0)
throw_error_already_set();
@@ -487,7 +487,7 @@
new_func->m_name = name;
handle<> name_space_name(
- allow_null(::PyObject_GetAttrString(name_space.ptr(), "__name__")));
+ allow_null(::PyObject_GetAttrString(name_space.ptr(), const_cast<char*>("__name__"))));
if (name_space_name)
new_func->m_namespace = object(name_space_name);
@@ -661,18 +661,18 @@
}
static PyGetSetDef function_getsetlist[] = {
- {"__name__", (getter)function_get_name, 0, 0, 0 },
- {"func_name", (getter)function_get_name, 0, 0, 0 },
- {"__class__", (getter)function_get_class, 0, 0, 0 }, // see note above
- {"__doc__", (getter)function_get_doc, (setter)function_set_doc, 0, 0},
- {"func_doc", (getter)function_get_doc, (setter)function_set_doc, 0, 0},
+ {const_cast<char*>("__name__"), (getter)function_get_name, 0, 0, 0 },
+ {const_cast<char*>("func_name"), (getter)function_get_name, 0, 0, 0 },
+ {const_cast<char*>("__class__"), (getter)function_get_class, 0, 0, 0 }, // see note above
+ {const_cast<char*>("__doc__"), (getter)function_get_doc, (setter)function_set_doc, 0, 0},
+ {const_cast<char*>("func_doc"), (getter)function_get_doc, (setter)function_set_doc, 0, 0},
{NULL, 0, 0, 0, 0} /* Sentinel */
};
PyTypeObject function_type = {
PyObject_HEAD_INIT(0)
0,
- "Boost.Python.function",
+ const_cast<char*>("Boost.Python.function"),
sizeof(function),
0,
(destructor)function_dealloc, /* tp_dealloc */
@@ -758,7 +758,8 @@
}
void BOOST_PYTHON_DECL pure_virtual_called()
{
- PyErr_SetString(PyExc_RuntimeError, "Pure virtual function called");
+ PyErr_SetString(
+ PyExc_RuntimeError, const_cast<char*>("Pure virtual function called"));
throw_error_already_set();
}
}
Modified: branches/proto/v3/libs/python/src/object/life_support.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/object/life_support.cpp (original)
+++ branches/proto/v3/libs/python/src/object/life_support.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -38,7 +38,7 @@
PyTypeObject life_support_type = {
PyObject_HEAD_INIT(0)//(&PyType_Type)
0,
- "Boost.Python.life_support",
+ const_cast<char*>("Boost.Python.life_support"),
sizeof(life_support),
0,
life_support_dealloc, /* tp_dealloc */
Modified: branches/proto/v3/libs/python/src/str.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/str.cpp (original)
+++ branches/proto/v3/libs/python/src/str.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -10,7 +10,7 @@
detail::new_reference str_base::call(object const& arg_)
{
return (detail::new_reference)PyObject_CallFunction(
- (PyObject*)&PyString_Type, "(O)",
+ (PyObject*)&PyString_Type, const_cast<char*>("(O)"),
arg_.ptr());
}
@@ -68,8 +68,9 @@
return str(new_reference( \
expect_non_null( \
PyObject_CallMethod( \
- this->ptr(), #name, \
- "(" BOOST_PP_REPEAT(arity, BOOST_PYTHON_FORMAT_OBJECT, _) ")" \
+ this->ptr(), const_cast<char*>( #name ), \
+ const_cast<char*>( \
+ "(" BOOST_PP_REPEAT(arity, BOOST_PYTHON_FORMAT_OBJECT, _) ")") \
BOOST_PP_REPEAT_1(arity, BOOST_PYTHON_OBJECT_PTR, _))))); \
}
Modified: branches/proto/v3/libs/python/src/tuple.cpp
==============================================================================
--- branches/proto/v3/libs/python/src/tuple.cpp (original)
+++ branches/proto/v3/libs/python/src/tuple.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -9,7 +9,7 @@
detail::new_reference tuple_base::call(object const& arg_)
{
return (detail::new_reference)PyObject_CallFunction(
- (PyObject*)&PyTuple_Type, "(O)",
+ (PyObject*)&PyTuple_Type, const_cast<char*>("(O)"),
arg_.ptr());
}
Modified: branches/proto/v3/libs/python/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/python/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/python/test/Jamfile.v2 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -5,7 +5,10 @@
import python ;
use-project /boost/python : ../build ;
-project /boost/python/test ;
+project /boost/python/test
+ : requirements
+ <toolset>gcc:<cxxflags>-Wextra
+ ;
local PY = ;
if [ python.configured ]
@@ -39,7 +42,7 @@
:
[
- run exec.cpp ../build//boost_python/<link>static $(PY)
+ run exec.cpp /boost/python//boost_python/<link>static $(PY)
: # program args
: exec.py # input files
: # requirements
@@ -168,7 +171,8 @@
/boost/python//boost_python ]
[ bpl-test
map_indexing_suite : map_indexing_suite.py map_indexing_suite_ext ]
-[ py-run import_.cpp : import_.py ]
+
+[ run import_.cpp /boost/python//boost_python $(PY) : : import_.py ]
# if $(TEST_BIENSTMAN_NON_BUGS)
# {
Modified: branches/proto/v3/libs/python/test/andreas_beyer.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/andreas_beyer.cpp (original)
+++ branches/proto/v3/libs/python/test/andreas_beyer.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -25,8 +25,8 @@
B() {
a = A::A_ptr(new A());
}
- void set(A::A_ptr a) {
- this->a = a;
+ void set(A::A_ptr _a) {
+ this->a = _a;
}
A::A_ptr get() {
return a;
Modified: branches/proto/v3/libs/python/test/back_reference.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/back_reference.cpp (original)
+++ branches/proto/v3/libs/python/test/back_reference.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -27,7 +27,7 @@
X(X const& rhs) : x(rhs.x), magic(7654321) { ++counter; }
virtual ~X() { BOOST_ASSERT(magic == 7654321); magic = 6666666; x = 9999; --counter; }
- void set(int x) { BOOST_ASSERT(magic == 7654321); this->x = x; }
+ void set(int _x) { BOOST_ASSERT(magic == 7654321); this->x = _x; }
int value() const { BOOST_ASSERT(magic == 7654321); return x; }
static int count() { return counter; }
private:
Modified: branches/proto/v3/libs/python/test/borrowed.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/borrowed.cpp (original)
+++ branches/proto/v3/libs/python/test/borrowed.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -9,13 +9,13 @@
using namespace boost::python;
template <class T>
-void assert_borrowed_ptr(T const& x)
+void assert_borrowed_ptr(T const&)
{
BOOST_STATIC_ASSERT(boost::python::detail::is_borrowed_ptr<T>::value);
}
template <class T>
-void assert_not_borrowed_ptr(T const& x)
+void assert_not_borrowed_ptr(T const&)
{
BOOST_STATIC_ASSERT(!boost::python::detail::is_borrowed_ptr<T>::value);
}
Modified: branches/proto/v3/libs/python/test/callbacks.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/callbacks.cpp (original)
+++ branches/proto/v3/libs/python/test/callbacks.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -34,7 +34,7 @@
X(X const& rhs) : x(rhs.x), magic(7654321) { ++counter; }
~X() { BOOST_ASSERT(magic == 7654321); magic = 6666666; x = 9999; --counter; }
- void set(int x) { BOOST_ASSERT(magic == 7654321); this->x = x; }
+ void set(int _x) { BOOST_ASSERT(magic == 7654321); this->x = _x; }
int value() const { BOOST_ASSERT(magic == 7654321); return x; }
static int count() { return counter; }
private:
Modified: branches/proto/v3/libs/python/test/complicated.hpp
==============================================================================
--- branches/proto/v3/libs/python/test/complicated.hpp (original)
+++ branches/proto/v3/libs/python/test/complicated.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -19,10 +19,10 @@
int n;
};
-inline complicated::complicated(simple const&s, int n)
- : s(s.s), n(n)
+inline complicated::complicated(simple const&s, int _n)
+ : s(s.s), n(_n)
{
- std::cout << "constructing complicated: " << this->s << ", " << n << std::endl;
+ std::cout << "constructing complicated: " << this->s << ", " << _n << std::endl;
}
inline complicated::~complicated()
Modified: branches/proto/v3/libs/python/test/exec.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/exec.cpp (original)
+++ branches/proto/v3/libs/python/test/exec.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -59,7 +59,7 @@
void exec_test()
{
// Register the module with the interpreter
- if (PyImport_AppendInittab("embedded_hello", initembedded_hello) == -1)
+ if (PyImport_AppendInittab(const_cast<char*>("embedded_hello"), initembedded_hello) == -1)
throw std::runtime_error("Failed to add embedded_hello to the interpreter's "
"builtin modules");
// Retrieve the main module
Modified: branches/proto/v3/libs/python/test/m1.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/m1.cpp (original)
+++ branches/proto/v3/libs/python/test/m1.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -34,7 +34,7 @@
PyTypeObject NoddyType = {
PyObject_HEAD_INIT(NULL)
0,
- "Noddy",
+ const_cast<char*>("Noddy"),
sizeof(NoddyObject),
0,
dealloc, /* tp_dealloc */
@@ -106,7 +106,7 @@
PyTypeObject SimpleType = {
PyObject_HEAD_INIT(NULL)
0,
- "Simple",
+ const_cast<char*>("Simple"),
sizeof(SimpleObject),
0,
dealloc, /* tp_dealloc */
@@ -159,7 +159,7 @@
PyObject* new_simple()
{
SimpleObject* simple = PyObject_New(SimpleObject, &SimpleType);
- simple->x.s = "hello, world";
+ simple->x.s = const_cast<char*>("hello, world");
return (PyObject*)simple;
}
Modified: branches/proto/v3/libs/python/test/numpy.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/numpy.cpp (original)
+++ branches/proto/v3/libs/python/test/numpy.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -12,7 +12,7 @@
using namespace boost::python;
#if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580))
-# define make_tuple boost::python::make_tuple
+# define make_tuple ::boost::python::make_tuple
#endif
// See if we can invoke array() from C++
@@ -51,7 +51,7 @@
str format("exception type: %sn");
format += "exception value: %sn";
format += "traceback:n%s" ;
- object ret = format % boost::python::make_tuple(ty, v, tr);
+ object ret = format % make_tuple(ty, v, tr);
return ret;
}
}
Modified: branches/proto/v3/libs/python/test/operators_wrapper.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/operators_wrapper.cpp (original)
+++ branches/proto/v3/libs/python/test/operators_wrapper.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -5,10 +5,10 @@
{
virtual ~vector() {}
- vector operator+( const vector& x ) const
+ vector operator+( const vector& ) const
{ return vector(); }
- vector& operator+=( const vector& x )
+ vector& operator+=( const vector& )
{ return *this; }
vector operator-() const
Modified: branches/proto/v3/libs/python/test/pickle1.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/pickle1.cpp (original)
+++ branches/proto/v3/libs/python/test/pickle1.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -27,8 +27,8 @@
private:
std::string country;
public:
- world(const std::string& country) {
- this->country = country;
+ world(const std::string& _country) {
+ this->country = _country;
}
std::string greet() const { return "Hello from " + country + "!"; }
std::string get_country() const { return country; }
Modified: branches/proto/v3/libs/python/test/pickle2.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/pickle2.cpp (original)
+++ branches/proto/v3/libs/python/test/pickle2.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -34,8 +34,8 @@
class world
{
public:
- world(const std::string& country) : secret_number(0) {
- this->country = country;
+ world(const std::string& _country) : secret_number(0) {
+ this->country = _country;
}
std::string greet() const { return "Hello from " + country + "!"; }
std::string get_country() const { return country; }
Modified: branches/proto/v3/libs/python/test/pickle3.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/pickle3.cpp (original)
+++ branches/proto/v3/libs/python/test/pickle3.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -35,8 +35,8 @@
class world
{
public:
- world(const std::string& country) : secret_number(0) {
- this->country = country;
+ world(const std::string& _country) : secret_number(0) {
+ this->country = _country;
}
std::string greet() const { return "Hello from " + country + "!"; }
std::string get_country() const { return country; }
Modified: branches/proto/v3/libs/python/test/pickle4.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/pickle4.cpp (original)
+++ branches/proto/v3/libs/python/test/pickle4.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -23,8 +23,8 @@
private:
std::string country;
public:
- world(const std::string& country) {
- this->country = country;
+ world(const std::string& _country) {
+ this->country = _country;
}
std::string greet() const { return "Hello from " + country + "!"; }
std::string get_country() const { return country; }
Modified: branches/proto/v3/libs/python/test/slice.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/slice.cpp (original)
+++ branches/proto/v3/libs/python/test/slice.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -100,7 +100,11 @@
|| BOOST_WORKAROUND( BOOST_INTEL_WIN, == 710)
int check_slice_get_indicies(slice index);
#endif
-int check_slice_get_indicies(const slice index)
+int check_slice_get_indicies(
+#if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
+ const
+#endif
+ slice index)
{
// A vector of integers from [-5, 5].
std::vector<int> coll(11);
Modified: branches/proto/v3/libs/python/test/staticmethod.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/staticmethod.cpp (original)
+++ branches/proto/v3/libs/python/test/staticmethod.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -20,7 +20,7 @@
X(X const& rhs) : x(rhs.x), magic(7654321) { ++counter; }
virtual ~X() { BOOST_ASSERT(magic == 7654321); magic = 6666666; x = 9999; --counter; }
- void set(int x) { BOOST_ASSERT(magic == 7654321); this->x = x; }
+ void set(int _x) { BOOST_ASSERT(magic == 7654321); this->x = _x; }
int value() const { BOOST_ASSERT(magic == 7654321); return x; }
static int count() { return counter; }
private:
Modified: branches/proto/v3/libs/python/test/test_class.hpp
==============================================================================
--- branches/proto/v3/libs/python/test/test_class.hpp (original)
+++ branches/proto/v3/libs/python/test/test_class.hpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -13,7 +13,7 @@
test_class(test_class const& rhs) : x(rhs.x), magic(7654321 + n) { ++counter; }
virtual ~test_class() { BOOST_TEST(magic == 7654321 + n); magic = 6666666; x = 9999; --counter; }
- void set(int x) { BOOST_TEST(magic == 7654321 + n); this->x = x; }
+ void set(int _x) { BOOST_TEST(magic == 7654321 + n); this->x = _x; }
int value() const { BOOST_TEST(magic == 7654321 + n); return x; }
operator int() const { return x; }
static int count() { return counter; }
Modified: branches/proto/v3/libs/python/test/test_pointer_adoption.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/test_pointer_adoption.cpp (original)
+++ branches/proto/v3/libs/python/test/test_pointer_adoption.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -65,7 +65,7 @@
B() : x(0) {}
B(A* x_) : x(x_) {}
- inner const* adopt(A* x) { this->x = x; return &x->get_inner(); }
+ inner const* adopt(A* _x) { this->x = _x; return &_x->get_inner(); }
std::string a_content()
{
Modified: branches/proto/v3/libs/python/test/virtual_functions.cpp
==============================================================================
--- branches/proto/v3/libs/python/test/virtual_functions.cpp (original)
+++ branches/proto/v3/libs/python/test/virtual_functions.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -22,7 +22,7 @@
X(X const& rhs) : x(rhs.x), magic(7654321) { ++counter; }
virtual ~X() { BOOST_ASSERT(magic == 7654321); magic = 6666666; x = 9999; --counter; }
- void set(int x) { BOOST_ASSERT(magic == 7654321); this->x = x; }
+ void set(int _x) { BOOST_ASSERT(magic == 7654321); this->x = _x; }
int value() const { BOOST_ASSERT(magic == 7654321); return x; }
static int count() { return counter; }
private:
Modified: branches/proto/v3/libs/thread/src/win32/thread.cpp
==============================================================================
--- branches/proto/v3/libs/thread/src/win32/thread.cpp (original)
+++ branches/proto/v3/libs/thread/src/win32/thread.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -4,6 +4,9 @@
// (C) Copyright 2007 Anthony Williams
// (C) Copyright 2007 David Deakins
+#define _WIN32_WINNT 0x400
+#define WINVER 0x400
+
#include <boost/thread/thread.hpp>
#include <algorithm>
#include <windows.h>
@@ -15,6 +18,7 @@
#include <boost/thread/tss.hpp>
#include <boost/assert.hpp>
#include <boost/thread/detail/tss_hooks.hpp>
+#include <boost/date_time/posix_time/conversion.hpp>
namespace boost
{
@@ -63,11 +67,11 @@
typedef void* uintptr_t;
inline uintptr_t const _beginthreadex(void* security, unsigned stack_size, unsigned (__stdcall* start_address)(void*),
- void* arglist, unsigned initflag, unsigned* thrdaddr)
+ void* arglist, unsigned initflag, unsigned* thrdaddr)
{
DWORD threadID;
HANDLE hthread=CreateThread(static_cast<LPSECURITY_ATTRIBUTES>(security),stack_size,ThreadProxy,
- new ThreadProxyData(start_address,arglist),initflag,&threadID);
+ new ThreadProxyData(start_address,arglist),initflag,&threadID);
if (hthread!=0)
*thrdaddr=threadID;
return reinterpret_cast<uintptr_t const>(hthread);
@@ -287,7 +291,7 @@
detail::thread_data_ptr local_thread_info=get_thread_info();
if(local_thread_info)
{
- this_thread::interruptible_wait(local_thread_info->thread_handle,detail::win32::infinite);
+ this_thread::interruptible_wait(local_thread_info->thread_handle,detail::timeout::sentinel());
release_handle();
}
}
@@ -353,13 +357,57 @@
namespace this_thread
{
- bool interruptible_wait(detail::win32::handle handle_to_wait_for,unsigned long milliseconds)
+ namespace
{
- detail::win32::handle handles[2]={0};
+ LARGE_INTEGER get_due_time(detail::timeout const& target_time)
+ {
+ LARGE_INTEGER due_time={0};
+ if(target_time.relative)
+ {
+ unsigned long const elapsed_milliseconds=GetTickCount()-target_time.start;
+ LONGLONG const remaining_milliseconds=(target_time.milliseconds-elapsed_milliseconds);
+ LONGLONG const hundred_nanoseconds_in_one_millisecond=10000;
+
+ if(remaining_milliseconds>0)
+ {
+ due_time.QuadPart=-(remaining_milliseconds*hundred_nanoseconds_in_one_millisecond);
+ }
+ }
+ else
+ {
+ SYSTEMTIME target_system_time={0};
+ target_system_time.wYear=target_time.abs_time.date().year();
+ target_system_time.wMonth=target_time.abs_time.date().month();
+ target_system_time.wDay=target_time.abs_time.date().day();
+ target_system_time.wHour=target_time.abs_time.time_of_day().hours();
+ target_system_time.wMinute=target_time.abs_time.time_of_day().minutes();
+ target_system_time.wSecond=target_time.abs_time.time_of_day().seconds();
+
+ if(!SystemTimeToFileTime(&target_system_time,((FILETIME*)&due_time)))
+ {
+ due_time.QuadPart=0;
+ }
+ else
+ {
+ long const hundred_nanoseconds_in_one_second=10000000;
+ due_time.QuadPart+=target_time.abs_time.time_of_day().fractional_seconds()*(hundred_nanoseconds_in_one_second/target_time.abs_time.time_of_day().ticks_per_second());
+ }
+ }
+ return due_time;
+ }
+ }
+
+
+ bool interruptible_wait(detail::win32::handle handle_to_wait_for,detail::timeout target_time)
+ {
+ detail::win32::handle handles[3]={0};
unsigned handle_count=0;
+ unsigned wait_handle_index=~0U;
unsigned interruption_index=~0U;
+ unsigned timeout_index=~0U;
if(handle_to_wait_for!=detail::win32::invalid_handle_value)
{
+ wait_handle_index=handle_count;
handles[handle_count++]=handle_to_wait_for;
}
if(get_current_thread_data() && get_current_thread_data()->interruption_enabled)
@@ -367,24 +415,79 @@
interruption_index=handle_count;
handles[handle_count++]=get_current_thread_data()->interruption_handle;
}
-
- if(handle_count)
+
+ detail::win32::handle_manager timer_handle;
+
+#ifndef UNDER_CE
+ unsigned const min_timer_wait_period=20;
+
+ if(!target_time.is_sentinel())
{
- unsigned long const notified_index=detail::win32::WaitForMultipleObjects(handle_count,handles,false,milliseconds);
- if((handle_to_wait_for!=detail::win32::invalid_handle_value) && !notified_index)
+ detail::timeout::remaining_time const time_left=target_time.remaining_milliseconds();
+ if(time_left.milliseconds > min_timer_wait_period)
{
- return true;
+ // for a long-enough timeout, use a waitable timer (which tracks clock changes)
+ timer_handle=CreateWaitableTimer(NULL,false,NULL);
+ if(timer_handle!=0)
+ {
+ LARGE_INTEGER due_time=get_due_time(target_time);
+
+ bool const set_time_succeeded=SetWaitableTimer(timer_handle,&due_time,0,0,0,false)!=0;
+ if(set_time_succeeded)
+ {
+ timeout_index=handle_count;
+ handles[handle_count++]=timer_handle;
+ }
+ }
}
- else if(notified_index==interruption_index)
+ else if(!target_time.relative)
{
- detail::win32::ResetEvent(get_current_thread_data()->interruption_handle);
- throw thread_interrupted();
+ // convert short absolute-time timeouts into relative ones, so we don't race against clock changes
+ target_time=detail::timeout(time_left.milliseconds);
}
}
- else
+#endif
+
+ bool const using_timer=timeout_index!=~0u;
+ detail::timeout::remaining_time time_left(0);
+
+ do
{
- detail::win32::Sleep(milliseconds);
+ if(!using_timer)
+ {
+ time_left=target_time.remaining_milliseconds();
+ }
+
+ if(handle_count)
+ {
+ unsigned long const notified_index=detail::win32::WaitForMultipleObjects(handle_count,handles,false,using_timer?INFINITE:time_left.milliseconds);
+ if(notified_index<handle_count)
+ {
+ if(notified_index==wait_handle_index)
+ {
+ return true;
+ }
+ else if(notified_index==interruption_index)
+ {
+ detail::win32::ResetEvent(get_current_thread_data()->interruption_handle);
+ throw thread_interrupted();
+ }
+ else if(notified_index==timeout_index)
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ detail::win32::Sleep(time_left.milliseconds);
+ }
+ if(target_time.relative)
+ {
+ target_time.milliseconds-=detail::timeout::max_non_infinite_wait;
+ }
}
+ while(time_left.more);
return false;
}
Modified: branches/proto/v3/libs/thread/src/win32/tss_pe.cpp
==============================================================================
--- branches/proto/v3/libs/thread/src/win32/tss_pe.cpp (original)
+++ branches/proto/v3/libs/thread/src/win32/tss_pe.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -230,13 +230,10 @@
void NTAPI on_tls_callback(HINSTANCE h, DWORD dwReason, PVOID pv)
{
- OutputDebugString("on_tls_callback\n");
-
switch (dwReason)
{
case DLL_THREAD_DETACH:
{
- OutputDebugString("on_tls_callback: thread_exit\n");
on_thread_exit();
break;
}
Modified: branches/proto/v3/libs/thread/test/Jamfile.v2
==============================================================================
--- branches/proto/v3/libs/thread/test/Jamfile.v2 (original)
+++ branches/proto/v3/libs/thread/test/Jamfile.v2 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,4 +1,5 @@
# (C) Copyright William E. Kempf 2001.
+# (C) Copyright 2007 Anthony Williams.
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
@@ -35,6 +36,9 @@
test-suite "threads"
: [ thread-run test_thread.cpp ]
[ thread-run test_mutex.cpp ]
+ [ thread-run test_condition_notify_one.cpp ]
+ [ thread-run test_condition_timed_wait_times_out.cpp ]
+ [ thread-run test_condition_notify_all.cpp ]
[ thread-run test_condition.cpp ]
[ thread-run test_tss.cpp ]
[ thread-run test_once.cpp ]
Modified: branches/proto/v3/libs/thread/test/test_barrier.cpp
==============================================================================
--- branches/proto/v3/libs/thread/test/test_barrier.cpp (original)
+++ branches/proto/v3/libs/thread/test/test_barrier.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -52,7 +52,7 @@
throw;
}
- BOOST_CHECK(global_parameter == 5);
+ BOOST_CHECK_EQUAL(global_parameter,5);
}
boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
Modified: branches/proto/v3/libs/thread/test/test_condition.cpp
==============================================================================
--- branches/proto/v3/libs/thread/test/test_condition.cpp (original)
+++ branches/proto/v3/libs/thread/test/test_condition.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -94,66 +94,6 @@
data->condition.notify_one();
}
-void do_test_condition_notify_one()
-{
- condition_test_data data;
-
- boost::thread thread(bind(&condition_test_thread, &data));
-
- {
- boost::mutex::scoped_lock lock(data.mutex);
- BOOST_CHECK(lock ? true : false);
- data.notified++;
- data.condition.notify_one();
- }
-
- thread.join();
- BOOST_CHECK_EQUAL(data.awoken, 1);
-}
-
-void test_condition_notify_one()
-{
- timed_test(&do_test_condition_notify_one, 100, execution_monitor::use_mutex);
-}
-
-void do_test_condition_notify_all()
-{
- const int NUMTHREADS = 5;
- boost::thread_group threads;
- condition_test_data data;
-
- try
- {
- for (int i = 0; i < NUMTHREADS; ++i)
- threads.create_thread(bind(&condition_test_thread, &data));
-
- {
- boost::mutex::scoped_lock lock(data.mutex);
- BOOST_CHECK(lock ? true : false);
- data.notified++;
- data.condition.notify_all();
- }
-
- threads.join_all();
- }
- catch(...)
- {
- threads.interrupt_all();
- threads.join_all();
- throw;
- }
-
- BOOST_CHECK_EQUAL(data.awoken, NUMTHREADS);
-}
-
-void test_condition_notify_all()
-{
- // We should have already tested notify_one here, so
- // a timed test with the default execution_monitor::use_condition
- // should be OK, and gives the fastest performance
- timed_test(&do_test_condition_notify_all, 100);
-}
-
void do_test_condition_waits()
{
condition_test_data data;
@@ -235,43 +175,13 @@
timed_test(&do_test_condition_wait_is_a_interruption_point, 1);
}
-bool fake_predicate()
-{
- return false;
-}
-
-
-void do_test_timed_wait_times_out()
-{
- boost::condition_variable cond;
- boost::mutex m;
-
- boost::posix_time::seconds const delay(5);
- boost::mutex::scoped_lock lock(m);
- boost::system_time const start=boost::get_system_time();
- bool const res=cond.timed_wait(lock,delay,fake_predicate);
- boost::system_time const end=boost::get_system_time();
- BOOST_CHECK(!res);
- BOOST_CHECK((delay-boost::posix_time::milliseconds(10))<=(end-start));
-}
-
-
-void test_timed_wait_times_out()
-{
- timed_test(&do_test_timed_wait_times_out, 15);
-}
-
-
boost::unit_test_framework::test_suite* init_unit_test_suite(int, char*[])
{
boost::unit_test_framework::test_suite* test =
BOOST_TEST_SUITE("Boost.Threads: condition test suite");
- test->add(BOOST_TEST_CASE(&test_condition_notify_one));
- test->add(BOOST_TEST_CASE(&test_condition_notify_all));
test->add(BOOST_TEST_CASE(&test_condition_waits));
test->add(BOOST_TEST_CASE(&test_condition_wait_is_a_interruption_point));
- test->add(BOOST_TEST_CASE(&test_timed_wait_times_out));
return test;
}
Modified: branches/proto/v3/libs/thread/test/test_shared_mutex.cpp
==============================================================================
--- branches/proto/v3/libs/thread/test/test_shared_mutex.cpp (original)
+++ branches/proto/v3/libs/thread/test/test_shared_mutex.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -466,7 +466,7 @@
unsigned unblocked_count=0;
boost::mutex::scoped_lock finish_lock(finish_mutex);
boost::thread writer(simple_writing_thread(rw_mutex,finish_mutex,unblocked_mutex,unblocked_count));
- boost::thread::sleep(delay(1));
+ boost::this_thread::sleep(boost::posix_time::seconds(1));
CHECK_LOCKED_VALUE_EQUAL(unblocked_mutex,unblocked_count,1u);
bool const try_succeeded=rw_mutex.try_lock_shared();
Modified: branches/proto/v3/libs/thread/test/util.inl
==============================================================================
--- branches/proto/v3/libs/thread/test/util.inl (original)
+++ branches/proto/v3/libs/thread/test/util.inl 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,5 +1,6 @@
// Copyright (C) 2001-2003
// William E. Kempf
+// Copyright (C) 2007 Anthony Williams
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -154,6 +155,26 @@
{
return thread_binder<F, T>(func, param);
}
+
+template <typename R, typename T>
+class thread_member_binder
+{
+public:
+ thread_member_binder(R (T::*func)(), T& param)
+ : func(func), param(param) { }
+ void operator()() const { (param.*func)(); }
+
+private:
+ R (T::*func)();
+ T& param;
+};
+
+
+template <typename R, typename T>
+thread_member_binder<R, T> bind(R (T::*func)(), T& param)
+{
+ return thread_member_binder<R, T>(func, param);
+}
} // namespace
#endif
Modified: branches/proto/v3/libs/utility/value_init_test.cpp
==============================================================================
--- branches/proto/v3/libs/utility/value_init_test.cpp (original)
+++ branches/proto/v3/libs/utility/value_init_test.cpp 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -62,6 +62,9 @@
//
// Sample aggregate POD struct type
+// Some compilers do not correctly value-initialize such a struct, for example:
+// Borland C++ Report #51854, "Value-initialization: POD struct should be zero-initialized "
+// http://qc.codegear.com/wc/qcmain.aspx?d=51854
//
struct AggregatePODStruct
{
@@ -127,6 +130,29 @@
//
+// A struct that is derived from an aggregate POD struct.
+// Some compilers do not correctly value-initialize such a struct, for example:
+// GCC Bugzilla Bug 30111, "Value-initialization of POD base class doesn't initialize members",
+// reported by Jonathan Wakely, http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111
+//
+struct DerivedFromAggregatePODStruct : AggregatePODStruct
+{
+ DerivedFromAggregatePODStruct() : AggregatePODStruct() {}
+};
+
+//
+// A struct that wraps an aggregate POD struct as data member.
+//
+struct AggregatePODStructWrapper
+{
+ AggregatePODStructWrapper() : dataMember() {}
+ AggregatePODStruct dataMember;
+};
+
+bool operator == ( AggregatePODStructWrapper const& lhs, AggregatePODStructWrapper const& rhs )
+{ return lhs.dataMember == rhs.dataMember ; }
+
+//
// This test function tests boost::value_initialized<T> for a specific type T.
// The first argument (y) is assumed have the value of a value-initialized object.
// Returns true on success.
@@ -194,6 +220,18 @@
structWithVirtualFunction1.i = 1;
BOOST_CHECK ( test(structWithVirtualFunction0, structWithVirtualFunction1) );
+ DerivedFromAggregatePODStruct derivedFromAggregatePODStruct0;
+ DerivedFromAggregatePODStruct derivedFromAggregatePODStruct1;
+ static_cast<AggregatePODStruct &>(derivedFromAggregatePODStruct0) = zeroInitializedAggregatePODStruct;
+ static_cast<AggregatePODStruct &>(derivedFromAggregatePODStruct1) = nonZeroInitializedAggregatePODStruct;
+ BOOST_CHECK ( test(derivedFromAggregatePODStruct0, derivedFromAggregatePODStruct1) );
+
+ AggregatePODStructWrapper aggregatePODStructWrapper0;
+ AggregatePODStructWrapper aggregatePODStructWrapper1;
+ aggregatePODStructWrapper0.dataMember = zeroInitializedAggregatePODStruct;
+ aggregatePODStructWrapper1.dataMember = nonZeroInitializedAggregatePODStruct;
+ BOOST_CHECK ( test(aggregatePODStructWrapper0, aggregatePODStructWrapper1) );
+
return 0;
}
Modified: branches/proto/v3/libs/wave/ChangeLog
==============================================================================
--- branches/proto/v3/libs/wave/ChangeLog (original)
+++ branches/proto/v3/libs/wave/ChangeLog 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -24,6 +24,9 @@
CHANGELOG
+- Wave Version 1.4
+
+Boost V1.35.0
- Wave Version 1.3
- Changed the return value of the 'evaluated_conditional_expression()' pp hook
to 'bool' allowing to force Wave to re-evaluate the current conditional
@@ -151,6 +154,8 @@
spotting the problem.
- Unterminated C++/C comment diagnostics are now a warning and not an error
anymore.
+- Applied patch provided by Jens Seidel making sure every header compiles on
+ its own.
Boost V1.34.0
- Wave Version 1.2.4
Deleted: branches/proto/v3/more/boost-dark-trans.png
==============================================================================
Binary file. No diff available.
Deleted: branches/proto/v3/more/boost_1_33_0.jpg
==============================================================================
Binary file. No diff available.
Deleted: branches/proto/v3/more/boost_soc_06_overview.html
==============================================================================
--- branches/proto/v3/more/boost_soc_06_overview.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,820 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0.1 Transitional//EN">
-
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>An overview of Boost participation in
-Google Summer of Code™ 2006</title>
-<link rel="stylesheet" href="../boost.css" type="text/css">
-<style type="text/css">
-<!--
-table{
- PADDING-RIGHT: 2pt;
- BORDER-TOP: gray 1pt solid;
- DISPLAY: block;
- PADDING-LEFT: 2pt;
- PADDING-BOTTOM: 2pt;
- BORDER-LEFT: gray 1pt solid;
- MARGIN-RIGHT: 32pt;
- PADDING-TOP: 2pt;
- background-color: #EEEEEE;
-}
-td{
- BORDER-STYLE: solid;
- BORDER-WIDTH: 1pt;
- BORDER-LEFT: ;
- BORDER-RIGHT: gray 1pt solid;
- BORDER-TOP: ;
- BORDER-BOTTOM: gray 1pt solid;
-}
-th{color: #ffffff; background-color: #000000;}
-.odd_tr{background-color: #ffffff;}
--->
-</style>
-</head>
-
-<body>
-<img src="../boost.png" alt="boost.png (6308 bytes)" align="middle" width="277" height="86">
-<h1>An overview of Boost participation in
-Google Summer of Code™ 2006</h1>
-
-<hr>
-
-<p>
-For the second consecutive year, Google has conducted its
-Summer of Code™ initiative,
-a program by which student developers are sponsored for their contributions
-within open source organizations willing to mentor the participants. The 2006
-campaign has run between April and September, with active development work
-taking place between May 23 and August 21.
-</p>
-
-<p>
-Around mid April, when the program had just started, some Boost members began
-considering the possibility to enter Summer of Code as a mentoring
-organization. Despite the lack of time and the fact that most of us were
-completely new to this initiative, Boost managed to successfully apply for
-the program. As a result ten projects were selected and mentored, most of
-which are expected to become full contributions to Boost in the near future.
-</p>
-
-<p>
-We give here a summary report of this experience, along with a short analysis
-of the main problems we found, so that we can work at solving them and do
-better next year.
-</p>
-
-<h2>Contents</h2>
-
-<ul>
- <li>How the program works
- <ul>
- <li>2006 figures</li>
- </ul>
- </li>
- <li>Boost participation
- <ul>
- <li><a href="#application_and_process_selection">Application and
- process selection</a></li>
- <li>Accepted projects</li>
- <li>Development</li>
- <li>Results</li>
- </ul>
- </li>
- <li>Analysis
- <ul>
- <li>Boost appeal</li>
- <li>Opportunities lost?</li>
- <li>Projects startup</li>
- <li>Ongoing development</li>
- <li><a href="#public_communication_issues">Public communication
- issues</a></li>
- <li>Scope of projects</li>
- </ul>
- </li>
- <li>Suggestions for improvement
- <ul>
- <li>Preparation</li>
- <li>Public communication</li>
- <li>Project management</li>
- </ul>
- </li>
- <li>Conclusions</li>
- <li>Acknowledgements</li>
-</ul>
-
-
-<h2><a name="how_the_program_works">How the program works</a></h2>
-
-<p>
-There are three types of participants in Google Summer of Code:
-<ul>
- <li>Google itself acts as the funding partner and conducts the overall
- program.</li>
- <li>The open source organizations accepted into the program must designate
- people inside the organization who will act as project mentors.</li>
- <li>Students submit their project ideas and, if selected, work in
- collaboration with one of the mentoring organizations; upon successful
- completion of the project, students receive the full stipend for the
- program.</li>
-</ul>
-The program goes through the following stages:
-<ul>
- <li>Organization selection: those open source organizations willing to
- enter Summer of Code submit an expression of interest to Google, along
- with information Google uses for qualifying purposes. Selected organizations
- are publicly announced and each organization is expected to provide a pool
- of project ideas.</li>
- <li>Student selection: students willing to participate submit one or more
- project proposals, typically expanding on some of the ideas previously
- provided by the mentoring organizations. A student can apply several times
- and for different organizations, but ultimately can only be chosen for just
- one project. These proposals are routed by Google to the appropriate
- organizations, which must analyze them, rank them, and assign mentors to the
- most promising applications. Based on the information provided by mentoring
- organizations, Google issues the final list of accepted projects.</li>
- <li>Development: Students, guided by their assigned mentors, are expected to
- complete the projects in a period of three months. Google asks mentors for a
- mid-program review upon which continuation of the project depends.</li>
- <li>Final review: Once the development period is over, mentors are requested
- to inform Google on the results of the project, and determine whether students
- qualify to receive the full stipend.</li>
-</ul>
-</p>
-
-<h3><a name="2006_figures">2006 figures</a></h3>
-
-<p>
-The 2006 campaign of Google Summer of Code took place between April 14 and
-September 25. A total of 102 mentoring organizations participated. Of the 6,338
-applications submitted by 3,044 students around the globe, 630 were finally
-selected and funded. Google has spent more than US$3 million in student stipends
-and compensations to the mentoring organizations.
-</p>
-
-<h2><a name="#boost_participation">Boost participation</a></h2>
-
-<h3><a name="#application_and_process_selection">Application and
-process selection</a></h3>
-
-<p>
-On April 14, the same day Google Summer of Code started, Julio M. Merino Vidal
-(later to become one of the selected students) sent a message encouraging Boost
-members to participate in this program as a mentoring organization. This call
-sparked the interest of the community; although time was already short for doing
-all the preparation labors, Boost moderators put rapidly themselves to work and
-conducted the preliminary registration steps. In the meantime, a Wiki page was
-grown with project ideas provided by Boost members, totalling more than twenty
-proposals.
-</p>
-
-<p>
-By the beginning of May Boost was officially accepted into the program and Boost
-moderators set out to form a group of mentors, selected on an invitation basis.
-As student selection is a delicate process, involving the assessment of individuals
-on their technical skills, all subsequent discussions were conducted by the
-selected mentors on a private mail list established for their collaboration.
-</p>
-
-<p>
-We were not prepared for the avalanche of student applications that followed. On
-day two after the application period was open, we had received three proposals;
-next day it was 14, and within a week the count exceeded 50. By the end of the
-application period the total number of proposals received was 174, which forced
-us to go through a very intensive ranking process and recruit additional mentors.
-Two rules were followed so as rationalize the process of selection among dozens
-of different proposals:
-<ul>
- <li>Where there were competing applications for the same project idea, only
- one were to be ultimately selected; so, no two projects with the same or very
- similar goals were accepted.</li>
- <li>Some of the applications built on a given Boost library (for instance, the
- Boost Graph Library is a frequent target for the addition of algorithms.) We
- limited the applications to a maximum of two per Boost library.</li>
-</ul>
-These rules have the combined effect of greatly reducing the number of eligible
-applications while at the same time distributing the accepted projects evenly
-across the space of ideas. Moreover, students with unique proposals, i.e. project
-ideas not coming from the pool originally presented by Boost, are at a
-competitive advantage.
-</p>
-
-<p>
-The different proposals were classified according to its related technological
-area so that each cluster could be handled by an appointed mentor with the
-required expertise on the subject. Mentors submitted then "focus reports"
-summarizing the applications under their responsibility; these reports served as
-a first filter to help reduce the number of final applications to be evaluated
-jointly. Along the process, students with the most promising proposals were asked
-to refine their ideas and provide further information.
-</p>
-
-<p>
-Although not enforced by the official rules, we agreed upon a one-to-one ratio
-of mentors to students, which ultimately marked a hard limit on the maximum number
-of eligible projects.
-</p>
-
-<h3><a name="accepted_projects">Accepted projects</a></h3>
-
-<p>
-Google accepted and funded the ten top-ranked projects endorsed by Boost. Of
-these, eight projects are libraries or library components targeted for future
-inclusion into Boost, while the remaining two consist of utility programs
-heavily relying on Boost.
-</p>
-
-<blockquote>
-<b>C++ Coroutine Library</b>
-<br>
-Giovanni Piero Deretta, mentored by Eric Niebler.
-<br>
-Library for the management through a modern C++ interface of OS-provided
-coroutine facilities.
-</blockquote>
-
-<blockquote>
-<b>Concurrency Library</b>
-<br>
-Matthew Calabrese, mentored by David Abrahams.
-<br>
-STL-inspired generic framework for high-level specification and execution of
-parallelizable algorithms.
-</blockquote>
-
-<blockquote>
-<b>TR1 Math Special Functions</b>
-<br>
-Xiaogang Zhang, mentored by John Maddock.
-<br>
-Implementation of the 23 special mathematical functions specified in C++
-standard library extension proposal TR1.
-</blockquote>
-
-<blockquote>
-<b>The Boost.Process library</b>
-<br>
-Julio M. Merino Vidal, mentored by Jeff Garland.
-<br>
-Portable library for process launching and basic management.
-</blockquote>
-
-<blockquote>
-<b>Out-of-Core Graphs and Graph Algorithms</b>
-<br>
-Stéphane Zampelli, mentored by Jeremy Siek.
-<br>
-Extension of the Boost Graph Library to deal with out-of-core structures,
-i.e. data sets too large to be kept in main memory at once.
-</blockquote>
-
-<blockquote>
-<b>MISC (M)ulti (I)ndex (S)pecialized (C)ontainers</b>
-<br>
-Matías Capeletto, mentored by Joaquín M López Muñoz.
-<br>
-Families of specialized containers internally based on Boost.MultiIndex.
-</blockquote>
-
-<blockquote>
-<b>Generic Tree Container</b>
-<br>
-Bernhard Reiter, mentored by René Rivera.
-<br>
-Design and implementation of a family of STL-compatible tree containers.
-</blockquote>
-
-<blockquote>
-<b>Viewer utility for FSMs</b>
-<br>
-Ioana Tibuleac, mentored by Andreas Huber Dönni.
-<br>
-Utility program for the visualization of finite state machines (FSMs) specified
-with Boost.Statechart.
-</blockquote>
-
-<blockquote>
-<b>Modular C++ preprocessor, using Boost.Spirit</b>
-<br>
-Hermanpreet 'Lally' Singh, mentored by Joel de Guzman.
-<br>
-Implementation with Boost.Spirit and Boost.Wave of a front-end translator
-from Modular C++ (as specified in a proposal to add modules to C++ by Daveed
-Vandevoorde) to standard C++.
-</blockquote>
-
-<blockquote>
-<b>Implementing a state of the art Mincut/Maxflow algorithm.</b>
-<br>
-Stephan Diederich, mentored by Douglas Gregor.
-<br>
-Implementation of a fast mincut/maxflow routine for the Boost Graph Library
-based on a new algorithm devised by Vladimir Kolmogorov.
-</blockquote>
-
-<h3><a name="development">Development</a></h3>
-
-<p>
-Two main facilities were set up to assist students and mentors during the
-development phase: a mailing list and a Trac/SVN project management system
-with separate directories for each project. One of the students, Matías
-Capeletto, out of personal initiative registered a Google Group aimed at giving
-students with Boost a place for informal interaction and discussion of common
-problems.
-</p>
-
-<p>
-After the initial warm-up period, each student-mentor pair performed development
-work mostly privately. The usage of the Boost mailing lists was scarce, and
-only by the end of the program did some students publicly announced their results.
-</p>
-
-<h3><a name="results">Results</a></h3>
-
-<p>
-By the date the development period was officially closed, the status of the
-different projects was as follows:
-<ul>
- <li>Seven projects were completed or nearly completed and the students are
- expected to ask for a formal review within 2006 or early 2007. Four of these
- projects necessitated a goal reorientation during development, basically
- because the original plan was too ambitious for three months. Most of the
- projects are still in active development during the months following the
- Summer of Code program.</li>
- <li>Two projects did not reach the planned goals, but nevertheless produced
- useful material that could be expanded outside of the Summer of Code
- program.</li>
- <li>One project was abandoned shortly after the midterm review. The reasons
- for the abandonment are unknown.</li>
-</ul>
-The results of all the projects can be consulted online at the dedicated
-<a href="https://www.boost-consulting.com:8443/trac/soc/browser/boost/soc/2006">Trac
-site</a>.
-</p>
-
-<h2><a name="analysis">Analysis</a></h2>
-
-<p>
-We examine the various stages of Boost participation in Summer of Code, with an
-emphasis on discovering opportunities for improvement.
-</p>
-
-<h3><a name="boost_appeal">Boost appeal</a></h3>
-
-<p>
-In a mid project
-<a href="http://code.google.com/soc/GSoC2006Statistics.pdf">presentation at OSCON
-2006</a>, Chris DiBona from Google provided some data about the organizations
-which received the most applications:
-</p>
-
-<p align="center">
-<table cellspacing="0">
-<tr>
- <th align="left">Organization</th>
- <th>No of applications</th>
-</tr>
-<tr>
- <td>KDE</td>
- <td align="center">244</td>
-</tr>
-<tr class="odd_tr">
- <td>Ubuntu & Bazaar</td>
- <td align="center">236</td>
-</tr>
-<tr>
- <td>Python Software Foundation</td>
- <td align="center">212</td>
-</tr>
-<tr class="odd_tr">
- <td>GNOME</td>
- <td align="center">199</td>
-</tr>
-<tr>
- <td>Apache Software Foundation</td>
- <td align="center">190</td>
-</tr>
-<tr class="odd_tr">
- <td><b>Boost</b></td>
- <td align="center"><b>174</b></td>
-</tr>
-<tr>
- <td>Gaim</td>
- <td align="center">152</td>
-</tr>
-<tr class="odd_tr">
- <td>The GNU Project</td>
- <td align="center">148</td>
-</tr>
-<tr>
- <td>Drupal</td>
- <td align="center">146</td>
-</tr>
-</table>
-</p>
-<blockquote style="FONT-SIZE: 75%;">
-The numbers shown here have been estimated from a chart included in the
-presentation slides. This chart contains an additional column labeled "Google"
-which actually accounts for the applications dismissed because of their low
-quality.
-</blockquote>
-
-<p>
-The fact that Boost is ranked the sixth most attractive organization out of a
-total of 102 was entirely unexpected, especially considering the wide popularity
-of the rest of top-rated organizations. There is a more or less implicit
-consensus among Boost members that ours is a relatively niche project, known for
-its quality standards by seasoned C++ practitioners, but with a limited penetration
-among entry level programmers: maybe the figures above should make us reconsider
-this assumption. A cursory examination of the applications submitted to Boost reveals
-that most applicants were regular users of Boost: many cite the Boost status among
-the C++ community as an appealing factor in order to apply.
-</p>
-
-<h3><a name="opportunities_lost">Opportunities lost?</a></h3>
-
-<p>
-If we look at the number of funded projects with respect to the applications received,
-figures are not so favorable to Boost.</p>
-
-<p align="center">
-<table cellspacing="0">
-<tr>
- <th align="left">Organization</th>
- <th>No of projects</th>
- <th>Project/app ratio</th>
-</tr>
-<tr>
- <td>KDE</td>
- <td align="center">24</td>
- <td align="center">9.8 %</td>
-</tr>
-<tr class="odd_tr">
- <td>Ubuntu & Bazaar</td>
- <td align="center">22</td>
- <td align="center">9.3 %</td>
-</tr>
-<tr>
- <td>Python Software Foundation</td>
- <td align="center">23</td>
- <td align="center">10.8 %</td>
-</tr>
-<tr class="odd_tr">
- <td>GNOME</td>
- <td align="center">19</td>
- <td align="center">9.5 %</td>
-</tr>
-<tr>
- <td>Apache Software Foundation</td>
- <td align="center">27</td>
- <td align="center">14.2 %</td>
-</tr>
-<tr class="odd_tr">
- <td><b>Boost</b></td>
- <td align="center"><b>10</b></td>
- <td align="center"><b>5.7 %</b></td>
-</tr>
-<tr>
- <td>Gaim</td>
- <td align="center">8</td>
- <td align="center">5.3 %</td>
-</tr>
-<tr class="odd_tr">
- <td>The GNU Project</td>
- <td align="center">10</td>
- <td align="center">6.8 %</td>
-</tr>
-<tr>
- <td>Drupal</td>
- <td align="center">14</td>
- <td align="center">9.6 %</td>
-</tr>
-</table>
-</p>
-
-<p>
-It turns out that the project/application ratio for almost any other organization
-among the top nine is considerably higher than that of Boost. As it happens, Google
-initially requested that organizations submitted the maximum number of projects they
-felt they could cope with, and we got funding for exactly what we aimed for, so the
-limiting factor lies entirely on Boost's side.
-</p>
-
-<h3><a name="projects_startup">Projects startup</a></h3>
-
-<p>
-Contributing to Boost relies on a fair number of guidelines and protocols for
-coding, documentation, testing and maintenance. Many of the required tools are
-exclusively used within Boost, and some of them are not trivial, like for instance
-Boost.Build. Although the Boost web site contains information about all these tools
-and procedures, this intelligence is scattered through unrelated pages and sometimes
-is very hard to come by.
-</p>
-
-<p>
-So, there is a good deal of expertise required to begin working at Boost. Some
-students have reported on startup difficulties getting to know these details and
-familiarizing themselves with the tools, most notably <code>bjam</code> and Quickbook. Each
-student overcome the startup difficulties on their own or resorting to their
-mentors (see the section on <a href="#public_communication_issues">public
-communication issues</a>).
-</p>
-
-<h3><a name="ongoing_development">Ongoing development</a></h3>
-
-<p>
-Once students got past the startup stage, most projects advanced without serious
-complications. In the majority of cases, it was realized at some point during
-the development that there was no time to complete it. Some participants had to
-redefine the goals in an effort to keep the project within schedule, while others
-simply decided that they would continue working after the official deadline of
-Summer of Code.
-</p>
-
-<p>
-The information flow between each student and their mentor was usually reported
-by both parties to be satisfactory. The projects suffering from lack of
-communication have been precisely those yielding the poorest results. In general,
-mentors have not felt overwhelmed by requests from their students, and even in a
-couple of cases the projects were run practically unattendedly. This fact is
-witness to the high competence of the students recruited into the program.
-</p>
-
-<p>
-The degree of usage of the Trac/SVN system has varied. Some students did frequent
-updates, while others have just used the repository to dump the final results for
-the official submission to Google.
-</p>
-
-<h3><a name="public_communication_issues">Public communication
-issues</a></h3>
-
-<p>
-Students and mentors had at their disposal three different forums for the public
-interchange of information and support:
-<ul>
- <li>Boost public lists, especially the developers and users lists.</li>
- <li>A dedicated mailing list reaching all students and mentors working at
- Summer of Code in Boost.</li>
- <li>A more casual Google Group, set up by one of the students, aimed at
- providing the participants with a place for socializing and resolution of
- common problems.</li>
-</ul>
-Despite this abundance of resources, there was an almost complete lack of group
-communication among all the parties involved and between these and the larger
-Boost community. Seemingly, students were satisfied to pursue their activities by
-relying on support from their mentors alone. This circumstance has prevented
-Boost members from enriching the initiative by offering their experience and
-insight, and has possibly led students to the false impression that contributing
-to Boost proceeds in a predictable linear path from requisites to completion of
-the work. When asked about their not engaging in public communication, the students
-gave vague justifications that can be classified into the following:
-<ul>
- <li>Doubts were deemed too technical or specific to be worth raising in
- public.</li>
- <li>A crave for perfectionism detracted students from asking or submitting work
- in progress until they felt their material looked good enough.</li>
- <li>Shyness: some students probably lacked previous experience communicating in
- public, and most are not English native speakers, which could also be a
- limiting factor.</li>
-</ul>
-Although students did not identify the following as a reason not to go public, it
-is likely that many of them did not feel the need given the readily access to their
-mentors they enjoyed. It is easy to grow used to such a dedicated source of support
-and neglect resorting to other resources. Mentors should have encouraged their
-students to pursue the public discussion of projects, which constitutes one of the
-pillars of Boost renowned quality.
-</p>
-
-<h3><a name="scope_of_projects">Scope of projects</a></h3>
-
-<p>
-In hindsight, it has become apparent that most projects were too ambitious to be
-completed within the three months of duration of the program, and even those that
-were considered a success will need weeks or months of polishing up before the
-material is ready for a formal review. In contrast with other organizations
-participating in the Summer of Code program, Boost has as of this writing included
-no results into its code base. No formal review for any project has been requested
-yet, either.
-</p>
-
-<p>
-These scope issues are very dependent on the particular type of project. We can
-classify the Boost projects for Summer of Code as follows:
-<ul>
- <li>Full-fledged libraries,</li>
- <li>additions to existing Boost libraries,</li>
- <li>utilities and tool projects using Boost.</li>
-</ul>
-Of these, additions (like for instance the mincut/maxflow algorithm for BGL by
-Stephan Diederich) are the most suitable for completion in a short period of time:
-most of the preparation work is already done, and the student has clear guides as
-to what coding and documentation standards to follow. Also, these projects need
-not undergo a formal review, since it is the responsibility of the hosting library
-author to review the code and include it within her discretion. Utility projects
-seem also suitable for small timeframes, though most project proposals and requests
-are naturally oriented to contributions of actual code to the Boost project.
-</p>
-
-<p>
-As for those projects involving the design and realization of full-fledged
-libraries, there is little hope that the goals and scope can be kept modest enough
-for a three-month schedule. Boost candidate libraries developed by professional
-authors usually take much longer than three months to be accepted; some libraries
-have been evolving through several <i>years</i> before being included into Boost.
-So, the best we can hope for if we are to support the realization of library projects
-for Boost inside Summer of Code is that the results by the end of the program can
-be evaluated to constitute a viable <i>potential</i> contribution to Boost. When this is
-the case, it is crucial that the student commits to further working on the project
-up to completion and formal review. Perhaps more important than getting libraries
-coded is to engage new authors into a long-term relationship with the Boost project.
-</p>
-
-<h2><a name="suggestions_for_improvement">Suggestions for improvement</a></h2>
-
-<p>
-The following proposals aim to alleviate some of the problems we have identified
-during the development of Summer of Code within Boost. These action points are
-related only to the issues found in connection with Boost: we are not addressing
-other areas of improvement associated to the Summer of Code program itself.
-</p>
-
-<h3><a name="preparation">Preparation</a></h3>
-
-<p>
-Much work can be done before the actual program begins. The following preparation
-activities can already be launched:
-</p>
-
-<p>
-<b>Create a pool of ideas for projects.</b> This action will provide valuable extra
-time for evaluation and refining of ideas before the Summer of Code begins.
-The experience has shown that those projects with more preparation work, especially
-in the area of design, were ultimately more successful. The pool can also be used
-to retain interesting ideas that arise at the mailing lists and very often are
-not given proper attention and become abandoned.
-</p>
-
-<p>
-<b>Create a student pool.</b> Prior involvement with Boost is clearly an advantage
-both in the selection phase and later during project development. Those students
-with a serious interest in participating in Summer of Code with Boost can enter
-the pool and begin exploring ideas and interacting with the community well in
-advance of the summer, so as to put themselves in a favorable position for the
-selection. Advertisement for the student pool can be initiated in the beginning of
-2007 through the usual channels (web site and mailing lists): additionally, Boost
-members involved with the University can spread this information locally and help
-raise the interest of students in their environment.
-</p>
-
-<p>
-<b>Create a mentor pool.</b> Given the rush with which Boost entered the 2006
-Summer of Code campaign, the invitation of mentors has to be done on an on-demand
-basis as it became all too evident that the task was growing bigger and bigger.
-It is important that the organization is better prepared next year so that a
-number of people with the ability and will to participate as Boost mentors are
-identified in advance.
-</p>
-
-<p>
-<b>Prepare a startup package.</b> In order to facilitate the initial period of
-getting familiarized with the various Boost guidelines, protocols and tools, it
-would be extremely useful to prepare a compilation of startup material for
-students. This package can consist of a single document gathering the currently
-dispersed information, or go beyond this and provide some bundle of documentation
-and pre-built tools, an approach that one of the students is currently working on.
-</p>
-
-<h3><a name="public_communication">Public communication</a></h3>
-
-<p>
-It is crucial that students get involved with the community as soon as possible
-and grow to appreciate the advantages of public development with respect to
-solitary coding.
-</p>
-
-<p>
-<b>Mandate (bi)weekly reports.</b> These reports should be directed to the public
-mailing lists so as to give all Boost members an opportunity to follow the work
-in progress and contribute. Reporting has the extra benefit for students of
-forcing them to reflect on their own work periodically and struggle with the
-often difficult task of presenting their ideas to others.
-</p>
-
-<p>
-<b>Conduct student-mentor exclusively through public channels.</b> This might be
-too drastic a policy, as some matters need privacy, and depending on the amount
-of information exchanged flooding problems may arise. Less severe variations
-involve allowing for some private interchange at the mentors' discretion and
-moving this kind of communication to a dedicated public mailing list different
-from the general ones.
-</p>
-
-<h3><a name="project_management">Project management</a></h3>
-
-<p>
-The two most important issues to improve upon with respect to the management are:
-<ul>
- <li>Project scope must be kept under control,</li>
- <li>The progress has to be publicly visible, so that problems of scope,
- design and/or schedule can be more easily detected.</li>
-</ul>
-Some of the proposals in this section are not to be regarded as strict rules,
-but rather as general guidelines to be kept in mind by students and encouraged
-by mentors.
-</p>
-
-<p>
-<b>Create a best practices document.</b> This document can serve as a guideline
-for project management, an area in which Boost traditionally imposes no
-requirements. Students might lack the expertise in this area that is usually
-taken for granted in the traditional model where contributions to Boost are
-made by professional programmers.
-</p>
-
-<p>
-<b>Mandate a design phase.</b> Having a concrete design set up and clearly
-described early in the project will help estimate the necessary effort for
-completion of the work. This is also an opportunity for public discussion.
-</p>
-
-<p>
-<b>Maintain code, docs and tests in parallel.</b> All too often, novice
-programmers do the coding in one fell swoop and only then move to testing and
-documenting their work. This is unacceptable by all current methodology
-standards, and can result in serious underestimations of the time to
-completion.
-</p>
-
-<p>
-<b>Encourage the KISS principle.</b> It is much better to finish a simpler library
-and then iteratively evolve it, once it has been exposed to public scrutiny and
-usage.
-</p>
-
-<p>
-<b>More Trac updates.</b> The repository should be viewed as an everyday work
-tool, not only as the place into which to dump the final results. Updating often
-leads to more visibility of the work by the mentor and the public in general.
-</p>
-
-<p>
-<b>Informal reviews.</b> The typical Summer of Code Boost project will not be
-completed by the official deadline, as have been discussed earlier. To somehow
-officialize the work done within the Summer of Code proper, and also to allow
-the students to reach some sort of psychological milestone, informal reviews can
-be instituted where Boost members evaluate the work done at then end of Summer
-of Code.
-</p>
-
-<p>
-<b>Engage students.</b> This experience has shown that it is possible to guide
-willing and bright students to the competence levels required for contributing
-to Boost. The best possible outcome of Summer of Code campaigns are the
-incorporation of new people into the circle of Boost active contributors. Strive
-to make the students commit to Boost.
-</p>
-
-<h2><a name="conclusions">Conclusions</a></h2>
-
-<p>
-Despite the lack of previous experience in Boost, our participation in Google
-Summer of Code has been extremely fruitful: much useful material has been produced,
-and, perhaps more importantly, some of the students are likely to commit on a
-long-term basis and grow to be regular Boost contributors. Traditionally, becoming
-a productive Boost author has a very high entry barrier due to the extreme quality
-standards, lack of public support and the very specific culture of the project.
-The appeal of Summer of Code itself and the possibility of being gently mentored
-into the world of Boost have most likely been key factors in lowering this entry
-barrier.
-</p>
-
-<p>
-The process has not been without some difficulties, either, as it was expected of
-a newcomer organization as Boost. We have tried to identify in this paper the
-areas of improvement and suggest specific actions so that the upcoming Google
-Summer of Code 2007 can be an even more rewarding experience.
-</p>
-
-<h2><a name="acknowledgements">Acknowledgements</a></h2>
-
-<p>
-This paper couldn't have been written without the numerous reports and contributions
-kindly provided by Boost students and mentors: Many thanks to all the participants
-for sharing their experiences with me. Thank you also to the people at Google who
-have promoted and conducted the Summer of Code initiative.
-</p>
-
-<hr>
-
-<p>Revised October 17th 2006</p>
-
-<p>© Copyright 2006 Joaquín M López Muñoz.
-Distributed under the Boost Software
-License, Version 1.0. (See accompanying file <a href="../LICENSE_1_0.txt">
-LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">
-http://www.boost.org/LICENSE_1_0.txt>)
-</p>
-
-</body>
-</html>
Deleted: branches/proto/v3/more/cvs.html
==============================================================================
--- branches/proto/v3/more/cvs.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,112 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-<head>
- <title>Boost CVS Repository</title>
- <meta content="HTML Tidy for Cygwin (vers 1st April 2002), see www.w3.org"
- name="generator">
- <meta content="Microsoft FrontPage 5.0" name="generator">
- <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
- <link href="../boost.css" type="text/css" rel="stylesheet">
-</head>
-
-<body text="#000000" bgcolor="#FFFFFF">
- <table cellspacing="0" cellpadding="0" width="100%" summary="" border="0">
- <tr valign="top">
- <td valign="top" align="left"><img height="86" alt=
- "boost.png (6897 bytes)" src="../boost.png" width="277"></td>
-
- <td valign="top" align="right">
- <table cellspacing="0" cellpadding="2" summary="" border="1">
- <tr>
- <td>
- <table cellspacing="0" cellpadding="2" summary="" border="0">
- <tr>
- <td bgcolor="#DDDDDD">
- <p>. Home<br>
- . Libraries<br>
- . People<br>
- . FAQ<br>
- . More</p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-
- <h1><a id="CVS" name="CVS">Boost's CVS Repository</a></h1>
-
- <p>All Boost files, including the entire distribution tree including web
- site HTML is maintained in a CVS repository. Command line, GUI, or browser
- access is available.</p>
-
- <h2>Boost CVS access via command line or graphical clients</h2>For those
- who have CVS clients installed, the libraries are also available from the
- public <a href="http://sourceforge.net/cvs/?group_id=7586">Boost CVS
- repository</a>. Free command line clients (often already installed on
- Linux/Unix systems) are available for many systems, and free GUI clients
- are available for Windows, Mac, and other systems.
-
- <p>See the much improved <a href=
- "http://sourceforge.net/docman/?group_id=1">CVS documentation</a> (Section
- F) from SourceForge, which includes links to the home pages for various GUI
- and command line clients.</p>
-
- <p>The general procedure for command-line clients is something like
- this:</p>
-
- <blockquote>
- <code>cvs -d:pserver:anonymous_at_[hidden]:/cvsroot/boost
- login</code><br>
- [Hit <return> when it asks for a password]<br>
- <code>cvs -z3 -d:pserver:anonymous_at_[hidden]:/cvsroot/boost
- checkout boost</code><br>
- <code>cvs -d:pserver:anonymous_at_[hidden]:/cvsroot/boost
- logout</code>
- </blockquote>Read the manual for your CVS client for further information.
-
- <p>This access is read-only; if you are a library author and wish to have
- CVS write access, please contact one of the <a href=
- "moderators.html">moderators</a>.</p>
-
- <h2>Boost CVS access via web <a id="Browser" name=
- "Browser">Browser</a></h2>For access to the CVS archive from any modern web
- browser, you can also use the <a href=
- "http://boost.cvs.sourceforge.net/boost/boost/">web
- browser interface</a>. Try one of the color diffs to see how a
- file has changed over time. <b>Note:</b> this interface is only suitable
- for viewing individual files and their revision histories.
-
- <h2><a id="generated" name="generated">Documentation</a> generated from
- BoostBook in CVS</h2>
-
- <p>Some of the Boost documentation is generated from <a href=
- "../doc/html/boostbook.html">BoostBook XML</a> source stored in the CVS
- repository, and will not appear directly in the CVS tree as readable HTML.
- View a nightly build of the generated HTML on the <a href=
- "http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/libraries.html">
- Nightly Generated Documentation</a> page. Where generated HTML is missing
- from the CVS tree, an attempt has been made to include redirection to this
- nightly build, but if you are away from an internet connection you may want
- to download the generated documentation archive from the aforementioned
- page so you can browse those documents offline.</p>
-
- <hr>
-
- <p>Revised $Date$</p>
-
- <p>Copyright © Rene Rivera 2003.<br>
- Copyright © Jens Maurer 2001.<br>
- Copyright © John Maddock 2004.</p>
-
- <p><small>Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or copy
- at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
-</body>
-</html>
Deleted: branches/proto/v3/more/faq.htm
==============================================================================
--- branches/proto/v3/more/faq.htm 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,178 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Boost FAQ</title>
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-
-<table border="1" bgcolor="#007F7F" cellpadding="2">
- <tr>
- <td bgcolor="#FFFFFF">
- <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home </td>
- <td>Libraries </td>
- <td>People </td>
- <td>FAQ </td>
- <td>More </td>
- </tr>
-</table>
-
-<h1>Boost Frequently Asked Questions</h1>
-
-<p><strong>How do I download the libraries?</strong>
- See Download instructions.</p>
-
-<p><b>What support is available for the libraries?</b> The
-Boost-Users mailing list is a good start.</p>
-
-<p><b>What do the Boost version numbers mean? </b>The scheme is x.y.z, where x is incremented only for massive changes, such as a reorganization of many libraries, y is incremented whenever a new library is added, and z is incremented for maintenance releases. y and z are reset to 0 if
-the value to the left changes. <br>
-<br>
-<b>Is there any assurance libraries actually work as claimed?</b> No. The review
-process will hopefully eliminate the most seriously flawed libraries, but a well
-constructed library with hidden defects is likely to slip through. Encouraging ordinary
-users to report their experience with a library is intended to address such concerns.
-See the Status page for an
-indication of how well a library works on specific platforms. </p>
-
-<p>
-<b>How can the Boost libraries be used successfully for important projects?
-</b>Many of the Boost libraries are actively maintained and improved, so backward compatibility with prior version isn't always possible. Deal with this by freezing the version of the Boost libraries used by your project. Only upgrade at points in your project's life cycle where a bit of change will not cause problems. Individual bug fixes can always be obtained from the CVS repository. </p>
-
-<p><b>How is a library accepted for posting on the site?</b>
-See Library Submission Process</p>
-
-<p><b>How does someone submit a Formal Review comment?</b> Send email to <a
-href="mailto:boost_at_[hidden]">boost_at_[hidden]</a>. See the <a href="formal_review_process.htm">Formal
-Review</a> page for more information. </p>
-
-<p><strong>How does someone submit a library?</strong> See <a href="lib_guide.htm">Library
-Guidelines</a></p>
-
-<p><b>Are commercial libraries requiring a fee acceptable?</b> No. However, a library that
-a commercial enterprise makes available without fee is acceptable. If the description of
-the library makes a low-key plug for the supplier, that is acceptable as long as the
-library delivers real value and isn't just a Trojan horse for the plug.</p>
-
-<p><b>Are shareware libraries acceptable?</b> No. Only free libraries
-will be accepted.</p>
-
-<p><strong>Are open source license libraries acceptable?</strong> Some
-are, many are not.
-Open source licenses often require redistribution or availability of source code,
-inclusion of license document with machine-executable redistribution, give the initial
-developer rights to licensee modifications, or need a lawyer to understand. These
-would be immediate disqualifications for many business, commercial, and consumer
-applications. Boost aims to avoid subjecting users to hard-to-comply-with license
-terms. See License requirements.<br>
-<br>
-This is subject to review for a particularly important piece of software, or as the
-industry changes.</p>
-
-<p><b>Must full source code be provided?</b> Yes, these are source code libraries.</p>
-
-<p><b>What about documentation?</b> A very simple library might be accepted with only a
-well commented header file. For more substantial libraries, some form of documentation is
-certainly going to be expected. HTML is the preferred form.</p>
-
-<p><b>Are platform specific libraries acceptable?</b> There is a preference for portable
-libraries. Libraries will be accepted that have portable interfaces but require platform
-specific implementations, as long as the author supplies implementations for a couple of
-disparate major operating systems.</p>
-
-<p><b>Must a library do useful work? </b>No. A library meant as a teaching example or
-demonstration might not actually do any work.</p>
-
-<p><b>Can an existing library be accepted by Boost?</b> Yes, although it would
-have to be "Boostified" to meet the requirements. The Boost
-Graph and Regex libraries are examples of libraries which began life elsewhere.</p>
-
-<p><b>Who owns the libraries?</b> Presumably many authors will copyright their libraries.
-Others authors may wish to place their libraries in the public domain. The Boost.org
-policy is to only accept libraries with a clear copyright notice and meeting the
-License requirements.. It is up to
-potential users to decide if the terms acceptable, and not to use
-libraries with unacceptable copyrights or licenses.</p>
-
-<p><b>Is there a formal relationship between Boost.org and the C++ Standards Committee?</b>
- No, although there is a strong informal relationship in that many members
-of the committee participate in Boost, and the people who started Boost were all
-committee members.</p>
-
-<p><b>Will the Boost.org libraries become part of the next C++ Standard?</b> Some
-might, someday, but that is up to the standards committee. Committee
-members who also participate in Boost will definitely be proposing at least some
-Boost libraries for standardization.</p>
-
-<p>Libraries which are "existing practice" are most likely to be
-accepted by the C++ committee for future standardization. Having a library
-accepted by Boost is
-one way to establish existing practice.</p>
-
-<p><b>Where does the name "Boost" come from?</b> Boost began with
-Robert Klarer and I fantasizing about a new library effort over dinner at a C++
-committee meeting in Sofia Antipolis, France, in 1998. Robert mentioned that Herb Sutter
-was working on a spoof proposal for a new language named Booze, which was
-supposed to be better than Java. Somehow that kicked off the idea of
-"Boost" as a name. We'd probably had a couple of glasses of good
-French wine at that point. It was just a working name, but no one ever came up
-with a replacement. (Beman Dawes)</p>
-
-<p><b>Is the web site a commercial business?</b> No. It is just some people getting together
-as a kind of cyberspace civic association. If it ever needs to incorporate, it would be as
-a
-non-profit organization.</p>
-
-<p><b>Is there any charge for submitting libraries or reviews to Boost.org?</b> No. Unlike
-the standards committees, you don't have to pay to volunteer!</p>
-
-<p><b>Will the site include material beyond libraries?</b> The main focus is on libraries,
-but if people contribute occasional articles or other material to make the site more
-interesting, that could be a nice fit.</p>
-
-<p><b>Why isn't there a separate boost mailing list for my favorite
-library? </b> One of the reasons for boost's success has been the cross-pollination of ideas between diverse library
-projects and the occasional look into other threads by otherwise uninterested parties. The more people participate, the less they tend to be annoyed by
-"noise".</p>
-
-<p><b>How can I cope with the large volume of boost mailing list messages?</b>
-One approach is to use the "digest" option; that cuts the email blizzard
-down to several (long) messages per day, so you can glance over the subjects
-summary at the top and quickly read what you think is important. The "no
-mail" option turns off list email entirely.</p>
-
-<p>Another approach is to follow the list traffic via an NTTP newsgroup reader.
-See Mailing List newsgroup
-information.</p>
-
-<p><b>Why do Boost headers have a .hpp suffix rather than .h or none at all?</b>
-File extensions communicate the "type" of the file, both to humans and
-to computer programs. The '.h' extension is used for C header files, and
-therefore communicates the wrong thing about C++ header files. Using no
-extension communicates nothing and forces inspection of file contents to
-determine type. Using '.hpp' unambiguously identifies it as C++ header file, and
-works well in actual practice. (Rainer Deyke)</p>
-
-<p><b>What should I do if I spot a bug in the Boost code or documentation?</b>
-See the suggestions on the Bugs page.</p>
-
-<p><b>How can I request a new feature in a Boost Library? </b>See the
-Requesting New Features page.</p>
-
-<hr>
-
-<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->23 June, 2005<!--webbot bot="Timestamp" i-checksum="19916" endspan --></p>
-
-<p>© Copyright Beman Dawes 2001</p>
-<p>
- Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or copy
- at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)
-</p>
-</body>
-</html>
\ No newline at end of file
Deleted: branches/proto/v3/more/formal_review_process.htm
==============================================================================
--- branches/proto/v3/more/formal_review_process.htm 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,350 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
- <head>
- <meta name="generator" content=
- "Microsoft FrontPage 5.0">
- <meta http-equiv="Content-Type" content=
- "text/html; charset=windows-1252">
- <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
- <meta name="ProgId" content="FrontPage.Editor.Document">
-
- <title>Boost Formal Review Process</title>
-<style type="text/css">
-_at_import ../boost.css
-.first {
- margin-top: 0 }
-.last {
- margin-bottom: 0 }
-div.attention, div.caution, div.danger, div.error, div.hint,
-div.important, div.note, div.tip, div.warning, div.admonition {
- margin: 2em ;
- border: medium outset ;
- padding: 1em }
-div.attention p.admonition-title, div.caution p.admonition-title,
-div.danger p.admonition-title, div.error p.admonition-title,
-div.warning p.admonition-title {
- color: red ;
- font-weight: bold ;
- font-family: sans-serif }
-div.hint p.admonition-title, div.important p.admonition-title,
-div.note p.admonition-title, div.tip p.admonition-title,
-div.admonition p.admonition-title {
- font-weight: bold ;
- font-family: sans-serif }
-</style>
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
- <table border="1" bgcolor="#007F7F" cellpadding="2">
- <tr>
- <td bgcolor="#FFFFFF"><img src="../boost.png" alt=
- "boost.png (6897 bytes)" width="277" height="86"></td>
-
- <td><a href="../index.htm"><font face="Arial" color=
- "#FFFFFF"><big>Home</big></font></a></td>
-
- <td><a href="../libs/libraries.htm"><font face="Arial" color=
- "#FFFFFF"><big>Libraries</big></font></a></td>
-
- <td><a href="../people/people.htm"><font face="Arial" color=
- "#FFFFFF"><big>People</big></font></a></td>
-
- <td><a href="faq.htm"><font face="Arial" color=
- "#FFFFFF"><big>FAQ</big></font></a></td>
-
- <td><a href="index.htm"><font face="Arial" color=
- "#FFFFFF"><big>More</big></font></a></td>
- </tr>
- </table>
-
- <h1>Boost Formal Review Process</h1>
- <div class="admonition-note admonition">
- <p class="first admonition-title">Before Requesting a Formal Review</p>
- <p class="last"><b>Read and follow the Boost <a href=
- "submission_process.htm">submission process</a>.</b> There are at
- least four steps a library author must take before a formal review is
- requested.</p>
- </div>
-
- <p>Introduction<br>
- What to include in Review Comments<br>
- Results<br>
- Notes for Review Managers<br>
- Notes for Library Submitters<br>
- Review Wizard<br>
- Fast Track Reviews</p>
-
- <h2><a name="Introduction" id="Introduction">Introduction</a></h2>
-
- <p>Proposed libraries are accepted into Boost only after undergoing a
- formal review, where Boost mailing list members comment on their evaluation
- of the library.</p>
-
- <p>The final "accept" or "reject" decision is made by the <a href=
- "#Review_Manager">Review Manager</a>, based on the review comments received
- from boost mailing list members.</p>
-
- <p>Boost mailing list members are encouraged to submit Formal Review
- comments:</p>
-
- <blockquote>
- <ul>
- <li>Publicly on the mailing list.</li>
-
- <li>Privately to the Review Manager.</li>
- </ul>
- </blockquote>
-
- <p>Private comments to a library submitter may be helpful to her or him,
- but won't help the Review Manager reach a decision, so the other forms are
- preferred.</p>
-
- <h2>What to include in Review <a name="Comments" id=
- "Comments">Comments</a></h2>
-
- <p>Your comments may be brief or lengthy, but basically the Review Manager
- needs your evaluation of the library. If you identify problems along
- the way, please note if they are minor, serious, or showstoppers.</p>
-
- <p>The goal of a Boost library review is to improve the library through
- constructive criticism, and at the end a decision must be made: is the
- library good enough at this point to accept into Boost? If not, we hope to
- have provided enough constructive criticism for it to be improved and
- accepted at a later time. The Serialization library is a good example of how
- constructive criticism resulted in revisions resulting in an excellent
- library that was accepted in its second review.</p>
-
- <p>Here are some questions you might want to answer in your review:</p>
-
- <ul>
- <li>What is your evaluation of the design?<br></li>
-
- <li>What is your evaluation of the implementation?<br></li>
-
- <li>What is your evaluation of the documentation?<br></li>
-
- <li>What is your evaluation of the potential usefulness of the
- library?<br></li>
-
- <li>Did you try to use the library? With what compiler? Did
- you have any problems?<br></li>
-
- <li>How much effort did you put into your evaluation? A glance? A quick
- reading? In-depth study?<br></li>
-
- <li>Are you knowledgeable about the problem domain?</li>
- </ul>
-
- <p>And finally, every review should answer this question:<br></p>
-
- <ul>
- <li>Do you think the library should be accepted as a Boost library?
- Be sure to say this explicitly so that your other comments don't obscure
- your overall opinion.</li>
- </ul>
-
- <p>Many reviews include questions for library authors. Authors are
- interested in defending their library against your criticisms; otherwise
- they would not have brought their library up for review. If you don't get a
- response to your question quickly, be patient; if it takes too long or you
- don't get an answer you feel is sufficient, ask again or try to rephrase the
- question. Do remember that English is not the native language for many
- Boosters, and that can cause misunderstandings.<br>
- <br>
- E-mail is a poor communication medium, and even if messages rarely get lost
- in transmission, they often get drowned in the deluge of other messages.
- Don't assume that an unanswered message means you're being ignored. Given
- constructively, criticism will be taken better and have more positive
- effects, and you'll get the answers you want.</p>
-
- <h2><a name="Results">Results</a></h2>
-
- <p>At the conclusion of the comment period, the Review Manager will post a
- message to the mailing list saying if the library has been accepted or
- rejected. A rationale is also helpful, but its extent is up to the
- Review Manager. If there are suggestions, or conditions that must be met
- before final inclusion, they should be stated.</p>
-
- <h2>Notes for <a name="Review_Manager" id="Review_Manager">Review
- Manager</a>s</h2>
-
- <p>Before a library can be scheduled for formal review, an active boost
- member not connected with the library submission must volunteer to be the
- "Review Manager" for the library.</p>
-
- <p>The Review Manager:</p>
-
- <ul>
- <li>Checks the submission to make sure it really is complete enough to
- warrant formal review. See the <a href="lib_guide.htm">Boost
- Library Requirements and Guidelines</a>. If necessary, work with
- the submitter to verify the code compiles and runs correctly on several
- compilers and platforms.</li>
-
- <li>Finalizes the schedule with the Review Wizard
- and the submitter .</li>
-
- <li>Posts a notice of the review schedule on the regular <b><a href=
- "mailto:boost_at_[hidden]">boost</a></b> mailing list, the
- <b><a href="mailto:boost-users_at_[hidden]">boost-users</a></b>
- mailing list, and the <b><a href=
- "mailto:boost-announce_at_[hidden]">boost-announce</a></b> mailing
- list.
-
- <ul>
- <li>The notice should include a brief description of the library and
- what it does, to let readers know if the library is one they are
- interested in reviewing.</li>
-
- <li>If the library is known to fail with certain compilers, please
- mention them in the review notice so reviewers with those compilers
- won't waste time diagnosing known problems.</li>
- </ul>
- </li>
-
- <li>Inspects the Boost <a href="../libs/libraries.htm">library
- catalogue</a> for libraries which may interact with the new submission.
- These potential interactions should be pointed out in the review
- announcement, and the author(s) of these libraries should be privately
- notified and urged to participate in the review.</li>
-
- <li>Urges people to do reviews if they aren't forthcoming.</li>
-
- <li>Follows review discussions regarding the library, moderating or
- answering questions as needed.</li>
-
- <li>Asks the review wizard for permission
- to extend the review schedule if it appears that too few reviews will
- be submitted during the review period.</li>
-
- <li>Decides if there is consensus to accept the library, and if there
- are any conditions attached.</li>
-
- <li>Decides if there is consensus to accept the library, and if there are
- any conditions attached.</li>
-
- <li>Posts a notice of the review results on the
- regular <b><a href="mailto:boost_at_[hidden]">boost</a></b> mailing
- list, the <b><a href=
- "mailto:boost-users_at_[hidden]">boost-users</a></b> mailing list,
- and the <b><a href=
- "mailto:boost-announce_at_[hidden]">boost-announce</a></b> mailing
- list.</li>
- </ul>
-
- <p>In other words, it is the Review Manager's responsibility to make sure
- the review process works smoothly.</p>
-
- <h2>Notes for Library <a name="Submitters" id=
- "Submitters">Submitters</a></h2>
-
- <p>See Submission Process for a
- description of the steps a library developer goes through to get a library
- accepted by Boost.</p>
-
- <p>A proposed library should remain stable during the review period; it
- will just confuse and irritate reviewers if there are numerous
- changes. It is, however, useful to upload fixes for serious bugs
- right away, particularly those which prevent reviewers from fully
- evaluating the library. Post a notice of such fixes on the mailing
- list.</p>
-
- <p>Library improvements suggested by reviewers should normally be held
- until after the completion of review period. If the suggested changes
- might affect reviewer's judgments, post a notice of the pending change
- on the mailing list.</p>
-
- <h2>Review <a name="Wizard" id="Wizard">Wizard</a></h2>
-
- <p>The Review Wizard coordinates the formal review schedule:</p>
-
- <ul>
- <li>Maintains a list of review manager volunteers, in the form of a
- queue, so that volunteers who least recently managed reviews become the
- prime candidates for upcoming reviews.</li>
-
- <li>When a formal review is requested for a library:</li>
-
- <li style="list-style: none">
-
- <ul>
- <li>Assign a review manager and suggests a schedule, after checking
- (via private email) availability of the volunteers at the top of
- review manager queue.</li>
-
- <li>Finalize the schedule, once the review manager verifies the
- library is actually ready for review.</li>
-
- <li>Resolve schedule slips or other issues with review managers and
- submitters.</li>
- </ul>
- </li>
-
- <li>Monitors the general review process, and makes minor adjustments as
- needed, or queries the list about possible major adjustments.</li>
- </ul>
- The role of Boost Review Wizard is currently played by John
- Phillips (phillips at mps dot ohio-state dot edu) and Ronald
- Garcia (garcia at cs dot indiana dot edu).
-
- <li>Resolves questions from review managers and library submitters, who
- sometimes want a third opinion on questions such as "Should we extend the
- review period because ...?"</li>
-
- <li>Monitors the general review process, and makes minor adjustments as
- needed, or queries the list about possible major adjustments.</li>
- </ul>The role of Boost Review Wizard is currently played by <a href=
- "mailto:reportbase_at_[hidden]">Tom Brinkman</a> and Ronald Garcia (garcia at
- cs dot indiana dot edu).
-
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->10 October, 2006<!--webbot bot="Timestamp" endspan i-checksum="38930" --></p>
-
- <p>To qualify for fast track review:</p>
-
- <ul>
- <li>The component must be small.</li>
-
- <li>The technique must be already in use in Boost libraries and the new
- component provides a common implementation.</li>
-
- <li>A full Boost-conformant implementation is available in the
- sandbox.</li>
-
- <li>The Review Wizard determines that the proposal qualifies for fast
- track review.</li>
- </ul>
-
- <p>Procedure:</p>
-
- <ul>
- <li>The Boost Review Wizard posts a review announcement to the main Boost
- developer's list. The review period will normally last for 5 days. No two
- fast track reviews will run in parallel. Fast track reviews may run
- during full reviews, though generally this is to be avoided.</li>
-
- <li>After the review period ends, the submitter will post a review
- summary containing proposed changes to the reviewed implementation.</li>
-
- <li>The Review Wizard will accept or reject the proposed library and
- proposed changes.</li>
-
- <li>After applying the proposed changes, the component is checked into
- CVS like any other library.<br>
- </li>
- </ul>
- <hr>
-
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->15
- October, 2003<!--webbot bot="Timestamp" endspan i-checksum="38556" --></p>
-
- <p>© Copyright Beman Dawes 2000</p>
-
- <p>Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or copy
- at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)</p>
-</body>
-</html>
Deleted: branches/proto/v3/more/formal_review_schedule.html
==============================================================================
--- branches/proto/v3/more/formal_review_schedule.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,916 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-<title>Formal Review Schedule</title>
-</head>
-
-<body>
-
-<table border="1" bgcolor="#007F7F" cellpadding="2" summary="Links">
- <tr>
- <td bgcolor="#FFFFFF">
- <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home</td>
- <td><a href="../libs/libraries.htm"><font face="Arial" color="#FFFFFF"><big>
- Libraries</big></font></a></td>
- <td><a href="../people/people.htm"><font face="Arial" color="#FFFFFF"><big>
- People</big></font></a></td>
- <td>FAQ</td>
- <td>More</td>
- </tr>
-</table>
-<h1>Formal Review Schedule</h1>
-<p>Reviews are usually scheduled on a first-come-first-served basis, and
-normally last ten days. See <a href="formal_review_process.htm">Formal
-Review Process</a> for more information.</p>
-<p>In addition to
-upcoming reviews, the schedule includes recent reviews already completed; that helps
-track review manager assignments and libraries reviewed but not yet posted on
-the web site. There is often a lag between acceptance and site posting as
-authors address issues raised in the formal review.</p>
-<h2><a name="Schedule">Schedule</a></h2>
-
-<table border="1" cellpadding="5" cellspacing="0" summary="Review Queue">
- <tr>
- <td valign="top"><b>Submission</b></td>
- <td valign="top"><b>Submitter</b></td>
- <td valign="top"><b>Link</b></td>
- <td valign="top"><b>Review<br>
- Manager</b></td>
- <td valign="top"><b>Review<br>
- Dates</b></td>
- </tr>
-
- <tr>
- <td>Finite State Machines</td>
- <td>Andrey Semashev</td>
- <td><a href="http://tinyurl.com/yjozfn">
- Boost Sandbox Vault</a></td>
- <td>Martin Vuille</td>
- <td>-</td>
- </tr>
-
- <tr>
- <td>Floating Point Utilities</td>
- <td>Johan Råde</td>
- <td><a href="http://boost-consulting.com/vault/index.php?directory=Math%20-%20Numerics">
- Boost Sandbox Vault</a></td>
- <td>Needed</td>
- <td>-</td>
- </tr>
-
- <tr>
- <td>Switch</td>
- <td>Steven Watanabe</td>
- <td><a href="http://boost-consulting.com/vault/index.php?action=downloadfile&filename=mcs_units_v0.7.1.zip&directory=Units">
- Boost Sandbox Vault</a> </td>
- <td>Stejpan Rajko</td>
- <td>January 5, 2008 - January 9, 2008</td>
- </tr>
-
- <tr>
- <td>Property Map (fast-track)</td>
- <td>Andrew Sutton</td>
- <td><a href="http://svn.boost.org/svn/boost/sandbox/graph-v2">
- Boost Sandbox</a></td>
- <td>Jeremy Siek</td>
- <td>-</td>
- </tr>
-
- <tr>
- <td>Graph (fast-track)</td>
- <td>Andrew Sutton</td>
- <td><a href="http://svn.boost.org/svn/boost/sandbox/graph-v2">
- Boost Sandbox</a></td>
- <td>Jeremy Siek</td>
- <td>-</td>
- </tr>
-
- <tr>
- <td>Forward (fast-track)</td>
- <td>Tobias Schwinger</td>
- <td><a href="http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files">
- Boost Sandbox Vault</a></td>
- <td>John Torjo</td>
- <td>January 14, 2008 - January 18, 2008</td>
- </tr>
-
- <tr>
- <td>Singleton (fast-track)</td>
- <td>Tobias Schwinger</td>
- <td><a href="http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files">
- Boost Sandbox Vault</a></td>
- <td>John Torjo</td>
- <td>December 3, 2007 - December 7, 2007</td>
- </tr>
-
- <tr>
- <td>Factory (fast-track)</td>
- <td>Tobias Schwinger</td>
- <td><a href="http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=X-Files">
- Boost Sandbox Vault</a></td>
- <td>John Torjo</td>
- <td>December 17, 2007 - December 21, 2007</td>
- </tr>
-
- <tr>
- <td>Lexer</td>
- <td>Ben Hanson</td>
- <td><a href="http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost.lexer.zip&directory=Strings%20-%20Text%20Processing&">
- Boost Sandbox Vault</a></td>
- <td>Hartmut Kaiser</td>
- <td>-</td>
- </tr>
-
- <tr>
- <td>Thread-Safe Signals</td>
- <td>Frank Hess</td>
- <td><a href="http://www.boost-consulting.com/vault/index.php?&direction=0&order=&directory=thread_safe_signals">
- Boost Sandbox Vault</a></td>
- <td>Needed</td>
- <td>-</td>
- </tr>
-
- <tr>
- <td>Logging</td>
- <td>John Torjo</td>
- <td>http://torjo.com/log2/</td>
- <td>Gennadiy Rozental</td>
- <td>February 4, 2008 - February 13, 2008</td>
- </tr>
-
- <tr>
- <td>Flyweight</td>
- <td>Joaquín Mª López Muñoz</td>
- <td><a href="http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=flyweight.zip&directory=Patterns">
- Boost Sandbox Vault</a></td>
- <td>Ion Gaztañaga</td>
- <td>January 21, 2008 - January 30, 2008</td>
- </tr>
-
- <tr>
- <td>Unordered Containers</td>
- <td>Daniel James</td>
- <td>Boost Sandbox Vault</td>
- <td>Ion Gaztañaga</td>
- <td>December 7, 2007 - December 16, 2007</td>
- </tr>
-
- <tr>
- <td>Boost.Range (Update)</td>
- <td>Neil Groves</td>
- <td><a
- href="http://www.boost-consulting.com/vault/index.php?action=downloadfile&filename=range_ex.zip&directory=">
- Boost Sandbox Vault</a></td>
- <td>Needed</td>
- <td>-</td>
- </tr>
-
-<!--
- <tr>
- <td></td> Library Name
- <td></td> Library Author
- <td></td> URL
- <td></td> Review Manager (or "NEEDED")
- <td>-</td> Review Dates (or "-")
- </tr>
--->
-
-</table>
-
-<h2>Past Review Results and Milestones</h2>
-<table border="1" cellpadding="5" cellspacing="0"summary="Review Results">
- <tr>
- <td valign="top"><b>Submission</b></td>
- <td valign="top"><b>Submitter</b></td>
- <td valign="top"><b>Review<br>
- Manager</b></td>
- <td valign="top"><b>Review<br>
- Dates</b></td>
- <td valign="top"><b>Result</b></td>
- </tr>
-
- <tr>
- <td>Review Wizard Status Report</td>
- <td></td>
- <td>Ronald Garcia</td>
- <td>2007 November 16</td>
- <td>Report</td>
- </tr>
-
- <tr>
- <td>Exception</td>
- <td>Emil Dotchevski</td>
- <td>Tobias Schwinger</td>
- <td>September 27, 2007 - October 7, 2007</td>
- <td><a href="http://lists.boost.org/boost-users/2007/11/31912.php">
- Accepted</a></td>
- </tr>
-
- <tr>
- <td>Review Wizard Status Report</td>
- <td></td>
- <td>Ronald Garcia</td>
- <td>2007 September 14</td>
- <td>Report</td>
- </tr>
-
- <tr>
- <td>Scope Exit</td>
- <td>Alexander Nasonov</td>
- <td>Jody Hagins</td>
- <td>August 13, 2007 - August 22, 2007-</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/08/0139.php">
- Pending</a></td>
- </tr>
-
- <tr>
- <td>Time Series</td>
- <td>Eric Niebler</td>
- <td>John R. Phillips</td>
- <td>July 30, 2007 - August 13, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/08/0142.php">
- Accepted</a></td>
- </tr>
-
- <tr>
- <td>Boost 1.34.1 Released</td>
- <td></td>
- <td>Thomas Witt</td>
- <td>July 24, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/07/0135.php">
- Notes</a></td>
- </tr>
-
- <tr>
- <td>Boost 1.34.0 Released</td>
- <td></td>
- <td>Thomas Witt</td>
- <td>May 12, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/05/0131.php">
- Notes</a></td>
- </tr>
-
- <tr>
- <td>Globally Unique Identifier</td>
- <td>Andy Tompkins</td>
- <td>Hartmut Kaiser</td>
- <td>April 30, 2007 - May 10, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/05/0134.php">
- Accepted Provisionally</a></td>
- </tr>
-
- <tr>
- <td>Math Toolkit</td>
- <td>John Maddock</td>
- <td>Matthias Schabel</td>
- <td>April 11, 2007 - April 27, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/05/0129.php">
- Accepted -- Added to SVN</a></td>
- </tr>
-
-
- <tr>
- <td>Quantitative Units</td>
- <td>Matthias Schabel</td>
- <td>John R. Phillips</td>
- <td>March 26, 2007 - April 4, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/04/0126.php">
- Accepted</a></td>
- </tr>
-
- <tr>
- <td>Intrusive Containers</td>
- <td>Ion Gaztañaga</td>
- <td>Joaquín Mª López Muñoz</td>
- <td>March 12, 2007 - March 21, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/04/0122.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
-
- <tr>
- <td>Bimap</td>
- <td>Matias Capeletto</td>
- <td>Ion Gaztañaga</td>
- <td>February 15 2007- March 2, 2007</td>
- <td><a href="http://lists.boost.org/Archives/boost/2007/03/117351.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Accumulators</td>
- <td>Eric Niebler</td>
- <td>John R. Phillips</td>
- <td>January 29, 2007 - February 7, 2007</td>
- <td><a href="http://lists.boost.org/boost-announce/2007/02/0114.php">
- Accepted</a></td>
- </tr>
-
-
- <tr>
- <td>Function Types (Re-review)</td>
- <td>Tobias Schwinger</td>
- <td>Tom Brinkman</td>
- <td>2006 November 6 - 2006 November 17</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/11/0106.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Generic Image Library</td>
- <td>Lubomir Bourdev</td>
- <td>Tom Brinkman</td>
- <td>2006 October 5 - 2006 October 25</td>
- <td><a href="http://lists.boost.org/Archives/boost/2006/11/112896.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Message Passing</td>
- <td>Doug Gregor</td>
- <td>Jeremy Siek</td>
- <td>2006 September 6 - 2006 September 15</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/09/0099.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Physical Quantities System</td>
- <td>Andy Little</td>
- <td>Fred Bertsch</td>
- <td>2006 May 31 - 2006 June 9</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/06/0096.php">
- Rejected</a></td>
- </tr>
-
- <tr>
- <td>Pimpl Pointer</td>
- <td>Asger Mangaard</td>
- <td>Rene Rivera</td>
- <td>2006 May 15 - 2006 May 24</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/10/0104.php">
- Rejected</a></td>
- </tr>
-
- <tr>
- <td>Fusion</td>
- <td>Joel de Guzman</td>
- <td>Ronald Garcia</td>
- <td>2006 May 1 - 2006 May 10</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/06/0094.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Property Tree</td>
- <td>Marcin Kalicinski</td>
- <td>Thorsten Ottosen</td>
- <td>2006 April 18 - 2006 April 30</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/05/0092.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Promotion Traits (fast-track)</td>
- <td>Alexander Nasonov</td>
- <td>Tobias Schwinger</td>
- <td>2006 April 1 - 2006 April 9</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/04/0086.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Review Wizard Status Report</td>
- <td></td>
- <td>Tom Brinkman</td>
- <td>2006 March 30</td>
- <td>Report</td>
- </tr>
-
- <tr>
- <td>Shmem (now Interprocess)</td>
- <td>Ion Gaztañaga</td>
- <td>Fred Bertsch</td>
- <td>2006 February 6 - 2006 February 15</td>
- <td><a
- href="http://lists.boost.org/boost-announce/2006/02/0083.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Fixed Strings</td>
- <td>Reece Dunn</td>
- <td>Harmut Kaiser</td>
- <td>2006 January 19 - 2006 February 5</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/02/0081.php">
- Rejected</a></td>
- </tr>
-
- <tr>
- <td>Review Wizard Status Report</td>
- <td></td>
- <td>Ronald Garcia</td>
- <td>2006 January 19</td>
- <td>Report</td>
- </tr>
-
- <tr>
- <td>asio</td>
- <td>Christopher Kohlhoff</td>
- <td>Jeff Garland</td>
- <td>2005 December 10 - <br>2005 December 30</td>
- <td><a href="http://lists.boost.org/Archives/boost/2006/03/102287.php">
- Accepted -- Added to CVS</a></td>
- </tr>
-
- <tr>
- <td>Boost 1.33.1 Released</td>
- <td></td>
- <td>Doug Gregor</td>
- <td>2005 December 5</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/12/0077.php">
- Notes</a></td>
- </tr>
-
- <tr>
- <td>Review Wizard Status Report</td>
- <td></td>
- <td>Ronald Garcia</td>
- <td>2005 December 1</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/12/0076.php">
- Report</a></td>
- </tr>
-
- <tr>
- <td>Logging Library</td>
- <td>John Torjo</td>
- <td>Hartmut Kaiser</td>
- <td>2005 November 7 - 2005 November 16th</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/11/0075.php">
- Rejected</a></td>
- </tr>
-
- <tr>
- <td>Boost 1.33.1 Beta Released</td>
- <td></td>
- <td>Doug Gregor</td>
- <td>2005 November 9</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/11/0073.php">
- Notes</a></td>
- </tr>
-
- <tr>
- <td>binary_int</td>
- <td>Scott Schurr and Matt Calabrese</td>
- <td>Pavel Vozenilek</td>
- <td>2005 October 13 - 2005 October 20</td>
- <td><a href="http://lists.boost.org/boost-announce/2006/01/0078.php">
- Accepted -- not yet added.</a></td>
- </tr>
-
- <tr>
- <td>TR1</td>
- <td>John Maddock</td>
- <td>Beman Dawes</td>
- <td>2005 September 24 - 2005 October 5</td>
- <td>Accepted -- Added in 1.34</td>
- </tr>
-
- <tr>
- <td>Xpressive</td>
- <td>Eric Niebler</td>
- <td>Thomas Witt</td>
- <td> 2005 September 8 - 2005 September 18</td>
- <td>Accepted -- Added in 1.34</td>
- </tr>
-
- <tr>
- <td>Boost 1.33.0 Released</td>
- <td></td>
- <td>Doug Gregor</td>
- <td>17 August 2005</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/08/0067.php">
- Notes</a></td>
- </tr>
-
- <tr>
- <td>Function Types</td>
- <td>Tobias Schwinger</td>
- <td>John Maddock</td>
- <td>2005-Jun-6 to 2005-June-16</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/06/0066.php">
- Accepted Provisionally</a></td>
- </tr>
-
- <tr>
- <td>Typeof</td>
- <td>Arkadiy Vertleyb and Peder Holt</td>
- <td>Andy Little</td>
- <td>2005 May 20 - 2005 May 30</td>
- <td>Accepted -- Added in 1.34</td>
- </tr>
-
- <tr>
- <td>Singleton</td>
- <td>Jason Hise</td>
- <td>Pavel Vozenilek</td>
- <td>2005 May 5 - 2005 May 15</td>
- <td><a href="http://lists.boost.org/boost-announce/2005/05/0062.php">
- Rejected</a></td>
- </tr>
-
- <tr>
- <td>FOREACH Macro</td>
- <td>Eric Niebler</td>
- <td>Gennadiy Rozental</td>
- <td>2005 April 25 - 2005 May 1</td>
- <td>Accepted -- Added in 1.34</td>
- </tr>
-
- <tr>
- <td>Hash</td>
- <td>Daniel James</td>
- <td>Thorsten Ottosen</td>
- <td>2005 Mar 21 - 2005 March 12</td>
- <td>Accepted -- Added in 1.33</td>
- </tr>
-
- <tr>
- <td>State Chart</td>
- <td>Andreas Huber</td>
- <td>Pavel Vozenilek</td>
- <td>2005 Feb 23 - 2005 March 9</td>
- <td>Accepted -- Added in 1.34</td>
- </tr>
- <tr>
- <td>Wave</td>
- <td>Hartmut Kaiser</td>
- <td>Tom Brinkman</td>
- <td>2005 Feb 7 - 2005 Feb 20</td>
- <td>Accepted -- Added in 1.33</td>
- </tr>
- <tr>
- <td>Pointer Containers</td>
- <td>Thorsten Ottosen</td>
- <td>Pavol Droba</td>
- <td>2004 Sept 26 - Oct 5</td>
- <td>Accepted -- Added in 1.33</td>
- </tr>
- <tr>
- <td>Named Params</td>
- <td>David Abrahams & Daniel Wallin</td>
- <td>Doug Gregor</td>
- <td>2004 Nov 1 - 2004 Nov 20</td>
- <td>Accepted -- Added in 1.33</td>
- </tr>
- <tr>
- <td>Output Formatters</td>
- <td>Reece Dunn</td>
- <td>John Torjo</td>
- <td>2004 Sept 11 - Sept 25</td>
- <td><a href="http://lists.boost.org/Archives/boost/2004/10/74535.php">
- Rejected</a></td>
- </tr>
- <tr>
- <td>Iostreams</td>
- <td>Jonathan Turkanis</td>
- <td>Jeff Garland</td>
- <td>2004 Aug 28 - Sep 11</td>
- <td>Accepted -- Added in 1.33</td>
- </tr>
- <tr>
- <td>More IO</td>
- <td>Daryle Walker</td>
- <td>Tom Brinkman</td>
- <td>2004 Aug 21 - 28</td>
- <td>Rejected</td>
- </tr>
- <tr>
- <td>Tribool</td>
- <td>Douglas Gregor</td>
- <td>Thomas Witt</td>
- <td>2004 May 19-29</td>
- <td>Accepted -- Added in 1.32</td>
- </tr>
- <tr>
- <td>Assignment</td>
- <td>Thorsten Ottosen</td>
- <td>Tom Brinkman</td>
- <td>2004 Apr 1 - 11</td>
- <td>Accepted -- Added in 1.32</td>
- </tr>
- <tr>
- <td>Serialization (re-review)</td>
- <td>Robert Ramey</td>
- <td>Jeff Garland</td>
- <td>2004 Apr 13 - 26</td>
- <td>Accepted -- Added in 1.32</td>
- </tr>
- <tr>
- <td>Container Traits (now Range)</td>
- <td>Thorsten Ottosen</td>
- <td>Hartmut Kaiser</td>
- <td>2004 Apr 28 - May 7</td>
- <td>Accepted -- Added in 1.32</td>
- </tr>
- <tr>
- <td>Indexed Set (now MultiIndex)</td>
- <td>Joaquín Mª López Muñoz</td>
- <td>Pavel Vozenilek</td>
- <td>2004 Mar 20 - 30</td>
- <td><a href="http://lists.boost.org/Archives/boost/2004/04/63582.php">
- Accepted -- Added in 1.32</a></td>
- </tr>
- <tr>
- <td>Circular Buffer</td>
- <td>Jan Gaspar</td>
- <td>Pavel Vozenilek</td>
- <td>2004 Mar 5 - 15</td>
- <td>Accepted -- Added to CVS</td>
- </tr>
- <tr>
- <td>enable_if</td>
- <td>Jaakko Järvi & Jeremiah Willcock & Andrew Lumsdaine</td>
- <td>(fasttrack)</td>
- <td>Dec 2003</td>
- <td>Accepted -- added in 1.31</td>
- </tr>
- <tr>
- <td>FC++</td>
- <td>Brian McNamara & Yannis Smaragdakis</td>
- <td>Mat Marcus</td>
- <td>2004 Feb 14 - Mar 1</td>
- <td>Rejected</td>
- </tr>
- <tr>
- <td>Numeric Conversions Library</td>
- <td>Fernando Cacciola</td>
- <td>Thorsten Ottosen</td>
- <td>8 - 22 Dec 2003</td>
- <td>Accepted -- added in 1.32</td>
- </tr>
- <tr>
- <td>String Algorithm Library</td>
- <td>Pavol Droba</td>
- <td>Thorsten Ottosen</td>
- <td>17 - 30 Oct 2003</td>
- <td>Accepted -- added in 1.32</td>
- </tr>
- <tr>
- <td>Shifted Pointer</td>
- <td>Philippe A. Bouchard</td>
- <td>Doug Gregor</td>
- <td>24 - 30 Sep 2003</td>
- <td>Rejected</td>
- </tr>
- <tr>
- <td>Fixed-Point Decimal</td>
- <td>Bill Seymour</td>
- <td>Jens Maurer</td>
- <td>11 - 21 Jul 2003</td>
- <td>Rejected</td>
- </tr>
- <tr>
- <td>Math Constants</td>
- <td>Paul A. Bristow</td>
- <td>Jaap Suter</td>
- <td>06 - 15 Jun 2003</td>
- <td>Rejected</td>
- </tr>
- <tr>
- <td>Command Line & Config</td>
- <td>Vladimir Prus</td>
- <td>Aleksey Gurtovoy</td>
- <td>21 May - 03 Jun 2003</td>
- <td>Accepted -- added in 1.32</td>
- </tr>
- <tr>
- <td>I/O Manipulators and Adaptors</td>
- <td>Daryle Walker</td>
- <td>Ed Brey</td>
- <td>27 Feb - 11 Mar 2003</td>
- <td>-</td>
- </tr>
- <tr>
- <td>Variant</td>
- <td>Eric Friedman & Itay Maman</td>
- <td>Jeff Garland</td>
- <td>16 - 25 Feb 2003</td>
- <td>Accepted -- added in 1.31</td>
- </tr>
- <tr>
- <td>Optional</td>
- <td>Fernando Cacciola</td>
- <td>Douglas Gregor</td>
- <td>09 - 18 Dec 2002</td>
- <td>Accepted -- added in 1.30</td>
- </tr>
- <tr>
- <td>Serialization</td>
- <td>Robert Ramey</td>
- <td>Dave Abrahams</td>
- <td>02 - 11 Nov 2002</td>
- <td>Rejected</td>
- </tr>
- <tr>
- <td>Spirit</td>
- <td>Joel de Guzman</td>
- <td>John Maddock</td>
- <td>11 - 20 Oct 2002</td>
- <td>Accepted -- added in 1.30</td>
- </tr>
- <tr>
- <td>Minmax</td>
- <td>Hervé Bronnimann</td>
- <td>Thomas Witt</td>
- <td>28 Sep - 07 Oct 2002</td>
- <td>Accepted -- added in 1.32</td>
- </tr>
- <tr>
- <td>Filesystem</td>
- <td>Beman Dawes</td>
- <td>William Kempf</td>
- <td>14 - 23 Sep 2002</td>
- <td>Accepted -- added in 1.30</td>
- </tr>
- <tr>
- <td>Interval Arithmetic Library</td>
- <td>Hervé Bronnimann & Guillaume Melquiond & Sylvain Pion</td>
- <td>Beman Dawes</td>
- <td>31 Aug - 09 Sep 2002</td>
- <td>Accepted -- added in 1.30</td>
- </tr>
- <tr>
- <td>Template Meta Programming Library MPL</td>
- <td>Aleksey Gurtovoy</td>
- <td>Douglas Gregor</td>
- <td>15 - 29 Jul 2002</td>
- <td>Accepted -- added in 1.30</td>
- </tr>
- <tr>
- <td>uBLAS</td>
- <td>Joerg Walter & Mathias Koch</td>
- <td>Ed Brey</td>
- <td>21 Jun - 01 Jul 2002</td>
- <td>Accepted -- added in 1.29</td>
- </tr>
- <tr>
- <td>Dynamic Bitset</td>
- <td>Chuck Alison & Jeremy Siek</td>
- <td>Mat Marcus</td>
- <td>08 - 17 Jun 2002</td>
- <td>Accepted -- added in 1.29</td>
- </tr>
- <tr>
- <td>Date / Time</td>
- <td>Jeff Garland</td>
- <td>Darin Adler</td>
- <td>15 - 24 Apr 2002</td>
- <td>Accepted -- added in 1.29</td>
- </tr>
- <tr>
- <td>Lambda</td>
- <td>Jaakko Järvi & Gary Powell</td>
- <td>Aleksey Gurtovoy</td>
- <td>08 - 20 Mar 2002</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Signals</td>
- <td>Douglas Gregor</td>
- <td>William Kempf</td>
- <td>18 - 27 Feb 2002</td>
- <td>Accepted -- added in 1.29</td>
- </tr>
- <tr>
- <td>I/O State Saver</td>
- <td>Daryle Walker</td>
- <td>Beman Dawes</td>
- <td>06 - 16 Feb 2002</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>printf-like formatting for iostreams</td>
- <td>Samuel Krempp</td>
- <td>Jens Maurer</td>
- <td>13 - 23 Jan 2002</td>
- <td>Accepted -- added in 1.29</td>
- </tr>
- <tr>
- <td>Multi-array</td>
- <td>Ron Garcia</td>
- <td>John Maddock</td>
- <td>02 - 12 Jan 2002</td>
- <td>Accepted -- added in 1.29</td>
- </tr>
- <tr>
- <td>Unit Test Library</td>
- <td>Gennadiy Rozental</td>
- <td>Jeremy Siek</td>
- <td>01 - 13 Dec 2001</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>GCD Library plus integer additions</td>
- <td>Daryle Walker</td>
- <td>Dave Abrahams</td>
- <td>17 - 26 Sep 2001</td>
- <td>-</td>
- </tr>
- <tr>
- <td>Thread Library</td>
- <td>Bill Kempf</td>
- <td>Ed Brey</td>
- <td>Aug 30 - Sep 8</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Config System</td>
- <td>John Maddock</td>
- <td>Doug Gregor</td>
- <td>Aug 20 - 29 </td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Bind Library</td>
- <td>Peter Dimov</td>
- <td>Darin Adler</td>
- <td>Aug 10 - 19</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Base from Member Library</td>
- <td>Daryle Walker</td>
- <td>Beman Dawes</td>
- <td>Jul 30 - Aug 9</td>
- <td>-</td>
- </tr>
- <tr>
- <td>Coding Guidelines</td>
- <td>Dave Abrahams</td>
- <td>Aleksey Gurtovoy</td>
- <td>Jul 20 - 29</td>
- <td>-</td>
- </tr>
- <tr>
- <td>Preprocessor Library</td>
- <td>Vesa Karvonen</td>
- <td>Jeremy Siek</td>
- <td>Jun 28 - Jul 9</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Tuples Library</td>
- <td>Jaakko Järvi</td>
- <td>Beman Dawes</td>
- <td>Jun 17 - 26</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Function Library</td>
- <td>Doug Gregor</td>
- <td>John Maddock</td>
- <td>Jun 6 - 16</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Tokenizer</td>
- <td>John Bandela</td>
- <td>Doug Gregor</td>
- <td>May 28 - Jun 6</td>
- <td>Accepted and added</td>
- </tr>
- <tr>
- <td>Special Functions</td>
- <td>Hubert Holin</td>
- <td>Jens Maurer</td>
- <td>May 18 - 27</td>
- <td>Accepted and added</td>
- </tr>
-</table>
-<h2>Review <a name="Managers">Managers</a></h2>
-<p>We try to rotate the task of Review Manager between many experienced Boost
-members, both to ensure fairness, and to spread the workload. If you would
-like to volunteer to become a review manager, please contact
-John Phillips (phillips at mps dot ohio-state dot edu) or Ronald
- Garcia (garcia at cs dot indiana dot edu).
-</p>
-<hr>
-<p>Revised
-<!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->15 Apr 2005<!--webbot bot="Timestamp" endspan i-checksum="15045" -->
-</p>
-<p>Copyright Beman Dawes, Tom Brinkman, Jeff Garland 2001 - 2005</p>
-<p>Distributed under the Boost Software License, Version 1.0. (See
-accompanying file LICENSE_1_0.txt or copy
-at <a href
-="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)</p>
-
-</body>
-
-</html>
-
Deleted: branches/proto/v3/more/google_logo_25wht.gif
==============================================================================
Binary file. No diff available.
Deleted: branches/proto/v3/more/links.htm
==============================================================================
--- branches/proto/v3/more/links.htm 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,74 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Links</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<table border="1" bgcolor="#007F7F" cellpadding="2">
- <tr>
- <td bgcolor="#FFFFFF"><img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home</td>
- <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
- <td>More</td>
- </tr>
-</table>
-
-
-<h1>Links</h1>
-<p>Here are a few links of special interest to Boost users. For general queries,
-try your favorite search engine.</p>
-<h2><a name="CommercialSupport">Commercial Support</a> for Boost Libraries</h2>
-<ul>
- <li>Boost Consulting - Support,
- training, and consulting from Boost experts.</li>
-</ul>
-<h2><a name="cpp">C++</a> Organizations</h2>
-<ul>
- <li>C++ Standards Committee -
- Issues lists and papers give insight into current status and future
- directions.</li>
- <li>Association of C & C++ Users - Over 2400
- book reviews, and lots more.</li>
-</ul>
-<h2>Online Publications</h2>
-<ul>
- <li>The C++ Source -
- <i>"The Premier Online Journal for the C++ Community"</i>.</li>
-</ul>
-<h2>Copies of the C++ Standard</h2>
-<ul>
- <li>
- <a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS%2FISO%2FIEC+14882%2D2003">
- ANSI Store</a> - The full C++ Standard including TC1 corrections (INCITS/ISO/IEC 14882) is available
- as a PDF document for $18 US. The document is certainly not a
- tutorial, but is interesting to those who care about the
- precise specification of both the language and the standard
- library.</li>
- <li>
- <a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470846747.html">
- Book</a> - The full C++ Standard including TC1 corrections is also available
- in book form, list price $65 US. Since the content of the book is the same as
- the much cheaper ANSI PDF, the book form is only of interest to those who
- prefer a physical book, say for a school or company library.</li>
-</ul>
-<hr>
-<p>Revised
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->02 October, 2004<!--webbot bot="Timestamp" endspan i-checksum="38677" --></p>
-<p>© Copyright Beman Dawes 2002</p>
-<p>Distributed under the Boost Software License, Version 1.0. (See accompanying
-file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-</p>
-
-</body>
-
-</html>
\ No newline at end of file
Deleted: branches/proto/v3/more/microsoft_vcpp.html
==============================================================================
--- branches/proto/v3/more/microsoft_vcpp.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,326 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html>
-<head>
- <meta http-equiv="Content-Language" content="en-us">
- <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
-
- <title>Portability Hints: Microsoft Visual C++ 6.0 SP4</title>
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
- <table border="1" bgcolor="#007F7F" cellpadding="2" summary="">
- <tr>
- <td bgcolor="#FFFFFF"><img src="../boost.png" alt=
- "boost.png (6897 bytes)" width="277" height="86"></td>
-
- <td><a href="../index.htm"><font face="Arial,Helvetica" color=
- "#FFFFFF"><big>Home</big></font></a></td>
-
- <td><a href="../libs/libraries.htm"><font face="Arial,Helvetica" color=
- "#FFFFFF"><big>Libraries</big></font></a></td>
-
- <td><a href="../people/people.htm"><font face="Arial,Helvetica" color=
- "#FFFFFF"><big>People</big></font></a></td>
-
- <td><a href="faq.htm"><font face="Arial,Helvetica" color=
- "#FFFFFF"><big>FAQ</big></font></a></td>
-
- <td><a href="index.htm"><font face="Arial,Helvetica" color=
- "#FFFFFF"><big>More</big></font></a></td>
- </tr>
- </table>
-
- <h1>Portability Hints: Microsoft Visual C++ 6.0 SP4</h1>
-
- <p>Similar to the <a href="borland_cpp.html">portability hints for Borland
- C++</a>, this page provides hints on some language features of the
- Microsoft Visual C++ version 6.0 service pack 4 compiler. A list of
- acknowledged deficiencies can be found at the <a href=
- "http://support.microsoft.com/support/kb/articles/q243/4/51.asp">Microsoft
- support site</a>.</p>
-
- <p>Each entry in the following list describes a particular issue, complete
- with sample source code to demonstrate the effect. Most sample code herein
- has been verified to compile with gcc 2.95.2 and Comeau C++ 4.2.44.</p>
-
- <h2>Preprocessor symbol</h2>
-
- <p>The preprocessor symbol <code>_MSC_VER</code> is defined for all
- Microsoft C++ compilers. Its value is the internal version number of the
- compiler interpreted as a decimal number. Since a few other compilers also
- define this symbol, boost provides the symbol <code>BOOST_MSVC</code>,
- which is defined in boost/config.hpp to
- the value of _MSC_VER if and only if the compiler is really Microsoft
- Visual C++. The following table lists some known values.</p>
-
- <table border="1" summary="">
- <tr>
- <th>Compiler</th>
-
- <th><code>BOOST_MSVC</code> value</th>
- </tr>
-
- <tr>
- <td>Microsoft Visual C++ 6.0 (up to SP6)</td>
-
- <td>1200</td>
- </tr>
-
- <tr>
- <td>Microsoft embedded Visual C++ 4.0</td>
-
- <td>1200-1202 (cross compilers)</td>
- </tr>
- </table>
-
- <h2>Core Language</h2>
-
- <h3>[chained using] Chaining <code>using</code>-declarations</h3>
-
- <p>Chaining <code>using</code>-declarations does not work.</p>
- <pre>
-void f();
-
-namespace N {
- using ::f;
-}
-
-void g()
-{
- using N::f; // C2873: 'f': the symbol cannot be used in a using-declaration
-}
-</pre>
-
- <h3>[explicit-instantiation] Explicit function template instantiation</h3>
-
- <p>Trying to explicitly instantiate a function template leads to the wrong
- function being called silently.</p>
- <pre>
-#include <stdio.h>
-
-template<class T>
-void f()
-{
- printf("%d\n", sizeof(T));
-}
-
-int main()
-{
- f<double>(); // output: "1"
- f<char>(); // output: "1"
- return 0;
-}
-</pre>
-
- <h3>[for-scoping] Scopes of definitions in for-loops</h3>
-
- <p>The scope of variable definitions in <code>for</code> loops should be
- local to the loop's body, but it is instead local to the enclosing
- block.</p>
- <pre>
-int main()
-{
- for(int i = 0; i < 5; ++i)
- ;
- for(int i = 0; i < 5; ++i) // C2374: 'i': Redefinition; multiple initialization
- ;
- return 0;
-}
-</pre>
-
- <p><strong>Workaround:</strong> Enclose the offending <code>for</code>
- loops in another pair of curly braces.</p>
-
- <p>Another possible workaround (brought to my attention by Vesa Karvonen)
- is this:</p>
- <pre>
-#ifndef for
-#define for if (0) {} else for
-#endif
-</pre>
-
- <p>Note that platform-specific inline functions in included headers might
- depend on the old-style <code>for</code> scoping.</p>
-
- <h3>[inclass-member-init] In-class member initialization</h3>
-
- <p>In-class member initialization, required to implement a
- Standard-conforming <code>std::numeric_limits</code> template, does not
- work.</p>
- <pre>
-struct A
-{
- static const int i = 5; // "invalid syntax for pure virtual method"
-};
-</pre>
-
- <p><strong>Workaround:</strong> Either use an enum (which has incorrect
- type, but can be used in compile-time constant expressions), or define the
- value out-of-line (which allows for the correct type, but prohibits using
- the constant in compile-time constant expressions). See <a href=
- "int_const_guidelines.htm">Coding Guidelines for Integral Constant
- Expressions</a> for guidelines how to define member constants portably in
- boost libraries.</p>
-
- <h3>[koenig-lookup] Argument-dependent lookup</h3>
-
- <p>Argument-dependent lookup, also called Koenig lookup, works for
- overloaded operators, but not for ordinary functions. No additional
- namespaces induced from the argument types seem to be considered.</p>
- <pre>
-namespace N {
- struct A {};
- void f(A);
-}
-
-void g()
-{
- N::A a;
- f(a); // 'f': undeclared identifier
-}
-</pre>
-
- <h3>[template-friend] Templates as friends</h3>
-
- <p>A Template cannot be declared a friend of a class.</p>
- <pre>
-template<class T>
-struct A {};
-
-struct B
-{
- template<class T>
- friend struct A; // "syntax error"
-};
-</pre>
-
- <h3>[member-template-outofline] Out-of-line definitions of member
- templates</h3>
-
- <p>Defining member templates outside their enclosing class does not
- work.</p>
- <pre>
-template<class T>
-struct A
-{
- template<class U>
- void f();
-};
-
-template<class T>
-template<class U> // "syntax error"
-void A<T>::f() // "T: undeclared identifier"
-{
-}
-</pre>
-
- <p><strong>Workaround:</strong> Define member templates in-line within
- their enclosing class.</p>
-
- <h3>[partial-spec] Partial specialization</h3>
-
- <p>Partial specialization of class templates does not work.</p>
- <pre>
-template<class T>
-struct A {};
-
-template<class T>
-struct B {};
-
-template<class T>
-struct A<B<T> > {}; // template class was already defined as a non-template
-</pre>
-
- <p><strong>Workaround:</strong> In some situations where interface does not
- matter, class member templates can simulate partial specialization.</p>
-
- <h3>[template-value] Dependent template value parameters</h3>
-
- <p>Template value parameters whose type depends on a previous template
- parameter provoke an internal compiler error if the correct syntax (with
- "typename") is used.</p>
- <pre>
-template<class T, typename T::result_type> // C1001: INTERNAL COMPILER ERROR: msc1.cpp, line 1794
-struct B {};
- // (omit "typename" and it compiles)
-
-</pre>
-
- <p><strong>Workaround:</strong> Leave off the "typename" keyword. That
- makes the program non-conforming, though.</p>
-
- <h3>[wchar_t] <code>wchar_t</code> is not built-in</h3>
-
- <p>The type <code>wchar_t</code> is not a built-in type.</p>
- <pre>
-wchar_t x; // "missing storage class or type identifier"
-</pre>
-
- <p><strong>Workaround:</strong> When using Microsoft Visual C++, the header
- boost/config.hpp includes
- <code><cstddef></code>, which defines <code>wchar_t</code> as a
- typedef for <code>unsigned short</code>. Note that this means that the
- compiler does not regard <code>wchar_t</code> and <code>unsigned
- short</code> as distinct types, as is required by the standard, and so
- ambiguities may emanate when overloading on <code>wchar_t</code>. The macro
- <code>BOOST_NO_INTRINSIC_WCHAR_T</code> is defined in this situation.</p>
-
- <h3>[delete-const-pointer] Deleting <code>const X *</code> does not
- work</h3>
-
- <p>Trying to delete a pointer to a cv-qualified type gives an error:</p>
- <pre>
-void f()
-{
- const int *p = new int(5);
- delete p; // C2664: cannot convert from "const int *" to "void *"
-}
-</pre>
-
- <p><strong>Workaround:</strong> Define the function</p>
- <pre>
-inline void operator delete(const void *p) throw()
-{ operator delete(const_cast<void*>(p)); }
-</pre>
-
- <p>and similar functions for the other cv-qualifier combinations, for
- operator delete[], and for the <code>std::nothrow</code> variants.</p>
-
- <h2>Standard Library</h2>
-
- <h3>[clib-namespace] C library names in global namespace instead of
- std</h3>
-
- <p>Library names from the <c...> headers are in the global namespace
- instead of namespace std.</p>
-
- <p><b>Workaround:</b> The header <a href=
- "../libs/config/config.htm">boost/config.hpp</a> will define
- BOOST_NO_STDC_NAMESPACE. It can be used as follows:</p>
- <pre>
-# ifdef BOOST_NO_STDC_NAMESPACE
- namespace std { using ::abs; using ::fabs; }
-# endif
-</pre>
-
- <p>Because std::size_t and std::ptrdiff_t are so commonly used, the
- workaround for these is already provided in boost/config.hpp.</p>
- <hr>
-
- <p><a href="http://validator.w3.org/check?uri=referer"><img border="0" src=
- "http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional"
- height="31" width="88"></a></p>
-
- <p>Revised
- <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %B, %Y" startspan -->04 December, 2006<!--webbot bot="Timestamp" endspan i-checksum="38514" --></p>
-
- <p><i>Copyright © 2001-2002 <a href="../people/jens_maurer.htm">Jens
- Maurer</a></i></p>
-
- <p><i>Distributed under the Boost Software License, Version 1.0. (See
- accompanying file LICENSE_1_0.txt or copy
- at <a href=
- "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>)</i></p>
-</body>
-</html>
Deleted: branches/proto/v3/more/proposal.pdf
==============================================================================
Binary file. No diff available.
Deleted: branches/proto/v3/more/regression.html
==============================================================================
--- branches/proto/v3/more/regression.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,18 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=../tools/regression/index.htm">
-</head>
-<body>
-Automatically loading index page... if nothing happens, please go to
-http://www.boost.org/tools/regression/index.htm.
-<hr>
-
-<p>© Copyright Douglas Gregor, 2005</p>
-
-<p>Distributed under the Boost Software License, Version 1.0. See
-www.boost.org/LICENSE_1_0.txt</p>
-
-<p> </p>
-<p> </p>
-</body>
-</html>
\ No newline at end of file
Deleted: branches/proto/v3/more/release_mgr_checklist.html
==============================================================================
--- branches/proto/v3/more/release_mgr_checklist.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,276 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Release Manager's Checklist</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<table border="1" bgcolor="#007F7F" cellpadding="2">
- <tr>
- <td bgcolor="#FFFFFF">
- <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home</td>
- <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
- <td>More</td>
- </tr>
-</table>
-
-
-<h1>Release Manager's Checklist</h1>
-
-<p>Introduction<br>
-Pre-release activities<br>
-CVS Branch for release<br>
-CVS Release<br>
-Distribution</p>
-
-<h2><a name="Introduction">Introduction</a></h2>
-<p>Historically, items on this checklist were accomplished by scripts written
-in Perl, Python, Bash, C++, and as Windows command files, or by point-and-click
-on a FrontPage or other GUI based program. Long term the plan is to move as much
-as possible of these to C++, as
-the one language all Boost developers are comfortable with. </p>
-<h2><a name="Pre-release">Pre-release</a> activities</h2>
-<ul>
- <li>After discussion on the main list, post the release schedule.<br>
- </li>
- <li>Verify the <i><b>root/index.htm</b></i>, <i><b>root/boost/version.hpp</b></i>, <i><b>root/Jamfile.v2</b></i> and
- <i><b>root/Jamrules</b></i>
- release numbers are correct and agree. <br>
- </li>
- <li>Verify via <a href="mailto:jamboost_at_[hidden]">jamboost_at_[hidden]</a>
- that bjam pre-built executables up-to-date.<br>
- </li>
- <li>Remove the oldest "Latest News" from root/index.htm.<br>
- </li>
- <li>For each new library added this release:</li>
-</ul>
-<blockquote>
- <ul>
- <li>Verify root/index.htm Latest News entry has been made and reads well.<br>
- </li>
- <li>Verify root/libs/libraries.htm entry has been made, both in the
- alphabetic list and in the category lists.<br>
- </li>
- <li>Verify the root/libs/xxx directory contains an index.htm or index.html
- file; either the main docs or a redirection to the main docs. <b><i>To do:
- automate this.</i></b><br>
- </li>
- <li>Skim read the primary docs pages to make sure they meet Boost
- requirements and guidelines. <b><i>Don't leave this until too late; it has
- turned up lots of issues in the past.<br>
- </i></b></li>
- <li>Generate the header dependency table and update the CVS.<b><i> To do:
- coordinate with John Maddock's new dependency tools.</i></b></li>
- </ul>
-</blockquote>
-<ul>
- <li>Monitor
- <a href="http://boost.sourceforge.net/regression-logs/inspection_report.html">
- http://boost.sourceforge.net/regression-logs/inspection_report.html> to
- verify problems are actively being reduced. Make sure none of the problems are
- in files the release manager is responsible for.<br>
- </li>
- <li>Monitor regression tests (http://boost.sourceforge.net/regression-logs)
- to verify that errors are actively being reduced or accounted for on key
- platforms and compilers.<br>
- <ul>
- <li>Boost errors are being actively worked on by library maintainers.</li>
- <li>Compiler or standard library errors are at least identified, and
- preferably reported to the supplier.</li>
- <li>No errors remain uninvestigated or unclassified.<br>
- </li>
- </ul>
- </li>
- <li>Monitor the developer and user mailing lists to verify that all posted
- patches are being applied, rejected, or otherwise dealt with.<br>
- </li>
- <li>Monitor the developer and user mailing lists, and the SourceForge bug
- tracker, to verify that all posted bug reports are being investigated, fixed,
- rejected, or otherwise dealt with.<br>
- </li>
- <li>Monitor CVS commits to verify that all the expected and/or promised
- content actually gets committed. Try to get developers to avoid last minute
- commits of major changes.</li>
-</ul>
-<h2><a name="Branch-for-release">CVS Branch for release</a></h2>
-<ul>
- <li>Pre-release activities complete enough to justify branch-for-release?<br>
- </li>
- <li>Everybody happy?<br>
- </li>
- <li>Branch for release:<ul>
- <li>Tag the main trunk <code>merged_to_RC_n_n_n</code>.</li>
- <li>Branch the main trunk with the tag <code>RC_n_n_n</code>.<br>
- </li>
-</ul>
- </li>
- <li>Post notice on main list. Remind developers that fixes which apply
- to both Main Trunk and Branch have to be committed separately to both.</li>
-</ul>
-<h2><a name="CVS-release">CVS Release</a></h2>
-<ul>
- <li>Pre-release activities all complete?<br>
- </li>
- <li>Post notice to make sure all developers ready.<br>
- </li>
- <li>Tag: WinCVS: Select site, then tag (Modify|Create tag..., toolbar T on doc). New
- tag name: Version_1_21_2 (or whatever). If prior release failed, select
- "overwrite existing tags with the same name".</li>
-</ul>
-<h2><a name="Distribution">Distribution</a></h2>
-<p>These procedures are given for a particular release manager's machine. The
-plan is to replace them with more generic procedures over time.</p>
-<ul>
- <li>Create folders for export:<br>
- <br>
- c:\boost\boost_1_28_0<br>
- c:\boost\temp\boost_1_28_0<br>
- <br>
- Note that several batch files assume these locations and naming schemes.<br>
- </li>
- <li>Export Win32 distribution: WinCVS | Remote | Checkout Module<br>
- <br>
- Checkout settings: module name and path on the server: boost, local folder to
- checkout to: c:\boost\boost_1_28_0<br>
- <b><i>[for 1.29.0 export, put everything in a boost_1_29_0/boost subdirectory.
- Experiments with 1.30.0 tried boost/boost as the path on server, but that just
- resulted in getting the boost header subdirectory only.]</i></b><br>
- <br>
- Checkout options: (check) By revision/tab/branch: Version_1_28_0, (check) Do
- not create CVS directories (export)<br>
- <br>
- This results in the follow command: cvs -z9 export -r Version_1_28_0 boost (in
- directory C:\boost\boost_1_28_0)<br>
- <br>
- (takes about ten minutes)<br>
- <br>
- (rename boost-root if needed !!!!!!!!!!!!!!!!!!!)<br>
- </li>
- <li>Export Unix distribution: similar to above, except target is c:\boost\temp\boost_1_28_0
- and set global for UNIX nl.<br>
- </li>
- <li>!!!!!! VERY IMPORTANT: WinCVS | Set Preferences | Global back to non-UNIX nl.
- !!!!!!!!!!!!!!!<br>
- </li>
- <li>Add regression results web pages into package (new in 1.33 so this is just a shot at the process - jeff)<br>
- download all the regression results from website (may need meta-comm help on this)<br>
- unpack the regression results into tools/regression/latest_release<br>
- <br>
-
- </li>
- <li>General ZIP and TAR.GZ files<br>
- <br>
- n_n_n is 1_28_0 or whatever<br>
- <br>
- cd \boost<br>
- boost_zip 1_21_2 (creates zip.log) <br>
- boost_tar_gz 1_21_2<br>
- bash<br>
-
- gunzip -c boost_1_21_2.tar.gz | bzip2 > boost_1_21_2.tar.bz2<br>
- exit<br>
- </li>
- <li>Upload and unpack the .zip release candidate to a SourceForge web services
- sub-directory. Post a message to the main list asking developers to check
- contents. (Daniel Frey has volunteered to help check).<br>
- </li>
- <li>Upload files for SourceForge release incoming directory using <b>WS_FTP Pro</b><ul>
- <li>Start keep_isdn_awake</li>
- <li>Connection: SourceForge Release Upload | connect</li>
- <li>Select Local system: c:\boost</li>
- <li>Select Remote system: /incoming</li>
- <li>Drag-and-drop the three release files from Local system to Remote system</li>
- <li>Disconnect</li>
- <li>Stop keep_isdn_awake<br>
- </li>
-</ul>
- </li>
- <li>Complete the SourceForge
- <a href="http://sourceforge.net/docman/display_doc.php?docid=6445&group_id=1#createrelease">
- release procedure</a>.<ul>
- <li>Admin | File Releases | Add Release for package name boost</li>
- <li>New release name: 1.21.2 | create this release</li>
- <li>Step 1: paste in release notes (in HTML). <b>Be sure to note difference
- between .zip and .gz/bz2 files.</b> Submit/Refresh</li>
- <li>Step 2: Check appropriate files. Add Files and/or Refresh View</li>
- <li>Step 3: For each file, select Processor and File Type, Update/Refresh</li>
- <li>Setp 4: Email Release Notice: I'm sure. Send Notice.</li>
- <li>Wait up to 30 minutes.</li>
- <li>Check SourceForge release page and release notes with web browser.<br>
- </li>
-</ul>
- </li>
- <li><i><b>Consider putting up a temporary "Update in progress" root/index.html
- during site update<br>
- </b></i></li>
- <li>Update the web site:<pre>cd ...\boost_1_28_0
-tar -cf site.tar *
-bzip2 -k site.tar
-
-dir site.tar.bz2
-pscp site.tar.bz2 beman_dawes_at_[hidden]:/home/groups/b/bo/boost/htdocs/
-
-keep_idsn_awake in another window.
-
-c:\bgd\util\putty\plink.exe beman_dawes_at_[hidden]
-cd /home/groups/b/bo/boost/htdocs
-pwd
-ls -l site.tar.bz2
-
-rm -fr boost
-rm -fr doc
-rm -fr libs
-rm -fr more
-rm -fr people
-rm -fr status
-rm -fr tools
-bunzip2 -kc site.tar.bz2 | tar -x
-ls
-exit
-
-stop keep_isdn_awake</pre>
- </li>
- <li>Check actual www.boost.org site with
- browser. Look at a bunch of files that should have been updated to make sure
- the updates actually "took".<br>
- </li>
- <li>Post a message announcing the release and recapping "Latest News".
- Post as separate messages to: boost, boost-announce, boost-users,
- comp.lang.c++.moderated,
- <a href="mailto:c++std-news_at_[hidden]">c++std-news_at_[hidden]</a><br>
- </li>
- <li>Using the SourceForge shell services (sf_shell_svc.bat), cd /home/groups/b/bo/boost/htdocs,
- and rename regression tests as necessary.<br>
- </li>
- <li>Burn "Key Directories" CD for off-site backup.<br>
- </li>
- <li>Make sure CVS working copy is updated to main branch!<br>
- </li>
- <li>Ready <i><b>root/index.htm</b></i>, <i><b>root/boost/version.hpp</b></i>, <b>root/Jamfile.v2</b> and
- <i><b>root/Jamrules</b></i> for the
- next release and commit to CVS so developers have a place to add "Latest news"
- blurbs.<br>
- </li>
- <li>Delete obsolete files from yahoogroups files section.</li>
-</ul>
-<hr>
-<p>Revised:
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->21 November, 2005<!--webbot bot="Timestamp" endspan i-checksum="40405" --></p>
-<p>© Copyright Beman Dawes 2001</p>
-
-<p>Distributed under the Boost Software License, Version 1.0. (See accompanying
-file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)</p>
-
-</body>
-
-</html>
Deleted: branches/proto/v3/more/release_procedures.htm
==============================================================================
--- branches/proto/v3/more/release_procedures.htm 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,213 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>Release Procedures</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<table border="1" bgcolor="#007F7F" cellpadding="2">
- <tr>
- <td bgcolor="#FFFFFF">
- <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
- <td>Home</td>
- <td>Libraries</td>
- <td>People</td>
- <td>FAQ</td>
- <td>More</td>
- </tr>
-</table>
-
-
-<h1>Boost Release Procedures</h1>
-<p>Introduction<br>
-Procedure Overview<br>
-Procedures for Developers<br>
-Procedures for the Release Manager<br>
-FAQ<br>
-Acknowledgements</p>
-<h2><a name="Introduction">Introduction</a></h2>
-<p>Each release of Boost software is overseen by a release manager, who
-coordinates release activities via the Boost mailing list, as well as performing
-the detailed procedures for the release.</p>
-<p>Boost developers assist the release manager by reviewing regression test
-logs, and committing fixes to CVS.</p>
-<h2>Release Procedure <a name="Overview">Overview</a></h2>
-<ul>
- <li>Discussion on the main Boost mailing list to determine the target date for
- release candidate branch and tag of the CVS main trunk.<br>
- </li>
- <li>Release manager performs release candidate branch, and also tags the
- branch point in main trunk.<br>
- </li>
- <li>Regression tests run on release candidate branch.<br>
- </li>
- <li>Developers fix problems, test, and commit fixes. See below for details.<br>
- </li>
- <li>Repeat previous two steps until release manager is satisfied.<br>
- </li>
- <li>Release manager rolls out the actual release.</li>
-</ul>
-<h2>Release Procedures for <a name="Developers">Developers</a></h2>
-<ul>
- <li>As the release candidate branch date approaches (as announced on the main
- mailing list), bring the main trunk CVS files you are responsible for into a
- stable state.<br>
- </li>
- <li>If you know of changes in either your code or its dependencies, start
- checking regression test results to ensure your tests still pass. Don't
- necessarily wait for the initial release tagging.<br>
- </li>
- <li>After the release manager announces that the release candidate branch has
- occurred, check the latest regression test results to be sure
- your tests haven't broken.<br>
- </li>
- <li>Developers can continue working on main trunk code changes after
- the release candidate branch has occurred. There is no need to wait until the release
- itself.
- Modified files committed to CVS on the main trunk will not be included in the release unless the
- developer explicitly commits the changes to the release candidate branch.<br>
- </li>
- <li>If specific to the release candidate only, the fixes should be committed
- directly to the release candidate branch. In the more common case of fixes
- which apply to both the main trunk and the release branch, the fixes are best
- made to the main trunk, and then merged into the release candidate branch. See
- FAQ for tag rationale.<br>
- <br>
- After a fix has been committed to the main trunk, here is a
- typical procedure (assuming the release candidate branch is named RC_1_26_2)
- to merge the fixed main trunk into the release candidate branch:</li>
-</ul>
-<blockquote>
- <ul>
- <li>Command Line CVS:</li>
- </ul>
- <blockquote>
- <ul>
- <li>Fixed code is committed to main branch <br>
- </li>
- <li>Switch to the release candidate branch
- <blockquote>
- <code>cvs update -r RC_1_26_2</code></blockquote>
- </li>
- <li>Merge changes in a trunk since previous merge to branch
- <blockquote>
-<pre>cvs update -jmerged_to_RC_1_26_2 -jHEAD buggycode.hpp
- --> RCS file: /cvsroot/boost/.../buggycode.hpp,v
- --> retrieving revision 1.4
- --> retrieving revision 1.6
- --> Merging differences between 1.4 and 1.6 into buggycode.hpp</pre>
- </blockquote>
- </li>
- <li>Commit merged branch
- <blockquote>
-<pre>cvs commit -m "Merged fix for problem xyz from trunk to branch" buggycode.hpp</pre>
- </blockquote>
- </li>
- <li>Go back to main trunk
- <blockquote>
-<pre>cvs update -A</pre>
- </blockquote>
- </li>
- <li>Move tag to a new merged point
- <blockquote>
-<pre>cvs tag -F -c merged_to_RC_1_28_2 buggycode.hpp</pre>
- </blockquote>
- </li>
- <li>Repeat as needed
- </li>
- </ul>
- </blockquote>
- <ul>
- <li>WinCVS:</li>
- </ul>
- <blockquote>
- <ul>
- <li>After fixed code is committed to main branch, switch to the release
- candidate branch:</li>
- </ul>
- <blockquote>
- <blockquote>
- <p>Select file(s) if not already selected.</p>
- <p>Modify | Update selection... |
- Update settings | Sticky options | Retrieve rev/tag/branch: <code>RC_1_26_2</code> | OK</p>
- </blockquote>
- </blockquote>
- <ul>
- <li>Merge changes from main trunk into the release candidate branch:</li>
- </ul>
- <blockquote>
- <blockquote>
- <p>Modify | Update selection... |
- Update settings | Merge options | Only this rev/tag: <code>
- merged_to_RC_1_26_2</code>
- | Plus with this rev/tag: <code>HEAD</code> | OK</p>
- </blockquote>
- </blockquote>
- <ul>
- <li>Commit merge results:</li>
- </ul>
- <blockquote>
- <blockquote>
- <p>Modify | Commit... | Enter log message: ... | OK</p>
- </blockquote>
- </blockquote>
- <ul>
- <li>Go back to main trunk:</li>
- </ul>
- <blockquote>
- <blockquote>
- <p>Modify | Update selection... | Update settings | Reset any sticky
- date/tag/-k options | OK</p>
- </blockquote>
- </blockquote>
- <ul>
- <li>Tag as new merge point:</li>
- </ul>
- <blockquote>
- <blockquote>
- <p>Modify | Create tag on selection... | Create tag settings | Enter the tag
- name to create: <code>merged_to_RC_1_26_2</code>, Overwrite existing tags
- with same name | OK.</p>
- </blockquote>
- </blockquote>
- </blockquote>
-</blockquote>
-<h2>Release Procedures for the Release <a name="Manager">Manager</a></h2>
-<p>At time of branch-for-release:</p>
-<ul>
- <li>Tag the main trunk <code>merged_to_RC_n_n_n</code>.</li>
- <li>Branch the main trunk with the tag <code>RC_n_n_n</code>.</li>
-</ul>
-<p>See Release Manager's Checklist for
-full details.</p>
-<h2><a name="FAQ">FAQ</a></h2>
-<p><b>What is the purpose of the <i><a name="merged_to_RC_n_n_n">
-merged_to_RC_n_n_n</a></i> tag?</b> This tag allows multiple merges from the
-main trunk to the release candidate branch. Without it, merging an initial main
-trunk fix into the release candidate branch would work, but merging a
-second fix from main trunk to release candidate branch would result in a merge
-conflict. Although this procedure seems convoluted, it works much better in
-practice than several prior procedures we tried.</p>
-<h2><a name="Acknowledgements">Acknowledgements</a></h2>
-<p>This web page was written by Beman Dawes, with helpful suggestions from Dave
-Abrahams and Steve Robbins. Jim Hyslop contributed the original CVS procedures.
-Updated by Jeff Garland after 1.29 release based on list discussions.</p>
-<hr>
-<p>Revised:
-<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->02 October, 2003<!--webbot bot="Timestamp" i-checksum="38549" endspan --></p>
-
-<p>© Copyright Beman Dawes 2002</p>
-
-<p>Distributed under the Boost Software License, Version 1.0. (See
-accompanying file LICENSE_1_0.txt or copy
-at http://www.boost.org/LICENSE_1_0.txt)</p>
-
-</body>
-
-</html>
\ No newline at end of file
Deleted: branches/proto/v3/more/space.gif
==============================================================================
Binary file. No diff available.
Deleted: branches/proto/v3/more/version_history.html
==============================================================================
--- branches/proto/v3/more/version_history.html 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
+++ (empty file)
@@ -1,3231 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head>
- <title>Boost Version History</title>
- <meta content="text/html; charset=us-ascii" http-equiv="content-type" />
- <link rel="stylesheet" type="text/css" href="css_0/inner.css" />
- <!--[if IE]> <style type="text/css"> body { behavior: url(../more/css_0/csshover.htc); } </style> <![endif]-->
-</head>
-
-<body>
- <div class="body-0">
- <div class="body-1">
- <div class="body-2">
- <div id="heading">
- <div id="heading-0">
- <h1><a href="../index.htm"><img id="boost-logo" src=
- "../more/boost-dark-trans.png" alt="Boost C++ Libraries" /></a></h1>
-
- <p id="heading-quote"><span class="quote">“...one of the
- most highly regarded and expertly designed C++ library projects
- in the world.”</span> <span class="attribution">—
- Herb Sutter and <a href=
- "http://en.wikipedia.org/wiki/Andrei_Alexandrescu">Andrei
- Alexandrescu</a>, <a href=
- "http://safari.awprofessional.com/?XmlId=0321113586">C++ Coding
- Standards</a></span></p>
-
- <ul>
- <li id="menu_libraries"><a href=
- "../libs/libraries.htm">Libraries</a></li>
-
- <li id="menu_people"><a href=
- "../people/people.htm">People</a></li>
-
- <li id="menu_faq">FAQ</li>
-
- <li id="menu_more">More</li>
- </ul>
-
- <div class="clear"></div>
- </div>
- </div>
-
- <div id="content">
- <h2>Version History</h2>
-
- <div class="section" id="history">
- <div class="section-body">
- <div class="section-body-0">
- <div class="section-body-1">
- <div class="history_item" id="v1.34.1">
-
- <h3>1.34.1 (24 July 2007)</h3>
-
- <p>This is a bug fix release addressing many problems with the 1.34.0 release.
- It is a recommended upgrade for all users of Boost 1.34.0. For a complete list of fixes see
- Boost Trac.</p>
-
- <h4>Supported Compilers</h4>
-
- <p>New in this release is improved support for
- the IBM XL C/C++ compiler.</p>
-
- <p>Boost is tested on a wide range of compilers and
- platforms. Since Boost libraries rely on modern C++
- features not available in all compilers, not all
- Boost libraries will work with every compiler.
- New in this release The
- following compilers and platforms have been
- extensively tested with Boost, although many other
- compilers and platforms will work as well. For more
- information, see the <a href=
- "http://www.boost.org/regression/release/user/">regression
- test results</a>.</p>
-
- <ul>
- <li><a href="http://developer.apple.com/">Apple
- GCC</a> 4.0.1 on Mac OS X.</li>
-
- <li><a href=
- "http://www.borland.com/us/products/cbuilder/">Borland
- C++</a> 5.8.2 on Windows.</li>
-
- <li>GNU C++
- <ul>
- <li>
- 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux
- </li>
- <li>
- 4.1.x on Solaris
- </li>
- <li>
- 3.4.x on Windows
- </li>
- </ul>
- </li>
-
- <li><a href="http://h30097.www3.hp.com/cplus/">HP
- C++ for Tru64 UNIX 7.1</a>.</li>
-
- <li><a href="http://www.hp.com/go/c++">HP
- aC++ A.06.14</a>.</li>
-
- <li><a href=
- "http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">
- Intel C++</a> 9.1 on Windows, 9.0 on Linux.</li>
-
- <li><a href="http://www.metrowerks.com/">Metrowerks
- CodeWarrior</a> 9.4 on Windows.</li>
-
- <li><a href=
- "http://msdn.microsoft.com/visualc/">Microsoft
- Visual C++</a> 6.0 (sp5, with and without STLport),
- 7.0, 7.1, 8.0. Note: Boost does not support the
- non-standard "Safe" C++ Library shipping with
- Visual C++ 8.0, which may result in many spurious
- warnings from Boost headers and other
- standards-conforming C++ code. To suppress these
- warnings, define the macro
- <code>_SCL_SECURE_NO_DEPRECATE</code>.</li>
-
- <li><a href="http://developers.sun.com/sunstudio/compilers_index.html">
- Sun Studio 11</a>
- on Solaris.</li>
-
- </ul>
-
- <h4>Acknowledgements</h4>
-
- <p>Thomas Witt
- managed this release.</p>
-
- <p>A great number of people contributed their time
- and expertise to make this release possible. Special
- thanks go to Kim Barrett consolidating Boost.Iostreams changes
- from various branches and Rene Rivera for general build and installation
- support.</p>
- </div>
- <div class="history_item" id="v1.34.0">
-
- <h3>1.34.0 (12 May 2007)</h3>
- <h4>New Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../doc/html/foreach.html">Foreach Library</a>:</span>
- <tt>BOOST_FOREACH</tt> macro for easily iterating
- over the elements of a sequence, from Eric
- Niebler.</li>
-
- <li><span class="library"><a href=
- "../libs/statechart/doc/index.html">Statechart
- Library</a>:</span> Arbitrarily complex finite state
- machines can be implemented in easily readable and
- maintainable C++ code, from Andreas Huber.</li>
-
- <li><span class="library"><a href=
- "../libs/tr1/index.html">TR1 Library</a>:</span> An
- implementation of the C++ Technical Report on
- Standard Library Extensions, from John Maddock.
- This library does not itself implement the TR1
- components, rather it's a thin wrapper that will
- include your standard library's TR1 implementation
- (if it has one), otherwise it will include the
- Boost Library equivalents, and import them into
- namespace <code>std::tr1</code>. Highlights
- include: Reference Wrappers, Smart Pointers,
- result_of, Function Object Binders, Polymorphic
- function wrappers, Type Traits, Random Number
- Generators and Distributions, Tuples, Fixed Size
- Array, Hash Function Objects, Regular Expressions,
- and Complex Number Additional Algorithms.</li>
-
- <li><span class="library"><a href=
- "../doc/html/typeof.html">Typeof
- Library</a>:</span> Typeof operator emulation,
- from Arkadiy Vertleyb and Peder Holt.</li>
-
- <li><span class="library"><a href=
- "../doc/html/xpressive.html">Xpressive
- Library</a>:</span> Regular expressions that can be
- written as strings or as expression templates, and
- that can refer to each other and themselves
- recursively with the power of context-free
- grammars, from Eric Niebler.</li>
- </ul>
-
- <h4>Updated Libraries</h4>
-
- <ul>
-
- <li>
- <span class="library"><a href=
- "../libs/assign/index.html">Assign
- Library</a>:</span>
-
- <ul>
- <li>Support for
- <code>ptr_map<key,T></code> via the new
- function <code>ptr_map_insert()</code></li>
-
- <li>Support for initialization of <a href=
- "../libs/ptr_container/index.html">Pointer
- Containers</a> when the containers hold
- pointers to an abstract base class.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../doc/html/date_time.html">Date_time library</a>:</span>
- <ul>
- <li>Support for new US/Canada timezone rules and
- other bug fixes. See
- Change History
- for details.
- </li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/filesystem/doc/index.htm">Filesystem
- Library</a>:</span> Major upgrade in preparation
- for submission to the C++ Standards Committee for
- TR2. Changes include:
-
- <ul>
- <li><a href=
- "../libs/filesystem/doc/i18n.html#Internationalization">
- Internationalization</a>, provided by class
- templates <i>basic_path</i>,
- <i>basic_filesystem_error</i>,
- <i>basic_directory_iterator</i>, and
- <i>basic_directory_entry</i>.</li>
-
- <li><a href=
- "../libs/filesystem/doc/i18n.html#Simplification">Simplification</a>
- of the path interface by eliminating special
- constructors to identify native formats.</li>
-
- <li><a href=
- "../libs/filesystem/doc/i18n.html#Rationalization">
- Rationalization</a> of predicate function
- design, including the addition of several new
- functions.</li>
-
- <li>Clearer specification by reference to
- <a href=
- "../libs/filesystem/doc/design.htm#POSIX-01">POSIX</a>,
- the ISO/IEEE Single Unix Standard, with
- provisions for Windows and other operating
- systems.</li>
-
- <li><a href=
- "../libs/filesystem/doc/i18n.html#Preservation">Preservation</a>
- of existing user code whenever possible.</li>
-
- <li><a href=
- "../libs/filesystem/doc/i18n.html#More_efficient">More
- efficient</a> directory iteration.</li>
-
- <li>Addition of a <a href=
- "../libs/filesystem/doc/tr2_proposal.html#Class-template-basic_recursive_directory_iterator">
- recursive directory iterator</a>.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/function/index.html">Function
- Library</a>:</span> Boost.Function now implements a
- small buffer optimization, which can drastically
- improve the performance when copying or
- constructing Boost.Function objects storing small
- function objects. For instance,
- <code>bind(&X:foo, &x, _1, _2)</code>
- requires no heap allocation when placed into a
- Boost.Function object.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/functional/hash/index.html">Functional/Hash
- Library</a></span>
-
- <ul>
- <li>Use declarations for standard classes, so
- that the library doesn't need to include all of
- their headers</li>
-
- <li>Deprecated the
- <tt><boost/functional/hash/*.hpp></tt>
- headers.</li>
-
- <li>Add support for the
- <tt>BOOST_HASH_NO_EXTENSIONS</tt> macro, which
- disables the extensions to TR1</li>
-
- <li>Minor improvements to the hash functions
- for floating point numbers.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/graph/doc/index.html">Graph
- Library</a>:</span>
-
- <ul>
- <li><a href=
- "../libs/graph/doc/maximum_matching.html"><tt>edmonds_maximum_cardinality_matching</tt></a>,
- from Aaron Windsor.</li>
-
- <li><a href=
- "../libs/graph/doc/lengauer_tarjan_dominator.htm">
- <tt>lengauer_tarjan_dominator_tree</tt></a>,
- from JongSoo Park.</li>
-
- <li><a href=
- "../libs/graph/doc/compressed_sparse_row.html"><tt>
- compressed_sparse_row_graph</tt></a>, from
- Jeremiah Willcock and Douglas Gregor of Indiana
- University.</li>
-
- <li><a href=
- "../libs/graph/doc/sorted_erdos_renyi_gen.html"><tt>sorted_erdos_renyi_iterator</tt></a>,
- from Jeremiah Willcock of Indiana
- University.</li>
-
- <li><a href=
- "../libs/graph/doc/biconnected_components.html"><tt>
- biconnected_components</tt></a> now supports a
- visitor and named parameters, from Janusz
- Piwowarski.</li>
-
- <li><a href=
- "../libs/graph/doc/adjacency_matrix.html"><tt>adjacency_matrix</tt></a>
- now models the <a href=
- "../libs/graph/doc/BidirectionalGraph.html">Bidirectional
- Graph</a> concept.</li>
-
- <li><a href=
- "../libs/graph/doc/dijkstra_shortest_paths.html"><tt>
- dijkstra_shortest_paths</tt></a> now calls
- <tt>vis.initialize_vertex</tt> for each vertex
- during initialization.</li>
-
- <li><b>Note:</b> the name of the
- compiled library for the <a
- href="../libs/graph/doc/read_graphviz.html">GraphViz
- reader</a> has changed to
- <code>boost_graph</code> (from
- <code>bgl-viz</code>) to match Boost
- conventions.</li>
-
- <li>See the <a href=
- "../libs/graph/doc/history.html#1.34.0">complete
- revision history</a> for more information.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/multi_array/index.html">MultiArray
- Library</a>:</span> Boost.MultiArray now by default
- provides range-checking for
- <code>operator[]</code>. Range checking can be
- disabled by defining the macro
- <code>BOOST_DISABLE_ASSERTS</code> before including
- <tt>multi_array.hpp</tt>. A bug in
- <code>multi_array::resize()</code> related
- to storage orders was fixed.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/multi_index/doc/index.html">Multi-index
- Containers Library</a>:</span>
-
- <ul>
- <li>New <a href=
- "../libs/multi_index/doc/tutorial/indices.html#rnd_indices">
- random access indices</a>.</li>
-
- <li>Non key-based indices feature new <a href=
- "../libs/multi_index/doc/tutorial/indices.html#rearrange">
- rearrange facilities</a>.</li>
-
- <li>This version also includes a number of
- optimizations and usage improvements. For a
- complete list of changes, see the library
- <a href=
- "../libs/multi_index/doc/release_notes.html#boost_1_34">
- release notes</a>.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/optional/index.html">Optional Library</a>:</span>
-
- <ul>
- <li><code>boost::none_t and boost::none</code> now added to Optional's documentation</li>
- <li>Relational operators now directly support arguments of type <code>'T'</code> and <code>'none_t'</code></li>
- <li>operator->() now also works with reference types.</li>
- <li>Helper functions <code>make_optional(val), make_optional(cond,val) and
- get_optional_value_or(opt,alternative_value)</code> added.</li>
- <li>Constructor taking a boolean condition (as well as a value) added.</li>
- <li>Member function <code>get_value_or(alternative_value)</code> added.</li>
- <li>Incompatbility bug with mpl::apply<> fixed.</li>
- <li>Converting assignment bug with uninitialized lvalues fixed.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/parameter/index.html">Parameter
- Library</a>:</span>
-
- <ul>
- <li>Every ArgumentPack is now a valid <a href=
- "../libs/mpl/doc/refmanual/forward-sequence.html">MPL
- Forward Sequence.</a></li>
-
- <li>Support for unnamed arguments (those whose
- keyword is deduced from their types) is
- added.</li>
-
- <li>Support for named and unnamed template
- arguments is added.</li>
-
- <li>New overload generation macros solve the
- <a href=
- "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm">
- forwarding problem</a> directly.</li>
-
- <li>See also the Python library changes,
- below.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/ptr_container/index.html">Pointer Container
- Library</a>:</span>
-
- <ul>
- <li>Support for serialization via <a href=
- "../libs/serialization/index.html">Boost.Serialization.</a></li>
-
- <li>Exceptions can be disabled by defining the
- macro BOOST_PTR_CONTAINER_NO_EXCEPTIONS before
- including any header. This macro is defined by
- default if BOOST_NO_EXCEPTIONS is defined.</li>
-
- <li>Additional
- <code>std::auto_ptr<T></code> overloads
- added s.t. one can also pass
- <code>std::auto_ptr<T></code> instead of
- only <code>T*</code> arguments to member
- functions.</li>
-
- <li><code>transfer()</code> now has weaker
- requirements s.t. one can transfer objects from
- <code>ptr_container<Derived></code> to
- <code>ptr_container<Base></code>,</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/index.html">Python
- Library</a>:</span>
-
- <ul>
- <li>Boost.Python now automatically appends C++
- signatures to docstrings. The new <a href=
- "../libs/python/doc/v2/docstring_options.html"><code>
- docstring_options.hpp</code></a> header is
- available to control the content of
- docstrings.</li>
-
- <li><a href=
- "../libs/python/doc/v2/stl_iterator.html#stl_input_iterator-spec">
- <code>stl_input_iterator</code></a>, for
- turning a Python iterable object into an STL
- input iterator, from Eric Niebler.</li>
-
- <li>Support for <code>void*</code> conversions
- is added.</li>
-
- <li>Integrated support for wrapping C++
- functions built with the parameter library;
- keyword names are automatically known to
- docsstrings.</li>
-
- <li>Enhancements to the API for better embedding support
- (<code>boost::python::import()</code>,
- <code>boost::python::exec()</code>,
- and <code>boost::python::exec_file()</code>).</li>
-
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../doc/html/signals.html">Signals Library</a>:</span>
- More improvements to signal invocation performance from
- Robert Zeh.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/smart_ptr/smart_ptr.htm">Smart
- Pointers Library</a>:</span>
-
- <ul>
- <li><a href=
- "../libs/smart_ptr/shared_ptr.htm#allocator_constructor">
- Allocator support</a> as proposed in <a href=
- "http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1851.pdf">
- N1851</a> (162 Kb PDF).</li>
-
- <li><a href=
- "../libs/smart_ptr/pointer_cast.html">
- <code>pointer_cast</code></a> and <a href=
- "../libs/smart_ptr/pointer_to_other.html">
- <code>pointer_to_other</code></a> utilities to
- allow pointer-independent code, from Ion
- Gaztanaga.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href="../libs/algorithm/string/index.html">
- String Algorithm Library</a>:</span>
-
- <ul>
- <li><code>lexicographical_compare</code></li>
- <li><code>join</code></li>
- <li>
- New comparison predicates <code>is_less</code>, <code>is_not_greater</code>.
- </li>
- <li>
- Negative indexes support (like Perl) in various algorihtms
- (<code>*_head/tail</code>, <code>*_nth</code>).
- </li>
- </ul>
- </li>
- <li>
- <span class="library"><a href=
- "../libs/wave/index.html">Wave
- Library</a>:</span>
-
- <ul>
- <li>Wave now correctly recognizes pp-number
- tokens as mandated by the C++ Standard, which
- are converted to C++ tokens right before they
- are returned from the library.</li>
-
- <li>Several new preprocessing hooks have been
- added. For a complete description please refer
- to the related documentation page: <a href=
- "../libs/wave/doc/class_reference_ctxpolicy.html">The
- Context Policy</a>.</li>
-
- <li>Shared library (dll) support has been added
- for the generated Wave libraries.</li>
-
- <li>The overall error handling has been
- improved. It is now possible to recover and
- continue after an error or a warning was
- issued.</li>
-
- <li>Support for optional comment and/or full
- whitespace preservation in the generated output
- stream has been added.</li>
-
- <li>The Wave library now performs automatic
- include guard detection to avoid accessing header
- files more than once, if appropriate. </li>
-
- <li>Full interactive mode has been added to the Wave
- tool. Now the Wave tool can be used just like Python
- or Perl for instance to interactively try out your
- BOOST_PP macros. Additionally it is now possible to
- load and save the current state of an interactive session
- (macro tables et.al.).</li>
-
- <li>The overall performance has been improved by upto
- 40-60%, depending on the concrete files to process. </li>
-
- <li>Support for new pragmas has been added allowing to
- control certain library features from inside the
- preprocessed sources (partial output redirection,
- control of generated whitespace and #line directives).</li>
-
- <li>Optional support for #pragma message "..."
- has been added. </li>
-
- <li>This version also includes a number of bug
- fixes and usage improvements. For a complete
- list of changes, see the libraries <a href=
- "../libs/wave/ChangeLog">change log</a>.</li>
- </ul>
- </li>
- </ul>
-
- <h4>Supported Compilers</h4>
-
- <p>Boost is tested on a wide range of compilers and
- platforms. Since Boost libraries rely on modern C++
- features not available in all compilers, not all
- Boost libraries will work with every compiler. The
- following compilers and platforms have been
- extensively tested with Boost, although many other
- compilers and platforms will work as well. For more
- information, see the <a href=
- "http://www.boost.org/regression/release/user/">regression
- test results</a>.</p>
-
- <ul>
- <li><a href="http://developer.apple.com/">Apple
- GCC</a> 4.0.1 on Mac OS X.</li>
-
- <li><a href=
- "http://www.borland.com/us/products/cbuilder/">Borland
- C++</a> 5.8.2 on Windows.</li>
-
- <li>GNU C++
- <ul>
- <li>
- 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux
- </li>
- <li>
- 4.1.x on Solaris
- </li>
- <li>
- 3.4.x on Windows
- </li>
- </ul>
- </li>
-
- <li><a href="http://h30097.www3.hp.com/cplus/">HP
- aC++ A.06.14</a>.</li>
-
- <li><a href=
- "http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">
- Intel C++</a> 9.1 on Windows, 9.0 on Linux.</li>
-
- <li><a href="http://www.metrowerks.com/">Metrowerks
- CodeWarrior</a> 9.4 on Windows.</li>
-
- <li><a href=
- "http://msdn.microsoft.com/visualc/">Microsoft
- Visual C++</a> 6.0 (sp5, with and without STLport),
- 7.0, 7.1, 8.0. Note: Boost does not support the
- non-standard "Safe" C++ Library shipping with
- Visual C++ 8.0, which may result in many spurious
- warnings from Boost headers and other
- standards-conforming C++ code. To suppress these
- warnings, define the macro
- <code>_SCL_SECURE_NO_DEPRECATE</code>.</li>
-
- <li><a href="http://developers.sun.com/sunstudio/compilers_index.html">
- Sun Studio 11</a>
- on Solaris.</li>
-
- </ul>
-
- <h4>Acknowledgements</h4>
-
- <p>Thomas Witt
- managed this release.</p>
-
- <p>A great number of people contributed their time
- and expertise to make this release possible. Special
- thanks go to Vladimir Prus for making Boost.Build version 2
- a reality, David Abrahams for authoring a new getting
- started guide and Greg D. for answering
- countless questions.</p>
-
- </div>
- <div class="history_item" id="v1.33.1">
-
- <h3>1.33.1 (5 Dec 2005)</h3>
- <h4>Updated Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../doc/html/any.html">Any Library</a>:</span> Cast to
- reference types introduced in 1.33.0 is now
- documented on <code>any_cast</code> documentation
- page.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/bind/bind.html">Bind Library</a>:</span>
-
- Bind expressions now support
- <a href="../libs/bind/bind.html#operators">
- comparisons and negation</a>. Example: <code>
- bind(&X::name, _1) < bind(&X::name,
- _2)</code>.
- </li>
-
- <li><span class="library"><a href=
- "../libs/config/index.html">Config Library</a>:</span>
- Don't undef BOOST_LIB_TOOLSET after use.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/doc/index.html">Boost.Python</a>:</span>
-
- <ul>
- <li>The build now assumes Python 2.4 by
- default, rather than 2.2</li>
-
- <li>Support Python that's built without Unicode
- support</li>
-
- <li>Support for wrapping classes with
- overloaded address-of (<code>&</code>)
- operators</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/smart_ptr/index.html">Smart Pointer
- Library</a>:</span> Fixed problems under Metrowerks
- CodeWarrior on PowerPC (Mac OS X) with inlining on,
- GNU GCC on PowerPC 64.</li>
-
- <li><span class="library"><a href=
- "../libs/regex/doc/index.html">Regex
- Library</a>:</span> Fixed the supplied makefiles,
- and other small compiler specific changes. Refer to
- the <a href="../libs/regex/doc/history.html">regex
- history page</a> for more information on these and
- other small changes.</li>
-
- <li><span class="library"><a href=
- "../libs/iostreams/doc/index.html">Iostreams
- Library</a>:</span> Improved the interface for
- accessing a chain's components, added
- <code>is_open</code> members to the file and file
- descriptor devices, fixed memory-mapped files on
- Windows, and made minor changes to the
- documentation.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/doc/index.html">Boost.Python</a>:</span>
-
- <ul>
- <li>Added support for docstrings on nonstatic
- properties.</li>
-
- <li>We now export the client-provided
- docstrings for <code>init<optional<>
- ></code> and
- <i>XXX</i><code>_FUNCTION_OVERLOADS()</code>
- for only the last overload.</li>
-
- <li>Support for Embedded VC++ 4 and GCC-3.3 on
- MacOS added</li>
-
- <li>Introduced better support for rvalue
- from-python conversions of shared_ptr.</li>
-
- <li>Support for exposing
- <code>vector<T*></code> with the indexing
- suite.</li>
-
- <li>updated visual studio project build
- file.</li>
-
- <li>Added search feature to the index
- page.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/functional/hash/index.html">Functional/Hash
- Library</a>:</span> Fixed the points example.</li>
-
- <li><span class="library"><a href=
- "../libs/multi_index/doc/index.html">Multi-index
- Containers Library</a>:</span> Fixed a problem with
- multithreaded code, and other minor changes. Refer
- to the library <a href=
- "../libs/multi_index/doc/release_notes.html#boost_1_33_1">
- release notes</a> for further details.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a>:</span>
-
- <ul>
- <li>Fixed a problem with the relaxed heap on
- x86 Linux (fixes bug in
- <tt>dijkstra_shortest_paths</tt>).</li>
-
- <li>Fixed problems with <a href=
- "../libs/graph/doc/cuthill_mckee_ordering.html"><code>
- cuthill_mckee_ordering</code></a> and <a href=
- "../libs/graph/doc/king_ordering.html"><code>king_ordering</code></a>
- producing no results.</li>
-
- <li>Added <tt>color_map</tt> parameter to
- <tt>dijkstra_shortest_paths</tt>.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/signals/doc/index.html">Signals
- Library</a>:</span> Fixed problems with the use of
- Signals across shared library boundaries.</li>
-
- <li><span class="library"><a href=
- "../libs/thread/doc/index.html">Thread
- library</a>:</span> <code>read_write_mutex</code>
- has been removed due to problems with
- deadlocks.</li>
-
- <li><span class="library"><a href=
- "../libs/wave/index.html">Wave library</a>
- (V1.2.1)</span> Fixed a couple of problems, refer
- to the change log
- for further details.</li>
- </ul>
-
- <h4>Supported Compilers</h4>
-
- <p>Boost is tested on a wide range of compilers and
- platforms. Since Boost libraries rely on modern C++
- features not available in all compilers, not all
- Boost libraries will work with every compiler. The
- following compilers and platforms have been
- extensively tested with Boost, although many other
- compilers and platforms will work as well. For more
- information, see the <a href=
- "http://www.boost.org/regression/release/user/">regression
- test results</a>.</p>
-
- <p><b>New for this release</b>: Support for building
- with the newest STLport-5.0 was added. The support
- includes building with MinGW Runtime 3.8 plus
- STLport-5.0 improved to support wide character
- operations. Apple GCC 4.0, HP Tru64 C++, and
- Microsoft Visual C++ 8.0 are supported platforms. We
- have added an experimental autoconf-like
- <code>configure</code> script for Unix-like systems:
- run <code>configure --help</code> for more
- information.</p>
-
- <ul>
- <li><a href="http://developer.apple.com/">Apple
- GCC</a> 3.3, 4.0 on Mac OS X.</li>
-
- <li><a href=
- "http://www.borland.com/us/products/cbuilder/">Borland
- C++</a> 5.6.4 on Windows.</li>
-
- <li>GNU C++ 2.95.3
- (with and without STLport), 3.2.x., 3.3.x, 3.4.x,
- 4.0.x on Windows, Linux and Solaris.</li>
-
- <li><a href="http://h30097.www3.hp.com/cplus/">HP
- C++ for Tru64 UNIX 7.1</a>.</li>
-
- <li><a href=
- "http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">
- Intel C++</a> 8.1, 9.0 on Windows, Linux.</li>
-
- <li><a href="http://www.metrowerks.com">Metrowerks
- CodeWarrior</a> 8.3, 9.4, 9.5 on Mac OS X and
- Windows.</li>
-
- <li><a href=
- "http://msdn.microsoft.com/visualc/">Microsoft
- Visual C++</a> 6.0 (sp5, with and without STLport),
- 7.0, 7.1, 8.0. Note: Boost does not support the
- non-standard "Safe" C++ Library shipping with
- Visual C++ 8.0, which may result in many spurious
- warnings from Boost headers and other
- standards-conforming C++ code. To suppress these
- warnings, define the macro
- <code>_SCL_SECURE_NO_DEPRECATE</code>.</li>
- </ul>
-
- <h4>Acknowledgements</h4>
-
- <p><img src="boost_1_33_0.jpg" width="128"
- height="118" alt="Medieval Mr. Gregor" class=
- "left-inset" /> <a href=
- "../people/doug_gregor.html">Douglas Gregor</a> managed
- this release.</p>
-
- <p>A great number of people contributed their time
- and expertise to make this release possible. Special
- thanks go to Aleksey Gurtovoy and Misha Bergal, who
- managed to keep the regression testing system working
- throughout the release process; David Abrahams, Beman
- Dawes, Aleksey Gurtovoy, Bronek Kozicki, Rene Rivera
- and Jonathan Turkanis for greatly improving the
- quality of this release; Rene Rivera for the new
- Boost web page design; and Zoltan "cad" Juhasz for
- the new Boost logo.</p>
- </div>
- <div class="history_item" id="v1.33.0">
- <h3>1.33.0 (11 Aug 2005)</h3>
-
- <h4>New Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../libs/iostreams/doc/index.html">Iostreams
- Library</a>:</span> Framework for defining streams,
- stream buffers and i/o filters, from Jonathan
- Turkanis.</li>
-
- <li><span class="library"><a href=
- "../libs/functional/hash/index.html">Functional/Hash
- Library</a>:</span> A TR1 hash function object that can
- be extended to hash user defined types, from Daniel
- James.</li>
-
- <li><span class="library"><a href=
- "../libs/parameter/doc/html/index.html">Parameter
- Library</a>:</span> Write functions that accept
- arguments by name: especially useful when a function
- has more than one argument with a useful default value,
- since named arguments can be passed in any order.</li>
-
- <li><span class="library"><a href=
- "../libs/ptr_container/index.html">Pointer Container
- Library</a>:</span> Containers for storing
- heap-allocated polymorphic objects to ease
- OO-programming, from Thorsten Ottosen.</li>
-
- <li><span class="library"><a href=
- "../libs/wave/index.html">Wave</a>:</span> Standards
- conformant implementation of the mandated C99/C++
- preprocessor functionality packed behind an easy to use
- iterator interface, from Hartmut Kaiser.</li>
- </ul>
-
- <h4>Updated Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../doc/html/any.html">Any Library</a>:</span>
- <code>any_cast</code> has been enhanced to allow direct
- access to <code>any</code>'s held value.</li>
-
- <li><span class="library"><a href=
- "../libs/assign/doc/index.html">Assignment
- Library</a>:</span> Support for <a href=
- "../libs/ptr_container/index.html">Pointer Container
- Library</a> and new efficient functions
- <code>ref_list_of()</code> and
- <code>cref_list_of()</code> for generating anonymous
- ranges.</li>
-
- <li><span class="library"><a href=
- "../libs/bind/bind.html">Bind Library</a>:</span> Bind
- expressions now support <a href=
- "../libs/bind/bind.html#operators">comparisons and
- negation</a>. Example: <code>bind(&X::name, _1)
- < bind(&X::name, _2)</code>.</li>
-
- <li>
- <span class="library"><a href=
- "../doc/html/date_time.html">Date-Time
- Library</a>:</span>
-
- <ul>
- <li>Added <a href=
- "../doc/html/date_time/local_time.html">local time
- and time zone classes</a>.</li>
-
- <li>Added <a href=
- "../doc/html/date_time/date_time_io.html">format-based
- Input/Output facets</a>.</li>
-
- <li>For a complete list of changes, see the library
- <a href=
- "../doc/html/date_time/details.html#date_time.changes">
- change history</a>.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/graph/doc/index.html">Graph
- Library</a>:</span> Introduced several new algorithms
- and improved existing algorithms:
-
- <ul>
- <li><a href=
- "../libs/graph/doc/python.html">Experimental Python
- bindings</a>, from Doug Gregor and Indiana
- University.</li>
-
- <li><a href=
- "../libs/graph/doc/floyd_warshall_shortest.html"><tt>
- floyd warshall all pairs shortest paths</tt></a>,
- from Lauren Foutz and Scott Hill.</li>
-
- <li><a href=
- "../libs/graph/doc/astar_search.html"><tt>astar
- search</tt></a>, from Kristopher Beevers and Jufeng
- Peng.</li>
-
- <li><a href=
- "../libs/graph/doc/fruchterman_reingold.html"><tt>fruchterman
- reingold force directed layout</tt></a>, from Doug
- Gregor and Indiana University.</li>
-
- <li><a href=
- "../libs/graph/doc/biconnected_components.html"><tt>
- biconnected components</tt> and <tt>articulation
- points</tt></a>, from Jeremy Siek, Janusz
- Piwowarski, and Doug Gregor.</li>
-
- <li><a href=
- "../libs/graph/doc/sequential_vertex_coloring.html">
- <tt>sequential vertex coloring</tt></a> has been
- updated, tested, and documented.</li>
-
- <li><a href=
- "../libs/graph/doc/gursoy_atun_layout.html"><tt>gursoy
- atun layout</tt></a>, from Jeremiah Willcock and
- Doug Gregor of Indiana University.</li>
-
- <li><a href=
- "../libs/graph/doc/king_ordering.html"><tt>king
- ordering</tt></a>, from D. Kevin McGrath of Indiana
- University.</li>
-
- <li><a href=
- "../libs/graph/doc/cuthill_mckee_ordering.html"><tt>
- cuthill mckee ordering</tt></a> has been recast as
- an invocation of <tt>breadth first search</tt> and
- now supports graphs with multiple components.</li>
-
- <li><a href=
- "../libs/graph/doc/dijkstra_shortest_paths.html"><tt>
- dijkstra shortest paths</tt></a> now uses a relaxed
- heap [<a href=
- "../libs/graph/doc/bibliography.html#driscoll88">61</a>]
- as its priority queue, improving its complexity to
- <em>O(V log V)</em> and improving real-world
- performance for larger graphs.</li>
-
- <li><a href=
- "../libs/graph/doc/read_graphviz.html"><code>read
- graphviz</code></a> now has a new, Spirit-based
- parser that works for all graph types and supports
- arbitrary properties on the graph, from Ron Garcia.
- The old, Bison-based GraphViz reader has been
- deprecated and will be removed in a future Boost
- release. <a href=
- "../libs/graph/doc/write-graphviz.html"><code>write
- graphviz</code></a> also supports dynamic
- properties.</li>
-
- <li><a href=
- "../libs/graph/doc/subgraph.html"><code>subgraph</code></a>:
- <code>get_property</code> now refers to the
- subgraph property, not the root graph's
- property.</li>
-
- <li>See the <a href=
- "../libs/graph/doc/history.html#by-version">history</a>
- for additional changes and bug fixes.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/multi_index/doc/index.html">Multi-index
- Containers Library</a>:</span>
-
- <ul>
- <li>New <a href=
- "../libs/multi_index/doc/tutorial/indices.html#hashed_indices">
- hashed indices</a>.</li>
-
- <li>Added <a href=
- "../libs/multi_index/doc/tutorial/creation.html#serialization">
- serialization support</a>.</li>
-
- <li>For a complete list of changes, see the library
- <a href=
- "../libs/multi_index/doc/release_notes.html">release
- notes</a>.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/program_options/doc/index.html">Program
- Options Library</a>:</span>
-
- <ul>
- <li>Option descriptions are now printed with word
- wrapping.</li>
-
- <li>Command line parser can bypass unregistered
- options, instread of throwing.</li>
-
- <li>Removed support for "implicit" (optional)
- values.</li>
-
- <li>New customization method
- 'command_line_parser::extra_style_parser'. Unlike
- 'additional_parser', allows the user to parse
- several tokens and return a vector of options, not
- just a single option.</li>
-
- <li>Work with disabled exceptions.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/property_map/property_map.html">Property Map
- Library</a>:</span> Introduced the <a href=
- "../libs/property_map/doc/dynamic_property_map.html"><code>
- dynamic properties</code></a> class, which provides
- dynamically-typed access to a set of property
- maps.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/doc/index.html">Boost.Python</a>:</span>
-
- <ul>
- <li>Added support for docstrings on nonstatic
- properties.</li>
-
- <li>We now export the client-provided docstrings
- for <code>init<optional<> ></code> and
- <i>XXX</i><code>_FUNCTION_OVERLOADS()</code> for
- only the last overload.</li>
-
- <li>Support for Embedded VC++ 4 and GCC-3.3 on
- MacOS added</li>
-
- <li>Introduced better support for rvalue
- from-python conversions of shared_ptr.</li>
-
- <li>Support for exposing
- <code>vector<T*></code> with the indexing
- suite.</li>
-
- <li>updated visual studio project build file.</li>
-
- <li>Added search feature to the index page.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/random/index.html">Random Number
- Library</a>:</span> improved initialization for
- <code>mersenne_twister</code>, algorithm by Makoto
- Matsumoto and Takuji Nishimura, implemented for Boost
- by Jens Maurer.<br />
- <em>Note:</em> All test vectors for
- <code>mersenne_twister</code>s constructed or seeded
- without parameters or with a single <code>unsigned
- int</code> parameter become invalid.</li>
-
- <li><span class="library"><a href=
- "../libs/range/index.html">Range Library</a>:</span>
- Minor addition of convenience functions to
- <code>iterator range</code> like <code>front(),
- back()</code> and <code>operator[]()</code>.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/regex/index.html">Regex Library</a>:</span>
-
- <ul>
- <li>Rewritten front end parser now supports
- (?imsx-imsx) constructs, plus lookbehind assertions
- and conditional expressions.</li>
-
- <li>Thin wrapper classes improve integration with
- MFC/ATL code.</li>
-
- <li>Full (optional) Unicode support via the ICU
- library.</li>
- </ul>Refer to the <a href=
- "../libs/regex/doc/history.html">regex history
- page</a> for more information on these and other
- small changes.
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/serialization/doc/index.html">Serialization
- Library</a>:</span>
-
- <ul>
- <li>DLL version.</li>
-
- <li>Auto-linking.</li>
-
- <li>Serialization of variants.</li>
-
- <li>Improved serialization of shared pointers.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../doc/html/signals.html">Signals Library</a>:</span>
- added slot blocking/unblocking, from Frantz Maerten.
- Huge improvements to signal invocation performance from
- Robert Zeh.</li>
- </ul>
-
- <h4>Supported Compilers</h4>
-
- <p>Boost is tested on a wide range of compilers and
- platforms. Since Boost libraries rely on modern C++
- features not available in all compilers, not all Boost
- libraries will work with every compiler. The following
- compilers and platforms have been extensively tested with
- Boost, although many other compilers and platforms will
- work as well. For more information, see the <a href=
- "http://www.boost.org/regression/release/user/">regression
- test results</a>.</p>
-
- <ul>
- <li>Apple GCC
- 3.x on Mac OS X.</li>
-
- <li><a href=
- "http://www.borland.com/us/products/cbuilder/">Borland
- C++</a> 5.6.4 on Windows.</li>
-
- <li>GNU C++ 2.95.3
- (with and without STLport), 3.2.x., 3.3.x, 3.4.x, 4.0.x
- on Windows, Linux and Solaris.</li>
-
- <li><a href=
- "http://www.intel.com/cd/software/products/asmo-na/eng/compilers/index.htm">
- Intel C++</a> 8.1, 9.0 on Windows, Linux.</li>
-
- <li><a href="http://www.metrowerks.com">Metrowerks
- CodeWarrior</a> 8.3, 9.4, 9.5 on Mac OS X and
- Windows.</li>
-
- <li><a href=
- "http://msdn.microsoft.com/visualc/">Microsoft Visual
- C++</a> 6.0 (sp5, with and without STLport), 7.0, 7.1,
- 8.0 beta. Note: due to intermittent problems with
- Visual C++ 8.0 beta, and the presence of a variety of
- pre-release compiler builds, we are unable to guarantee
- compatibility until the final compiler is
- released.</li>
- </ul>
-
- <h4>Acknowledgements</h4>
-
- <p><img src="boost_1_33_0.jpg" width="128" height="118"
- alt="Medieval Mr. Gregor" class="left-inset" /><a href=
- "../people/doug_gregor.html">Douglas Gregor</a> managed
- this release.</p>
-
- <p>A great number of people contributed their time and
- expertise to make this release possible. Special thanks
- go to Aleksey Gurtovoy and Misha Bergal, who managed to
- keep the regression testing system working throughout the
- release process; David Abrahams, Beman Dawes, Aleksey
- Gurtovoy, Rene Rivera and Jonathan Turkanis for greatly
- improving the quality of this release; Rene Rivera for
- the new Boost web page design; and Zoltan "cad" Juhasz
- for the new Boost logo.</p>
- </div>
-
- <div class="history_item" id="v1.32.0">
- <h3>1.32.0 (19 Nov 2004)</h3>
-
- <h4>Important - New Toolset Names</h4>
-
- <p>The names of some the Boost.Build <a href=
- "getting_started.html#Tools">toolsets</a> have been
- changed to remove the "<code>.</code>" (dot) character
- and to fix some other naming inconsistencies. For
- example, <code>vc7.1</code> toolset was renamed to become
- <code>vc-7_1</code>. Please refer to the <a href=
- "getting_started.html#Tools">Supported Toolsets</a>
- section of the installation guide for the complete list
- of the current toolset names. This change was made as a
- part of the effort to make the Boost distribution
- compatible with ISO 9660 level 2 requirements.</p>
-
- <h4>New Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../libs/assign/index.html">Assignment
- Library</a>:</span> Filling containers with constant or
- generated data has never been easier, from Thorsten
- Ottosen.</li>
-
- <li><span class="library"><a href=
- "../libs/algorithm/minmax/index.html">Minmax
- Library</a>:</span> Standard library extensions for
- simultaneous min/max and min/max element computations,
- from Hervé Brönnimann.</li>
-
- <li><span class="library"><a href=
- "../libs/multi_index/doc/index.html">Multi-index
- Containers Library</a>:</span> Containers with multiple
- STL-compatible access interfaces, from Joaquín M
- López Muñoz.</li>
-
- <li><span class="library"><a href=
- "../libs/numeric/conversion/index.html">Numeric
- Conversion Library</a>:</span> Optimized policy-based
- numeric conversions, from Fernando Cacciola.</li>
-
- <li><span class="library"><a href=
- "../doc/html/program_options.html">Program Options
- Library</a>:</span> Access to configuration data given
- on command line, in config files and other sources,
- from Vladimir Prus.</li>
-
- <li><span class="library"><a href=
- "../libs/range/index.html">Range Library</a>:</span> a
- new infrastructure for generic algorithms that builds
- on top of the new iterator concepts, from Thorsten
- Ottosen.</li>
-
- <li><span class="library"><a href=
- "../libs/serialization/doc/index.html">Serialization
- Library</a>:</span> Serialization/de-serialization of
- arbitrary C++ data structures to various formats
- including text, binary, and xml, from Robert
- Ramey.</li>
-
- <li><span class="library"><a href=
- "../libs/algorithm/string/index.html">String Algorithms
- Library</a>:</span> Collection of string related
- algorithms for case conversion, trimming, find/replace
- operations and more, from Pavol Droba.</li>
-
- <li><span class="library"><a href=
- "../doc/html/tribool.html">Tribool</a>:</span> 3-state
- boolean type library, from Doug Gregor.</li>
- </ul>
-
- <h4>Updated Libraries</h4>
-
- <ul>
- <li>Compose: This deprecated library has been
- removed.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/graph/index.html">Graph</a>:</span>
-
- <ul>
- <li>Added <a href=
- "../libs/graph/doc/bundles.html">bundled
- properties</a> to the <a href=
- "../libs/graph/doc/adjacency_list.html"><code>adjacency_list</code></a>
- and <a href=
- "../libs/graph/doc/adjacency_matrix.html"><code>adjacency_matrix</code></a>
- class templates, greatly simplifying the
- introduction of internal vertex and edge
- properties.</li>
-
- <li>The <a href=
- "../libs/graph/doc/leda_conversion.html">LEDA graph
- adaptors</a> have been ported to LEDA 4.5.</li>
-
- <li>Added algorithms for <a href=
- "../libs/graph/doc/betweenness_centrality.html">betweenness
- centrality</a> and <a href=
- "../libs/graph/doc/bc_clustering.html">betweenness
- centrality clustering</a>.</li>
-
- <li>Added <a href=
- "../libs/graph/doc/circle_layout.html">circle
- layout</a> and <a href=
- "../libs/graph/doc/kamada_kawai_spring_layout.html">
- undirected spring layout</a> algorithms.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/mpl/doc/index.html">MPL Library</a>:</span>
-
- <ul>
- <li>Updated to use the Boost Software License.</li>
-
- <li>New <a href=
- "../libs/mpl/doc/index.html">documentation</a>,
- including a complete <a href=
- "../libs/mpl/doc/refmanual.html">reference
- manual.</a></li>
-
- <li>Major interface changes and improvements, many
- of which are <em>not</em> backward compatible.
- Please refer to the <a href=
- "../libs/mpl/doc/tutorial/changes-in-boost-1-32-0.html">
- 1.32 changelog</a> for the detailed information
- about upgrading to the new version.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/doc/index.html">Python
- Library</a>:</span>
-
- <ul>
- <li>Updated to use the Boost Software License.</li>
-
- <li>a new, <a href=
- "../libs/python/doc/tutorial/doc/html/python/exposing.html#python.class_virtual_functions">
- better method of wrapping classes with virtual
- functions</a> has been implemented.</li>
-
- <li>Support for the new Python Bool type, thanks to
- Daniel Holth.</li>
-
- <li>Support for upcoming GCC symbol export control
- features have been folded in, thanks to Niall
- Douglas.</li>
-
- <li>Improved support for
- <code>std::auto_ptr</code>-like types.</li>
-
- <li>Components used by other libraries have been
- moved out of <code>python/detail</code> and into
- <code>boost/detail</code> to improve dependency
- relationships.</li>
-
- <li>Miscellaneous bug fixes and compiler
- workarounds.</li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../doc/html/signals.html">Signals Library</a>:</span>
- Introduced deterministic slot ordering, permitting
- slots to be connected at the beginning or end of slot
- groups or the slot list itself. Combiners may safely
- have state and are accessible from the signal.</li>
-
- <li><span class="library"><a href=
- "../libs/utility/utility.htm">Utility</a>:</span> class
- template <a href=
- "../libs/utility/utility.htm#result_of">result_of</a>
- added.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/test/index.html">Test Library</a>:</span>
-
- <ul>
- <li>namespace names gets shorten; old one still
- supported till next release</li>
-
- <li>added proper encoding of XML PCDATA</li>
-
- <li>support for wide string comparison
- implemented</li>
- </ul>For complete list of changes see Test Library
- <a href=
- "../libs/test/doc/release_notes.html#v1_32_0">release
- notes</a>.
- </li>
- </ul>
-
- <h4>Regression tests</h4>
-
- <p>This release has been extensively tested on a variety
- of different compilers and platforms. It is known to
- contain no regressions against the previous reference
- release on the compilers and configurations tested.
- Please refer to the corresponding <a href=
- "http://www.meta-comm.com/engineering/boost-regression/1_32_0/index.html">
- regression reports</a> to see how well your compiler
- performs on the new Boost codebase.</p>
-
- <h4>Acknowledgements</h4>
-
- <p><img src=
- "http://boost.sourceforge.net/photos/aleksey_gurtovoy2.jpg"
- width="128" height="250" alt=
- "cartoon portrait of Aleksey" class=
- "left-inset" /><a href=
- "../people/aleksey_gurtovoy.htm">Aleksey Gurtovoy</a>
- managed this release. <a href=
- "release_procedures.htm">Managing a release</a> at all is
- an enormous job, and Aleksey always goes beyond merely
- meeting requirements by insisting on the highest possible
- quality. The Boost membership owes him a debt of
- gratitude.</p>
-
- <p>This release wouldn't have been possible without the
- dedicated effort of many, many members of the Boost
- community who generously contributed their outstanding
- expertise, time and energy to making it happen. For
- patches, bug fixes, troubleshooting, expert advice, and
- prompt responses to the release manager's requests we
- thank:</p>
-
- <p>David Abrahams, Misha Bergal, Jonathan Brandmeyer,
- Fernando Cacciola, Marshall Clow, Christopher Currie,
- Pavol Droba, Caleb Epstein, Eric Friedman, Jeff Garland,
- Michael Glassford, Doug Gregor, Joel de Guzman, Hubert
- Holin, Jaakko Järvi, Hartmut Kaiser, Bronek Kozicki,
- Tarjei Knapstad, Toon Knapen, Aaron W. LaFramboise,
- Joaquín M López Muñoz, Christoph
- Ludwig, John Maddock, Paul Mensonides, Guillaume
- Melquiond, Thorsten Ottosen, Vladimir Prus, Robert Ramey,
- Rene Rivera, Gennadiy Rozental, Stefan Slapeta, Jonathan
- Turkanis, Pavel Vozenilek, Jonathan Wakely, Daryle
- Walker, Victor A. Wagner Jr. and Martin Wille.</p>
-
- <p>Also, our special thanks go to: John Maddock for the
- managing the effort of converting the majority of the
- Boost libraries to the <a href="license_info.html">Boost
- Software License</a>, Eric Niebler and Joel de Guzman for
- taking on the important job of improving the Boost
- documentation's look and feel, and last, but not least,
- to our regression test runners, without whom we simply
- would never have released: Toon Knapen, Bronek Kozicki,
- Rene Rivera, Markus Schöpflin, Stefan Slapeta,
- Victor A. Wagner Jr. and Martin Wille.</p>
-
- <p>Thank you everybody!</p>
- </div>
-
- <div class="history_item" id="v1.31.0">
- <h3>1.31.0 (26 Jan 2004)</h3>
-
- <h4>New License</h4>
-
- <p>A unified <a href="license_info.html">Boost Software
- License</a> has been developed and will gradually replace
- the individual licenses for most Boost libraries. The new
- license offers better legal protection for both users and
- developers, and should speed user's legal reviews of
- Boost libraries. Dave Abrahams led the Boost effort to
- develop better licensing. The legal team was led by
- <a href=
- "http://cyber.law.harvard.edu/people/cabell/index.html">Diane
- Cabell</a>, Director, Clinical Programs, <a href=
- "http://cyber.law.harvard.edu">Berkman Center for
- Internet & Society</a>, Harvard Law School. <a href=
- "http://www.nixonpeabody.com/attorneys_detail1.asp?ID=121">
- Devin Smith</a>, attorney, <a href=
- "http://www.nixonpeabody.com/default.asp">Nixon Peabody
- LLP</a>, wrote the Boost License. Eva Chan, Harvard Law
- School, contributed analysis of issues and drafts of
- various legal documents.</p>
-
- <p><strong>Note:</strong> Many of the Boost libraries are
- still using earlier licenses, though all conform to the
- <a href="lib_guide.htm#license">Boost License
- Requirements</a>. After this release we will begin an
- effort to move toward uniform use of the new license.</p>
-
- <h4>Build and Installation</h4>
-
- <ul>
- <li>New <a href="getting_started.html">Getting
- Started</a> procedures ease download and installation,
- from Rene Rivera and others.</li>
-
- <li>Improved support for libraries requiring <a href=
- "separate_compilation.html">separate compilation</a>,
- from John Maddock and others.</li>
- </ul>
-
- <h4>New Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../libs/utility/enable_if.html">enable_if</a>:</span>
- Selective inclusion of function template overloads,
- from Jaakko Järvi, Jeremiah Willcock, and Andrew
- Lumsdaine. This is an important new technique which
- exploits the <em>SFINAE</em>
- (substitution-failure-is-not-an-error) principle.</li>
-
- <li><span class="library"><a href=
- "../libs/variant/index.html">Variant
- Library</a>:</span> Safe, generic, stack-based
- discriminated union container, from Eric Friedman and
- Itay Maman.</li>
- </ul>
-
- <h4>Updated Libraries</h4>
-
- <ul>
- <li><span class="library"><a href=
- "../libs/compose/index.htm">Compose</a>:</span> This
- library has been deprecated and will be removed in a
- future release. Use <a href=
- "../libs/bind/bind.html">Bind</a> or <a href=
- "../libs/lambda/doc/index.html">Lambda</a>
- instead.</li>
-
- <li><span class="library"><a href=
- "../libs/date_time/doc/index.html">Date Time
- Library</a>:</span> A whole host of bug fixes, new
- features, and documentation improvements. See the Date
- Time Change History for details.</li>
-
- <li><span class="library"><a href=
- "../libs/filesystem/doc/index.htm">Filesystem
- Library</a>:</span> Several added functions, including
- improved checking for directory and file name
- portability.</li>
-
- <li><span class="library"><a name="iterators_lib" href=
- "../libs/iterator/doc/index.html" id=
- "iterators_lib">Iterator Library</a>:</span> Major
- version upgrade, with interface as proposed for the C++
- library TR, including an improved
- <code>iterator_adaptor</code> design plus several new
- components, from David Abrahams, Jeremy Siek, and
- Thomas Witt.</li>
-
- <li><span class="library"><a href=
- "../libs/multi_array/index.html">MultiArray</a>:</span>
- The <code>multi_array</code> class template now
- provides an element-preserving resize operation as well
- as default construction (see the <a href=
- "../libs/multi_array/doc/reference.html">reference
- manual</a> for more information).</li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/index.html">Python
- Library</a>:</span>
-
- <ul>
- <li>Support for Python 2.3 and Intel C++ on
- Linux</li>
-
- <li>Container <a href=
- "../libs/python/doc/v2/indexing.html">Indexing
- Suite</a> added.</li>
-
- <li>injected constructors and wrapped function
- objects.</li>
-
- <li>wrapping static data members.</li>
-
- <li><code>std::wstring</code> conversions.</li>
-
- <li>Improved <a href=
- "../libs/python/doc/v2/args.html">keyword
- arguments</a>.</li>
-
- <li>Better error messages, including name
- demangling for GCC.</li>
-
- <li>Simpler <a href=
- "../libs/python/doc/building.html">build
- procedure</a>.</li>
-
- <li><i>...and more....</i></li>
- </ul>
- </li>
-
- <li><span class="library"><a href=
- "../libs/random/index.html">Random Number
- Library</a>:</span> Interface changed to match the C++
- <a href="../libs/random/wg21-proposal.html">TR
- proposal</a>, from Jens Maurer.</li>
-
- <li><span class="library"><a href=
- "../libs/regex/doc/index.html">Regex</a>:</span>
- Completely new matching algorithm is now much faster
- than before, plus a selection of <a href=
- "../libs/regex/doc/history.html">new features and
- enhancements</a>.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/spirit/index.html">Boost.Spirit
- 1.8.0</a>:</span>
-
- <ul>
- <li>Multiple grammar start rules</li>
-
- <li>Multiple Scanner rules (no more scanner
- business woes)</li>
-
- <li>More dynamic parsers</li>
-
- <li>Predefined actors</li>
-
- <li>Numerous bug fixes and QOI stuff</li>
-
- <li><i>...and more...</i></li>
- </ul>
-
- <p>Starting from Spirit v1.8.0, ill conforming
- compilers will no longer be supported. If you are
- still using one of these older compilers, please use
- Spirit v1.6.x. See <a href=
- "http://spirit.sf.net">Spirit's Site</a> for more
- details.</p>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/test/index.html">Test Library</a>:</span>
-
- <ul>
- <li>Free function template based test case</li>
-
- <li>Custom exception translators support in
- execution monitor and register_exception_translator
- added for unit test framework</li>
-
- <li>Added support for multi-module unit tests in
- automatic registration facility</li>
-
- <li>Floating point comparison algorithm reworked
- (Is not backward compatible!!!)</li>
-
- <li>Added support for custom users predicate
- returning both boolean result code and possibly
- error message</li>
-
- <li>Documentation structure rework and update</li>
- </ul>
-
- <p>For a complete list of changes see the Test
- Library <a href=
- "../libs/test/doc/release_notes.html#v1_31_0">release
- notes</a>.</p>
- </li>
- </ul>
-
- <h4>Miscellaneous</h4>
-
- <ul>
- <li>Expanded testing and fixes for non-conforming
- compilers.</li>
-
- <li>Web site hosting now provided by <a href=
- "http://www.sourceforge.net/">SourceForge</a>.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.30.2">
- <h3>1.30.2 (19 Aug 2003)</h3>
-
- <ul>
- <li><a href="http://www.boost-consulting.com">Boost
- Consulting</a> is now hosting Boost CVS mirrors - see
- our <a href="getting_started.html#CVS">download
- page</a>.</li>
-
- <li>Backported changes to the <a href=
- "../libs/config/config.htm">config system</a>, to
- better handle new compiler releases.</li>
-
- <li>Bugs in regression reporting in subproject tests
- were fixed.</li>
-
- <li>Tests are now run in the context of the user's PATH
- environment settings</li>
-
- <li>msvc-stlport and intel-win32-stlport
- toolsets now build static libraries with multithreading
- enabled, to be compatible with the STLPort builds.</li>
-
- <li>intel-win32
- toolset now handles <code>wchar_t</code> correctly when
- intel is installed over msvc6.</li>
-
- <li>Backported fixes from the main trunk which prevent
- errors building the <a href=
- "../libs/test/doc/index.html">Boost.Test</a> library in
- its default configuration.</li>
-
- <li>Backported portability improvements for <a href=
- "../libs/utility/checked_delete.html">checked_delete</a>.</li>
-
- <li>Locale support for metrowerks (requiring a
- statically-linked runtime) is more uniformly
- handled.</li>
-
- <li>Backported <a href=
- "../libs/conversion/lexical_cast.htm">conversion/lexical_cast</a>'s
- <code>wchar_t</code> fixes from the main trunk.</li>
-
- <li>intel-linux-tools:
- added <code>rt</code> to FINDLIBS in order to make the
- <code>clock_gettime()</code> function available
- (backport of a patch in CVS HEAD).</li>
-
- <li><a href=
- "../tools/regression/index.htm">regression/compiler_status.cpp</a>:
- backported fixes in error log links generation.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.30.1">
- <h3>1.30.1 (4 Aug 2003; withdrawn 12 Aug 2003)</h3>
-
- <p>Fixes were made to the following libraries:</p>
-
- <ul>
- <li><span class="library">The <a href=
- "../libs/lambda/doc/index.html">Boost.Lambda</a></span>
- ..library is now usable with gcc-2.95.2</li>
-
- <li>
- <span class="library"><a href=
- "../libs/spirit/index.html">Boost.Spirit</a>:</span>
-
- <ul>
- <li>Fixed. Using MSVC++6 (SP5), calling the assign
- action with a string value on parsers using the
- file_iterator will not work.</li>
-
- <li>Fixed: using assign semantic action in a
- grammar with a multi_pass iterator adaptor applied
- to an std::istream_iterator resulted in a failure
- to compile under msvc 7.0.</li>
-
- <li>Fixed: There is a bug in the
- <code>range_run<CharT>::set(range<CharT>
- const& r)</code> function in
- "../boost/spirit/utility/impl/chset/range_run.ipp".</li>
-
- <li>Fixed: handling of trailing whitespace bug
- (ast_parse/pt_parse related)</li>
-
- <li>Fixed: comment_p and end of data bug</li>
-
- <li>Fixed: Most trailing space bug</li>
-
- <li>Fixed: <code>chset<>::operator
- ~(range<>)</code> bug, <code>operator
- &(chset<>, range<>)</code> bug,
- <code>operator &(range<>,
- chset<>)</code> bug</li>
-
- <li>Fixed: <code>impl::detach_clear</code> bug</li>
-
- <li>Fixed: mismatch closure return type bug</li>
-
- <li>Fixed: <code>access_node_d[]</code> and
- <code>access_match_d[]</code> iterator bugs</li>
-
- <li>Fixed a bug regarding thread safety of
- Phoenix/Spirit closures.</li>
- </ul>
- </li>
-
- <li><span class="library">The Boost Template <a href=
- "../libs/mpl/doc/index.html">Metaprogramming Library
- (MPL)</a>'s</span> ..typeof implementation is now
- compatible with Metrowerks CodeWarrior Pro8.</li>
-
- <li><span class="library"><a href=
- "../libs/function/index.html">Boost.Function</a>:</span>
- workaround for the new Borland patch (version 0x564)
- and MSVC++ .NET 2003.</li>
-
- <li><span class="library"><a href=
- "../libs/config/index.html">Boost.Config</a>, <a href=
- "../libs/format/doc/format.html">Boost.Format</a>, and
- <a href=
- "../libs/regex/index.html">Boost.Regex</a></span>
- ..have been adjusted to avoid warnings with GCC-3.3,
- and Boost.Format also now works with string types other
- than <code>std::string</code>.</li>
-
- <li>
- <span class="library"><a href=
- "../libs/smart_ptr/index.html">Smart
- Pointers</a>:</span>
-
- <ul>
- <li><code>checked_delete</code> now works on more
- platforms</li>
-
- <li>Compatibility with the SunPro compiler</li>
-
- <li>Added missing <code>#include</code>s.</li>
- </ul>
- </li>
-
- <li>
- <span class="library"><a href=
- "../libs/python/index.html">Boost.Python</a>:</span>
-
- <ul>
- <li>warning suppression for finicky compilers</li>
-
- <li>fixed a crashing bug in the
- <code>raw_function</code> facility when no keyword
- arguments were passed.</li>
-
- <li>Improved conversion of NULL
- <code>shared_ptr</code>s to Python.</li>
- </ul>
- </li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.30.0">
- <h3>1.30.0 (19 Mar 2003)</h3>
-
- <ul>
- <li><a href=
- "../libs/filesystem/doc/index.htm">Filesystem
- Library</a> added - Portable paths, iteration over
- directories, and other useful filesystem operations,
- from Beman Dawes.</li>
-
- <li><a href=
- "../libs/optional/doc/optional.html">Optional
- Library</a> added - A discriminated-union wrapper for
- optional values, from Fernando Cacciola.</li>
-
- <li><a href=
- "../libs/numeric/interval/doc/interval.htm">Interval
- Library</a> added - Extends the usual arithmetic
- functions to mathematical intervals, from Guillaume
- Melquiond, Hervé Brönnimann and Sylvain
- Pion.</li>
-
- <li>MPL added
- - Template metaprogramming framework of compile-time
- algorithms, sequences and metafunction classes, from
- Aleksey Gurtovoy.</li>
-
- <li><a href="../libs/spirit/index.html">Spirit
- Library</a> added - An LL (unlimited lookahead) parser
- framework that represents parsers directly as EBNF
- grammars in inlined C++ source code, complete with
- semantic actions, ASTs and much more, from Joel de
- Guzman and team.</li>
-
- <li><a href="../libs/smart_ptr/index.html">Smart
- Pointers Library</a> - cast functions are now spelled
- <a href=
- "../libs/smart_ptr/shared_ptr.htm#static_pointer_cast">static_pointer_cast</a>
- / <a href=
- "../libs/smart_ptr/shared_ptr.htm#dynamic_pointer_cast">
- dynamic_pointer_cast</a>; <a href=
- "../libs/smart_ptr/enable_shared_from_this.html">enable_shared_from_this</a>
- added; shared_ptr::shared_ptr(), shared_ptr::reset(),
- weak_ptr::weak_ptr(), weak_ptr::reset() no longer
- throw; <a href=
- "../libs/smart_ptr/shared_ptr.htm#get_deleter">get_deleter</a>
- added; weak_ptr::get() removed; make_shared is now
- spelled <a href=
- "../libs/smart_ptr/weak_ptr.htm#lock">weak_ptr::lock()</a>
- ; <a href=
- "../libs/smart_ptr/intrusive_ptr.html">intrusive_ptr
- documentation</a> added; some experimental undocumented
- shared_ptr features have been removed; a <a href=
- "../libs/smart_ptr/sp_techniques.html">page describing
- some smart pointer programming techniques</a> has been
- added.</li>
-
- <li><a href=
- "../libs/utility/assert.html">boost/assert.hpp</a>,
- <a href=
- "../libs/utility/current_function.html">boost/current_function.hpp</a>,
- <a href=
- "../libs/utility/throw_exception.html">boost/throw_exception.hpp</a>,
- <a href=
- "../libs/utility/checked_delete.html">boost/checked_delete.hpp</a>
- have been documented.</li>
-
- <li><a href=
- "../libs/date_time/doc/index.html">Date-Time
- Library</a> - several fixes and small additions
- including an interface change to partial_date. See the
- Date-Time Change History for more details.</li>
-
- <li><a href="../libs/function/index.html">Function
- Library</a> - added support for assignment to zero (to
- clear) and comparison against zero (to check if
- empty).</li>
-
- <li><a href=
- "../libs/utility/operators.htm#symmetry">Operators
- Library</a> - now takes advantage of named return value
- optimization (NRVO) when available, from Daniel
- Frey.</li>
-
- <li><a href="../status/compiler_status.html">Regression
- Tests</a> - Much expanded, plus a very nice <a href=
- "http://boost.sourceforge.net/regression-logs/">summary
- page</a> from Rene Rivera.</li>
-
- <li>
- Test Library -
- introduced following new facilities:
-
- <ul>
- <li>Automatic registration of unit tests</li>
-
- <li>XML log format</li>
-
- <li>XML report format</li>
-
- <li>BOOST_CHECK_NO_THROW test tool</li>
-
- <li>BOOST_BITWISE_CHECK test tool</li>
- </ul>
-
- <p>For a complete list of changes see the Test
- Library <a href=
- "../libs/test/doc/release_notes.html#v1_30_0">release
- notes</a>.</p>
- </li>
-
- <li>Many fixes and enhancements to other
- libraries.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.29.0">
- <h3>1.29.0 (10 Oct 2002)</h3>
-
- <ul>
- <li><a href=
- "../libs/date_time/doc/index.html">Date-Time
- Library</a> added - Dates, times, leap seconds,
- infinity, and more, from Jeff Garland.</li>
-
- <li><a href=
- "../libs/dynamic_bitset/dynamic_bitset.html">Dynamic
- Bitset</a> added - A runtime sized version of the
- <code>std::bitset</code> class from Jeremy Siek and
- Chuck Allison.</li>
-
- <li><a href="../libs/format/index.html">Format
- Library</a> added - Type-safe 'printf-like' format
- operations, from Samuel Krempp.</li>
-
- <li><a href="../libs/function/index.html">Function
- Library</a>: Major syntactic changes have been made.
- Some old syntax and little-used features have been
- deprecated (and will be removed shortly), and the
- syntax for the <code>boost::function</code> class
- template has been greatly improved on conforming
- compilers. Please see the compatibility note for more
- information.</li>
-
- <li><a href=
- "../libs/multi_array/doc/index.html">Multi-array
- Library</a> added - Multidimensional containers and
- adaptors for arrays of contiguous data, from Ron
- Garcia.</li>
-
- <li><a href=
- "../libs/preprocessor/index.html">Preprocessor
- Library</a>: Major upgrade, from Paul Mensonides.</li>
-
- <li><a href="../libs/python/doc/index.html">Python
- Library</a> - Version 2 is released, from Dave Abrahams
- and others. This is a major rewrite which works on many
- more compilers and platforms, with a completely new
- interface and lots of new features. Boost.Python v2
- requires Python 2.2 or later.</li>
-
- <li><a href="../libs/signals/doc/index.html">Signals
- Library</a> added - Managed signals & slots
- callback implementation, from Doug Gregor.</li>
-
- <li><a href="../libs/test/doc/index.html">Test
- Library</a>: Major new version, including full unit
- test capabilities, from Gennadiy Rozental.</li>
-
- <li><a href="../libs/numeric/ublas/doc/index.htm">uBLAS
- Library</a> added - Basic linear algebra for dense,
- packed and sparse matrices, from Joerg Walter and
- Mathias Koch.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.28.0">
- <h3>1.28.0 (15 May 2002)</h3>
-
- <ul>
- <li>The Boost mailing lists are now also accessible as
- <a href=
- "mailing_lists.htm#newsgroup">newsgroups</a>.</li>
-
- <li>A powerful <a href=
- "http://aspn.activestate.com/ASPN/Mail/Archives/boost/">
- mailing list archive</a> has been contributed by the
- <a href="http://aspn.activestate.com/ASPN">ActiveState
- Programmer Network</a>.</li>
-
- <li>
- <a href="../libs/lambda/doc/index.html">Lambda
- Library</a> added, from Jaakko Järvi and Gary
- Powell. Define small unnamed function objects at the
- actual call site:
-
- <blockquote>
- <p><code>for_each( a.begin(), a.end(), std::cout
- << _1 << ' ' );</code></p>
- </blockquote>
- </li>
-
- <li><a href="../libs/io/doc/ios_state.html">I/O State
- Saver Library added</a> - Save I/O state to prevent
- jumbled data, from Daryle Walker.</li>
-
- <li><a href="../libs/config/config.htm">Configuration
- Library</a>: User code should not use
- BOOST_NO_LIMITS.</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: Avoid compiler warnings.</li>
-
- <li><a href="../libs/smart_ptr/index.html">Smart
- Pointers Library</a>: Added shared_polymorphic_cast and
- shared_polymorphic_downcast.</li>
-
- <li><a href="../libs/function/index.html">Function
- Library</a>: Now supports function objects with the
- unary <code>&</code> operator overloaded.</li>
-
- <li><a href="../libs/utility/utility.htm">Utility
- Library</a>: Added <code>addressof()</code>
- function.</li>
-
- <li>The usual small fixes and tweaks.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.27.0">
- <h3>1.27.0 (5 Feb 2002)</h3>
-
- <ul>
- <li><a href="../libs/python/doc/index.html">Python
- Library</a>: Scott Snyder contributed inplace operator
- support.</li>
-
- <li><a href="../libs/integer/index.html">Integer
- Library</a>: Daryle Walker contributed enhancements to
- the <a href="../libs/integer/integer.htm">type
- selection templates</a>, and added new compile-time
- <a href="../libs/integer/doc/integer_mask.html">bit
- mask</a>, <a href=
- "../libs/integer/doc/static_log2.html">binary
- logarithm</a>, and <a href=
- "../libs/integer/doc/static_min_max.html">extrema</a>
- templates.</li>
-
- <li><a href="../libs/function/index.html">Function
- Library</a>: user may request that
- <code>boost::function</code> objects store a reference
- to a function object target instead of a copy, using
- ref
.
- Stateless objects are optimized so that they require no
- dynamic storage.</li>
-
- <li><a href=
- "../doc/html/boost_math/quaternions.html">Quaternions</a>:
- added support for GCC 2.95.x.</li>
-
- <li><a href=
- "../doc/html/boost_math/octonions.html">Octonions</a>: added
- support for GCC 2.95.x.</li>
-
- <li><a href="../libs/smart_ptr/index.html">Smart
- Pointers Library</a>: Peter Dimov contributed a new
- implementation that fixes some bugs and adds some
- features including <a href=
- "../libs/smart_ptr/compatibility.htm#threadsafe">thread
- safety</a> when manipulating the use count, <a href=
- "../libs/smart_ptr/shared_ptr.htm#constructors">custom
- delete functions</a>, a new <a href=
- "../libs/smart_ptr/weak_ptr.htm">weak_ptr</a>, and
- shared_static_cast and shared_dynamic_cast.</li>
-
- <li><a href=
- "../libs/preprocessor/doc/index.html">Preprocessor
- Library</a>: changed macro prefix from
- BOOST_PREPROCESSOR to BOOST_PP, added support for list
- data structure manipulation, added examples, made
- library ANSI C friendly, added generalized <a href=
- "../libs/preprocessor/doc/ref/for.html">repetition</a>
- and <a href=
- "../libs/preprocessor/doc/ref/while.html">iteration</a>
- primitives, improved reference manual.</li>
-
- <li><a href="../libs/thread/doc/index.html">Threads
- Library:</a> Mac Carbon implementation contributed by
- Mac Murrett.</li>
-
- <li>Minor fixes to many libraries.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.26.0">
- <h3>1.26.0 (30 Nov 2001)</h3>
-
- <ul>
- <li><a href=
- "../libs/math/doc/common_factor.html">Common Factor
- Library</a> added. Greatest common divisor and least
- common multiple, from Daryle Walker.</li>
-
- <li><a href=
- "../libs/preprocessor/doc/index.html">Preprocessor
- Library</a> added. Preprocessor metaprogramming tools
- including repetition and recursion, from Vesa
- Karvonen.</li>
-
- <li><a href=
- "../libs/utility/iterator_adaptors.htm">Iterator
- Adaptor Library</a>: Added <a href=
- "../libs/utility/generator_iterator.htm">generator
- iterator</a> adaptor, from Jens Maurer.</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: Removed iterator interface. Fixed
- overflows in uniform_int<>. Both changes cause
- random number sequences to differ compared to previous
- boost releases.</li>
-
- <li><a href=
- "../libs/utility/operators.htm">operators.hpp</a>:
- Improvements from Daryle and Helmut Ziesel</li>
-
- <li><a href=
- "../tools/build/index.html">Boost.Build:</a> Continuing
- improvements, including pre-built <a href=
- "../tools/build/index.html">Boost.Jam
- executables</a>.</li>
-
- <li>Minor fixes to a number of other libraries.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.25.1">
- <h3>1.25.1 (5 Nov 2001)</h3>
-
- <ul>
- <li><a href="../tools/build/index.html">Boost Build
- System</a>: Continued improvements.</li>
-
- <li><a href="../libs/config/config.htm">Config
- Library</a>: Continued refinements.</li>
-
- <li><a href="../libs/graph/doc/index.html">Graph
- Library</a>: Final cleanup for upcoming the Boost Graph
- Library book.</li>
-
- <li><a href="../libs/thread/doc/index.html">Thread
- Library</a>: Minor fixes - tests now pass on most Win32
- and POSIX systems including Linux and Solaris.
- Semaphore removed as too error prone.</li>
-
- <li><a href="../libs/function/index.html">Function
- Library</a>: direct support for member function
- pointers and documentation updates.</li>
-
- <li><a href=
- "http://groups.yahoo.com/group/Boost-Users">Boost-Users</a>
- mailing list has been created to address topics of
- interest to users of Boost libraries.</li>
-
- <li><a href=
- "http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl">
- Boost Wiki web</a> added. Provides a place for Boost
- users to openly discuss and document the use of Boost
- libraries. It is not officially maintained by Boost
- developers.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.25.0">
- <h3>1.25.0 (1 Oct 2001)</h3>
-
- <ul>
- <li><a href="../libs/thread/doc/index.html">Thread
- Library</a> added. Portable C++ multi-programming at
- last, from William Kempf.</li>
-
- <li><a href=
- "../libs/utility/base_from_member.html">Base From
- Member</a> added to <a href=
- "../libs/utility/utility.htm">Utility Library</a>.
- Support for the base from member idiom, from Daryle
- Walker.</li>
-
- <li>Bind and
- mem_fn added -
- Generalized binders for function/object/pointers and
- member functions, from Peter Dimov.</li>
-
- <li><a href="../libs/array/index.html">Array
- Library</a>: Minor updates, from Nico Josuttis.</li>
-
- <li><a href="../libs/config/config.htm">Config
- Library</a>: major redesign with much improved and
- automated configuration of Boost libraries for specific
- compilers, from John Maddock.</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: Fixed bug when copying normal_distribution
- and improved the documentation, from Michael Stevens
- and Jens Maurer.</li>
-
- <li><a href=
- "../doc/html/boost_math/math_special_functions.html">Special
- functions</a>, <a href=
- "../doc/html/boost_math/octonions.html">octonions</a>,
- <a href=
- "../doc/html/boost_math/quaternions.html">quaternions</a>
- updated, now useable with many more compilers, plus
- three new special functions, from Hubert Holin, Eric
- Ford, and others.</li>
-
- <li><a href="../libs/tokenizer/index.html">Tokenizer
- Library</a>: fixes/enhancements to
- escaped_list_separator based on empty fields and tokens
- comments from Johan Nillson and Jens Maurer.</li>
-
- <li>Coming Soon - A mailing list for Boost users!</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.24.0">
- <h3>1.24.0 (19 Aug 2001)</h3>
-
- <ul>
- <li><a href=
- "../libs/tuple/doc/tuple_users_guide.html">Tuple
- Library</a> added. Tuples ease definition of functions
- returning multiple values, and more, from Jaakko
- Järvi.</li>
-
- <li>Minor fixes to some other libraries.</li>
-
- <li><a href="../tools/build/index.html">Boost Build
- System</a> added. Preliminary release of an innovative
- build system for Boost libraries, from Dave Abrahams
- and others.</li>
-
- <li><a href="formal_review_schedule.html">Formal Review
- Schedule</a> added. Shows current, future, and recent
- past review dates.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.23.0">
- <h3>1.23.0 (6 Jul 2001)</h3>
-
- <ul>
- <li>Any Library
- added. Safe, generic container for single values of
- different value types, from Kevlin Henney.</li>
-
- <li><a href="../libs/function/index.html">Function
- Library</a> added. Function object wrappers for
- deferred calls or callbacks, from Doug Gregor.</li>
-
- <li><a href="../libs/tokenizer/index.html">Tokenizer
- Library</a> added. Break a string into a series of
- tokens, from John Bandela.</li>
-
- <li><a href=
- "../doc/html/boost_math/math_special_functions.html">Special
- functions</a>, <a href=
- "../doc/html/boost_math/octonions.html">octonions</a>,
- <a href=
- "../doc/html/boost_math/quaternions.html">quaternions</a>
- added, from Hubert Holin.</li>
-
- <li><a href="../libs/smart_ptr/smart_ptr.htm">Smart
- Pointer Library</a>: shared_ptr polymorphic pointers
- now work on more broken compilers.</li>
-
- <li>IBM/Aix Compiler status table contributed by Toon
- Knapen.</li>
-
- <li>Minor fixes to a number of other libraries.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.22.0">
- <h3>1.22.0 (25 May 2001)</h3>
-
- <ul>
- <li>CRC Library
- added. Compute cyclic redundancy codes from Daryle
- Walker.</li>
-
- <li><a href="../libs/graph/doc/index.html">Graph
- Library</a>: Minor fixes.</li>
-
- <li><a href=
- "../libs/integer/integer_traits.html">Integer
- Traits</a>: added wchar_t specialization, minor
- portability fixes.</li>
-
- <li><a href="../libs/regex/index.html">Regex
- Library</a>: Minor portability fixes.</li>
-
- <li><a href="../libs/smart_ptr/smart_ptr.htm">Smart
- Pointer Library</a>: fixed bugs, tightened
- requirements, added examples.</li>
-
- <li><a href="../libs/utility/utility.htm">Utility
- Library</a>: added checked_delete() and
- checked_array_delete() functions.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.21.2">
- <h3>1.21.2 (24 Apr 2001)</h3>
-
- <ul>
- <li><a href=
- "../libs/compatibility/index.html">Compatibility
- Library</a> added: Help for non-conforming standard
- libraries missing CXX headers from Ralf
- Grosse-Kunstleve, and help for missing standard library
- <limits> header from Jens Maurer. (These are
- unreviewed implementation libraries, treated as
- maintenance steps only.)</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: Split into separate headers, updated
- documentation, added lagged_fibonacci generator.</li>
-
- <li><a href="../libs/integer/index.html">Integer
- Library</a>: Minor portability update.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a>: Changed algorithm interfaces to use named
- parameters technique. Added graph isomorphism
- algorithm.</li>
-
- <li>Download refinements - files now available from
- either FTP or web server.</li>
-
- <li><a href=
- "http://sourceforge.net/tracker/?group_id=7586">Tracker</a>
- Added: View and submit bug, support, and feature
- requests.</li>
-
- <li>Minor portability fixes in several other
- libraries.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.21.1">
- <h3>1.21.1 (14 Mar 2001)</h3>
-
- <ul>
- <li>New download page. The .zip and .tar.gz files now
- live on the SourceForge ftp site.</li>
-
- <li><a href="../libs/graph/doc/index.html">Graph
- Library</a>: Minor docs fixes.</li>
-
- <li><a href="../libs/python/doc/index.html">Python
- Library</a>: Minor docs fixes.</li>
-
- <li><a href="../libs/regex/index.html">Regex
- Library</a>: Minor portability fixes.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.21.0">
- <h3>1.21.0 (9 Mar 2001)</h3>
-
- <ul>
- <li><a href=
- "../libs/utility/iterator_adaptors.htm">Iterator
- Adaptor Library</a> added. Adapt a base type into a
- standard conforming iterator, and more, from Dave
- Abrahams, Jeremy Siek, and John Potter.</li>
-
- <li><a href="../libs/pool/doc/index.html">Pool
- Library</a> added. Memory pool management from Steve
- Cleary.</li>
-
- <li><a href="../libs/test/doc/index.html">Test
- Library</a> added. Support for program testing and
- execution from Beman Dawes.</li>
-
- <li><a href="generic_programming.html">Generic
- Programming Techniques</a> page added, contributed by
- Dave Abrahams.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a>: Updated use of iterator adaptors. Changed
- <code>operator ==</code> for
- <code>adjacency_list::edge_descriptor</code> to improve
- semantics for multigraphs. Moved
- <code>adjacency_iterator_generator</code> from
- namespace <code>detail</code> to <code>boost</code> and
- added <a href=
- "../libs/graph/doc/adjacency_iterator.html">documentation</a>.
- Renamed <code>dynamic_components()</code> to <a href=
- "../libs/graph/doc/incremental_components.html"><code>incremental_components()</code></a>,
- better matching graph literature terminology. Cleaned
- up interface of <a href=
- "../libs/graph/doc/connected_components.html"><code>connected_components()</code></a>
- and created separate <a href=
- "../libs/graph/doc/strong_components.html"><code>strong_components()</code></a>
- function using Tarjan's more efficient algorithm. Fixed
- documentation figures for <a href=
- "../libs/graph/doc/adjacency_list.html"><code>adjacency_list</code></a>
- and <a href=
- "../libs/graph/doc/adjacency_matrix.html"><code>adjacency_matrix</code></a>.
- Added docs for <a href=
- "../libs/graph/doc/cuthill_mckee_ordering.html"><code>cuthill_mckee_ordering()</code></a>
- algorithm.</li>
-
- <li><a href="../libs/python/doc/index.html">Python
- Library</a> upgraded. Better compatibility with Python
- 2.0, NULL pointers and smart-pointers get converted
- to/from python None, massive documentation
- review/revision.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a>: Minor fixes for Unicode
- platforms.</li>
-
- <li><a href="../libs/type_traits/index.html">Type
- Traits Library</a> upgraded: Major revision.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.20.2">
- <h3>1.20.2 (10 Feb 2001)</h3>
-
- <ul>
- <li>Array traits: minor portability fix.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> - Changes to <a href=
- "../libs/graph/doc/breadth_first_search.html"><code>breadth_first_search()</code></a>
- re: <a href=
- "../libs/graph/doc/BFSVisitor.html">BFSVisitor</a>,
- added max flow algorithms <a href=
- "../libs/graph/doc/edmunds_karp_max_flow.html"><code>edmunds_karp_max_flow()</code></a>
- and <a href=
- "../libs/graph/doc/push_relabel_max_flow.html"><code>push_relabel_max_flow()</code></a>,
- added <a href=
- "../libs/graph/doc/adjacency_matrix.html"><code>adjacency_matrix</code></a>
- graph class, added <a href=
- "../libs/graph/doc/filtered_graph.html"><code>filtered_graph</code></a>
- adaptor</li>
-
- <li><a href="../libs/integer/index.html">Integer
- Library:</a> minor fixes to integer.hpp and
- integer_test.cpp</li>
-
- <li><a href="microsoft_vcpp.html">Portability Hints:
- Microsoft Visual C++</a> added.</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: Minor portability fixes</li>
-
- <li><a href="../libs/rational/index.html">Rational
- Number Library</a>: documentation updates, efficiency
- improvements, co-operates with user-defined types,
- regression tests</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a>: minor updates.</li>
-
- <li><a href="../libs/smart_ptr/index.html">Smart
- Pointer Library</a>: shared_ptr example added.</li>
-
- <li><a href="../libs/timer/index.html">Timer
- Library</a>: changed to an all inline
- implementation.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.20.1">
- <h3>1.20.1 (10 Jan 2001)</h3>
-
- <ul>
- <li><a href=
- "../boost/compressed_pair.hpp">compressed_pair.hpp</a>
- minor update fixes test failures of other libraries
- under VC++.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> minor updates.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a> minor updates.</li>
-
- <li>Minor website fixes including missing files in
- boost_all.zip.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.20.0">
- <h3>1.20.0 (6 Jan 2001)</h3>
-
- <ul>
- <li><a href="../libs/conversion/index.html">Conversion
- Library</a> added - <a href=
- "../libs/conversion/cast.htm">cast</a> and <a href=
- "../libs/conversion/lexical_cast.htm">lexical_cast</a>
- headers from Dave Abrahams and Kevlin Henney.</li>
-
- <li>Web site moved to a larger host after the old ISP
- collapsed unexpectedly.</li>
-
- <li>Regression tests now include execution testing. See
- <a href="../status/compiler_status.html">Compiler
- Status</a>.</li>
-
- <li><a href="discussion_policy.htm">Discussion
- Policy</a> page added.</li>
-
- <li><a href="../libs/array/index.html">Array
- Library</a> minor documentation improvements.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> minor updates.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a> minor updates.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.19.0">
- <h3>1.19.0 (10 Dec 2000)</h3>
-
- <ul>
- <li><a href=
- "../libs/concept_check/concept_check.htm">Concept Check
- Library</a> added - tools for generic programming from
- Jeremy Siek.</li>
-
- <li><a href="../libs/python/doc/index.html">Python
- Library</a> added - reflects C++ classes and functions
- into Python, from Dave Abrahams.</li>
-
- <li><a href=
- "../libs/static_assert/static_assert.htm">Static Assert
- Library</a> added - compile time assertions from John
- Maddock</li>
-
- <li><a href=
- "../libs/property_map/property_map.html">Property Map
- Concepts</a> added - interfaces which map key objects
- to value objects from Jeremy Siek.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> minor updates.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a> minor updates.</li>
-
- <li><a href="lib_guide.htm">Library Requirements and
- Guidelines</a> - directory name policy added.</li>
-
- <li>FAQ updated.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.18.3">
- <h3>1.18.3 (18 Nov 2000)</h3>
-
- <ul>
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> minor fixes and additions.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a> minor fixes.</li>
-
- <li>cast.hpp Borland
- compiler fixes.</li>
-
- <li>cstdint.hpp
- changed to no longer expose names to the global
- namespace.</li>
-
- <li>BeOS5/Intel compiler status contributed by John
- Maddock.</li>
-
- <li><a href="../status/compiler_status.html">Compiler
- Status</a> added two additional test programs.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.18.2">
- <h3>1.18.2 (3 Nov 2000)</h3>
-
- <ul>
- <li><a href="../libs/conversion/cast.htm">Cast
- Library</a> Fix numeric_cast<> bugs with floating
- types.</li>
-
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> minor fixes.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a> minor fixes.</li>
-
- <li><a href="../libs/config/index.html">Configuration
- Header</a> more fixes for broken compilers.</li>
-
- <li>Boost Header Dependencies page added.</li>
-
- <li>Terminology change: Several headers previously
- lumped together as a "utility" library are now
- considered separate libraries. For historical reasons,
- their non-header files still live in the "utility"
- sub-directory.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.18.1">
- <h3>1.18.1 (15 Oct 2000)</h3>
-
- <ul>
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a>, <a href="../libs/random/index.html">Random
- Number Library</a>, and <a href=
- "../libs/regex/index.html">Regular Expression
- Library</a>: Minor fixes.</li>
-
- <li><a href="../libs/config/index.html">Configuration
- Header</a> additions for various compiler foibles.</li>
-
- <li><a href="borland_cpp.html">Portability Hints:
- Borland C++ 5.5.1</a> from Jens Maurer added.</li>
-
- <li><a href="../status/compiler_status.html">Compiler
- Status</a> updated for latest versions of several
- compilers.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.18.0">
- <h3>1.18.0 (28 Sep 2000)</h3>
-
- <ul>
- <li>Preliminary release of two important new libraries:
-
- <ul>
- <li><a href=
- "../libs/graph/doc/table_of_contents.html">Graph
- Library</a> - Generic graph components and
- algorithms from Jeremy Siek and a University of
- Notre Dame team.</li>
-
- <li><a href="../libs/regex/index.html">Regular
- Expression Library</a> - Text pattern matching in
- all its glory from John Maddock.</li>
- </ul>
- </li>
-
- <li>Other changes:
-
- <ul>
- <li><a href="../libs/array/index.html">Array
- Library</a> improvements reflecting formal review
- comments.</li>
-
- <li><a href=
- "../boost/functional.hpp">functional.hpp</a>
- compiler workarounds added.</li>
-
- <li><code>tie() function template</code> added to
- utility.hpp for easier handling of
- std::pair<> return values.</li>
-
- <li><a href="../libs/integer/index.html">Integer
- Library</a> improved handling of 64-bit
- integers.</li>
-
- <li>Minor web site page updates.</li>
- </ul>
- </li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.17.0">
- <h3>1.17.0 (3 Aug 2000)</h3>
-
- <ul>
- <li><a href="../libs/array/index.html">Array
- Library</a> added - An STL compliant container wrapper
- for arrays of constant size from Nicolai Josuttis.</li>
-
- <li>array traits header renamed array_traits.hpp (was
- array.hpp).</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: more minor changes to support more
- compilers.</li>
-
- <li><a href="../libs/smart_ptr/index.html">Smart
- Pointer Library</a>: performance reducing
- exception-specifications removed.</li>
-
- <li>Compiler and test program fixes for call_traits,
- compressed_pair, and type_traits.</li>
-
- <li>Updated cast.hpp to
- clear compiler warning messages.</li>
-
- <li>Linux <a href=
- "../status/compiler_status.html">Compiler Status</a>
- added.</li>
-
- <li>Boost source code now lives in a publicly
- accessible Concurrent Versions System (CVS)
- repository.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.16.1">
- <h3>1.16.1 (5 Jul 2000)</h3>
-
- <ul>
- <li>Integer
- library: fixed <a href=
- "../boost/cstdint.hpp">cstdint.hpp</a> bug, added
- <a href=
- "../libs/integer/cstdint_test.cpp">cstdint_test.cpp</a>,
- updated <a href=
- "../libs/integer/cstdint.htm">docs</a>.</li>
-
- <li><a href="../libs/random/index.html">Random Number
- Library</a>: minor fixes to <a href=
- "../boost/random.hpp">random.hpp</a> and <a href=
- "../libs/random/random_test.cpp">random_test.cpp</a> to
- support more compilers.</li>
-
- <li>Updated cast.hpp
- with more Microsoft compiler workarounds.</li>
-
- <li>Updated <a href=
- "../libs/utility/call_traits.htm">call_traits docs</a>,
- added <a href=
- "../libs/utility/call_traits_test.cpp">call_traits_test.cpp</a>.</li>
-
- <li>Cleanup and bug fixes for <a href=
- "../boost/operators.hpp">operators.hpp</a> and <a href=
- "../libs/utility/operators_test.cpp">operators_test.cpp</a>.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.16.0">
- <h3>1.16.0 (28 Jun 2000)</h3>
-
- <ul>
- <li>Added <a href=
- "../libs/functional/index.html">Functional Library</a>
- - Enhanced function object adaptors from Mark
- Rodgers.</li>
-
- <li>Added missing <a href=
- "../libs/random/index.html">Random Number Library</a>
- files.</li>
-
- <li>Updated <a href=
- "../libs/utility/operators.htm">operators docs</a> and
- <a href=
- "../boost/operators.hpp">operators.hpp</a>.</li>
-
- <li>New <a href=
- "../boost/iterator.hpp">iterator.hpp</a> header.</li>
-
- <li>Minor <a href=
- "../boost/rational.hpp">rational.hpp</a>, <a href=
- "../libs/rational/rational_example.cpp">rational_example.cpp</a>,
- and <a href=
- "../libs/integer/integer_traits_test.cpp">integer_traits_test.cpp</a>
- changes to support more compilers.</li>
-
- <li>Revised cast.hpp:
- removed implicit_cast, plus fixes for broken
- compilers.</li>
-
- <li>Minor <a href=
- "../boost/smart_ptr.hpp">smart_ptr.hpp</a> workaround
- for some GCC builds.</li>
-
- <li>Several <a href=
- "../boost/config.hpp">config.hpp</a> changes for
- Microsoft, Intel, and other compilers.</li>
-
- <li>Added <a href=
- "../libs/config/index.html">Configuration Header</a>
- page and test program.</li>
-
- <li>Added Experimental <a href=
- "../status/compiler_status.html">Compiler Status</a>
- page showing what library works with which
- compilers.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1.15.1">
- <h3>1.15.1 (21 Jun 2000)</h3>
-
- <p>Fixes to cast.hpp and
- operators
- fix. Minor additions to <a href=
- "../boost/config.hpp">config.hpp</a> for Microsoft
- compilers. The 1.15.0 operators changes seem to have
- introduced incompatibilities. We are working on fixing
- them, and have started to build a regression test to
- prevent similar future problems.</p>
- </div>
-
- <div class="history_item" id="v1.15.0">
- <h3>1.15.0 (17 Jun 2000)</h3>
-
- <p><a href="../libs/random/index.html">Random Number
- Library</a> from Jens Maurer added. Updated utility
- library <a href=
- "../libs/utility/operators.htm">operators</a> eliminates
- code bloat. Minor additions to <a href=
- "../boost/config.hpp">config.hpp</a> and <a href=
- "../boost/cast.hpp">cast.hpp</a> for Microsoft
- compilers.</p>
- </div>
-
- <div class="history_item" id="v1.14.3">
- <h3>1.14.3 (29 May 2000)</h3>
-
- <p>Minor additions to <a href=
- "../boost/config.hpp">config.hpp</a> for Borland
- compilers. Minor fix to <tt>type_traits</tt> example.
- Minor web site fixes. <a href=
- "formal_review_process.htm">Library Formal Review
- Process</a> page added.</p>
- </div>
-
- <div class="history_item" id="v1.14.2">
- <h3>1.14.2 (9 May 2000)</h3>
-
- <p>No libraries updated. <a href="lib_guide.htm">Library
- Requirements and Guidelines</a> expanded, <a href=
- "submission_process.htm">Library Submission Process</a>
- added.</p>
- </div>
-
- <div class="history_item" id="v1.14.1">
- <h3>1.14.1 (17 Mar 2000)</h3>
-
- <p>Minor fix to <a href=
- "../boost/rational.hpp">rational.hpp</a>. Minor
- documentation changes to the <a href=
- "../libs/smart_ptr/index.html">Smart Pointer</a> Library
- and <a href=
- "../libs/utility/call_traits.htm">call_traits</a>,
- <a href=
- "../libs/utility/compressed_pair.htm">compressed_pair</a>,
- and type_traits. Updated <a href="lib_guide.htm">Library
- Guidelines</a> and <a href=
- "../people/people.htm">People</a> page.</p>
- </div>
-
- <div class="history_item" id="v1.14.0">
- <h3>1.14.0 (5 Mar 2000)</h3>
-
- <p><a href="../libs/integer/index.html">Integer
- Library</a> status upgraded after removing bin_bun.hpp.
- The "Experimental" library category has been removed; the
- boost files/vault now serves the purpose. Minor fix to
- smart_ptr.hpp line
- endings.</p>
- </div>
-
- <div class="history_item" id="v1.13.0">
- <h3>1.13.0 (29 Feb 2000)</h3>
-
- <p>Adds <a href="../libs/utility/index.html">Utility
- Library</a> <a href=
- "../libs/type_traits/index.html">type_traits</a>,
- call_traits,
- and <a href=
- "../libs/utility/compressed_pair.htm">compressed_pair</a>
- headers from John Maddock, Steve Cleary and Howard
- Hinnant.</p>
- </div>
-
- <div class="history_item" id="v1.12.0">
- <h3>1.12.0 (23 Feb 2000)</h3>
-
- <p>Adds a <a href=
- "../libs/integer/integer_traits.html">integer_traits</a>
- header from Jens Maurer to the <a href=
- "../libs/integer/index.html">Integer Library</a>.</p>
- </div>
-
- <div class="history_item" id="v1.11.2">
- <h3>1.11.2 (21 Feb 2000)</h3>
-
- <p><a href="../libs/smart_ptr/smarttests.htm">Smart
- pointer timings</a> added (thanks to Gavin Collings).
- Minor fix to the <del><tt>min_rand</tt></del> sample
- program. Minor fixes to <a href=
- "../boost/config.hpp">config.hpp</a>.</p>
- </div>
-
- <div class="history_item" id="v1.11.1">
- <h3>1.11.1 (2 Feb 2000)</h3>
-
- <p>Minor fix to cast.hpp
- (thanks to Doncho Angelov).</p>
- </div>
-
- <div class="history_item" id="v1.11.0">
- <h3>1.11.0 (1 Feb 2000)</h3>
-
- <p>Added <a href="../libs/rational/index.html">Rational
- Number Library</a>. Minor fixes to <a href=
- "../boost/cast.hpp">cast.hpp</a>, <a href=
- "../boost/config.hpp">config.hpp</a>, <a href=
- "../boost/smart_ptr.hpp">smart_ptr.hpp</a>, <a href=
- "../boost/utility.hpp">utility.hpp</a>, and to the
- <del><tt>min_rand</tt></del> sample programs. Minor site
- cleanup (thanks to Paul Baxter).</p>
- </div>
-
- <div class="history_item" id="v1.10.4">
- <h3>1.10.4 (31 Dec 1999)</h3>
-
- <p>Minor fixes to <a href=
- "../boost/smart_ptr.hpp">smart_ptr.hpp</a> and <a href=
- "../libs/conversion/cast.htm">cast documentation</a>.</p>
- </div>
-
- <div class="history_item" id="v1.10.3">
- <h3>1.10.3 (30 Dec 1999)</h3>
-
- <p>Minor fixes to the <del>compose library
- examples</del>, <a href=
- "../libs/utility/operators.htm">operators
- documentation</a>, <a href=
- "../boost/operators.hpp">operators.hpp</a>, <a href=
- "../libs/conversion/cast.htm">cast documentation</a>,
- cast.hpp, <a href=
- "../boost/config.hpp">config.hpp</a>, and <a href=
- "../boost/smart_ptr.hpp">smart_ptr.hpp</a>. This is the
- first release with a version number. The version
- numbering scheme is
- <var>xxx</var>.<var>yyy</var>.<var>zzz</var>.</p>
-
- <blockquote>
- <p><var>xxx</var> = Major version<br />
- <var>yyy</var> = New library or feature added<br />
- <var>zzz</var> = Bug fixes only</p>
- </blockquote>
- </div>
-
- <div class="history_item" id="v1999-12-14">
- <h3>14 Dec 1999</h3>
-
- <p>Operators.hpp
- documentation
- improved.</p>
- </div>
-
- <div class="history_item" id="v1999-12-13">
- <h3>13 Dec 1999</h3>
-
- <p>Added iterator operators and helpers to <a href=
- "../libs/utility/operators.htm">header operators.hpp</a>,
- together with an iterator test program. This header is
- maturing into something really useful for building
- arithmetic or iterator user-defined types, so look it
- over even if you browsed one of the earlier versions.</p>
- </div>
-
- <div class="history_item" id="v1999-12-11">
- <h3>11 Dec 1999</h3>
-
- <p>Added next() and prior() to <a href=
- "../libs/utility/utility.htm">header utility.hpp</a>.</p>
- </div>
-
- <div class="history_item" id="v1999-12-08">
- <h3>8 Dec 1999</h3>
-
- <p>Minor improvements to the <a href=
- "../libs/smart_ptr/index.html">smart pointer</a> library:
- <code>operator ==</code>, <code>operator !=</code>, and
- specializations for <code>std::swap</code> and
- <code>std::less</code> now provided.</p>
- </div>
-
- <div class="history_item" id="v1999-11-18">
- <h3>18 Nov 1999</h3>
-
- <p>Minor improvements made to the <a href=
- "../libs/utility/operators.htm">Operator
- templates</a>.</p>
- </div>
-
- <div class="history_item" id="v1999-11-15">
- <h3>15 Nov 1999</h3>
-
- <p><a href="../libs/utility/operators.htm">Operator
- templates</a> have been added to the <a href=
- "../libs/utility/index.html">utility</a> library.</p>
- </div>
-
- <div class="history_item" id="v1999-10-11">
- <h3>11 Oct 1999</h3>
-
- <p>Minor <a href="../libs/smart_ptr/index.html">smart
- pointer</a> library and <a href=
- "../boost/config.hpp">config.hpp</a> changes to improve
- portability.</p>
- </div>
-
- <div class="history_item" id="v1999-09-26">
- <h3>26 Sep 1999</h3>
-
- <p>Minor updates to several libraries:</p>
-
- <ul>
- <li><code>polymorphic_downcast<></code> in the
- utility
- library cast.hpp header
- now works for multiple inheritance cases.</li>
-
- <li><code>shared_ptr<></code> and
- <code>shared_array<></code> <code>swap()</code>
- functions added in the <a href=
- "../libs/smart_ptr/index.html">smart pointer</a>
- library.</li>
-
- <li>timer.hpp
- <code>elapsed_max()</code> and
- <code>elapsed_min()</code> functions added to the
- timer
- library.</li>
-
- <li>
- integer
- library <del>bin_ubin.hpp</del> changes to eliminate
- compiler warning messages.
- </li>
-
- <li>config.hpp minor
- changes to aid library developers. No impact on library
- users.</li>
- </ul>
- </div>
-
- <div class="history_item" id="v1999-09-03">
- <h3>3 Sep 1999</h3>
-
- <p>The cast functions in the <a href=
- "../libs/utility/index.html">utility</a> library were
- considerably simplified.</p>
- </div>
-
- <div class="history_item" id="v1999-09-01-b">
- <h3>1 Sep 1999</h3>
-
- <p>The cast functions initially in <a href=
- "../boost/utility.hpp">utility.hpp</a> have been moved to
- cast.hpp, still in the
- utility
- library.</p>
- </div>
-
- <div class="history_item" id="v1999-09-01-a">
- <h3>1 Sep 1999</h3>
-
- <p>The category "Experimental" has been added to the
- library page. The
- integer library
- is the first entry.</p>
- </div>
- <!-- For new entries, add a 'div' of class 'history_item' and id of the appropriate version. -->
-
- <p>...And the remainder are lost to the mists of time (for
- now, anyway)....</p>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <div id="footer">
- <p id="revised">Revised $Date$</p>
- <p id="copyright">Copyright Daryle Walker 2004–2005.
- Copyright Rene Rivera 2005.</p>
-
- <p id="license">Distributed under the Boost Software License,
- Version 1.0. (See accompanying file <a href=
- "../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or a copy at <<a href=
- "http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt>>.)</p>
- </div>
- </div>
- </div>
- </div>
-</body>
-</html>
Deleted: branches/proto/v3/more/w3c_valid_css.png
==============================================================================
Binary file. No diff available.
Deleted: branches/proto/v3/more/w3c_valid_xhtml10.png
==============================================================================
Binary file. No diff available.
Modified: branches/proto/v3/status/explicit-failures-markup.xml
==============================================================================
--- branches/proto/v3/status/explicit-failures-markup.xml (original)
+++ branches/proto/v3/status/explicit-failures-markup.xml 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1535,7 +1535,7 @@
<mark-expected-failures>
<test name="hash_long_double_test"/>
<toolset name="gcc-3.4.3_sunos"/>
- <toolset name="acc-pa_risc"/>
+ <toolset name="*pa_risc"/>
<note author="Daniel James">
This platform has poor support for <code>long double</code> so
the hash function perform poorly for values out of the range
@@ -5434,6 +5434,27 @@
</note>
</mark-expected-failures>
<mark-expected-failures>
+ <test name="value_init_test"/>
+ <toolset name="gcc-3.3*"/>
+ <toolset name="gcc-3.4*"/>
+ <toolset name="gcc-4.0*"/>
+ <toolset name="gcc-4.1*"/>
+ <toolset name="gcc-4.2*"/>
+ <toolset name="gcc-mingw-3.4*"/>
+ <note author="Niels Dekker">
+ This test typically fails on GCC, because of an issue described by
+ <a href="http://svn.boost.org/trac/boost/ticket/1491">
+ ticket #1491, "value_initialized leaves data uninitialized,
+ when using GCC"</a>. The issue is caused by some GCC compiler bugs:
+ <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111">
+ Value-initialization of POD base class doesn't initialize members</a>,
+ reported by Jonathan Wakely, and
+ <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916">
+ Default constructor fails to initialize array members</a>,
+ reported by Michael Elizabeth Chastain.
+ </note>
+ </mark-expected-failures>
+ <mark-expected-failures>
<test name="operators_test"/>
<toolset name="gcc-3.4.5_linux_x86_64"/>
<note author="Vladimir Prus">
Modified: branches/proto/v3/tools/build/v2/build/generators.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/build/generators.jam (original)
+++ branches/proto/v3/tools/build/v2/build/generators.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -903,8 +903,6 @@
}
}
-
-
rule construct-types ( project name ? : target-types + :
property-set : sources + )
{
@@ -1188,27 +1186,6 @@
decrease-indent ;
.construct-stack = $(.construct-stack[2-]) ;
-
-
+
return $(result) ;
}
-
-# Given 'result', obtained from some generator or
-# generators.construct, adds 'raw-properties' as usage requirements
-# to it. If result already contains usage requirements -- that is
-# the first element of result of an instance of the property-set class,
-# the existing usage requirements and 'raw-properties' are combined.
-rule add-usage-requirements ( result * : raw-properties * )
-{
- if $(result)
- {
- if [ class.is-a $(result[1]) : property-set ]
- {
- return [ $(result[1]).add-raw $(raw-properties) ] $(result[2-]) ;
- }
- else
- {
- return [ property-set.create $(raw-properties) ] $(result) ;
- }
- }
-}
Modified: branches/proto/v3/tools/build/v2/doc/src/reference.xml
==============================================================================
--- branches/proto/v3/tools/build/v2/doc/src/reference.xml (original)
+++ branches/proto/v3/tools/build/v2/doc/src/reference.xml 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -462,13 +462,35 @@
<term><literal>link</literal></term>
<listitem>
+
+ <para><emphasis role="bold">Allowed values:</emphasis> <literal>shared</literal>,
+ <literal>static</literal></para>
+
<simpara>
A feature that controls how libraries are built.
</simpara>
+ </listitem></varlistentry>
+
+ <varlistentry id="bbv2.advanced.builtins.features.runtime-link">
+ <indexterm><primary>runtime linking</primary></indexterm>
+ <term><literal>runtime-link</literal></term>
+
+ <listitem>
<para><emphasis role="bold">Allowed values:</emphasis> <literal>shared</literal>,
<literal>static</literal></para>
- </listitem></varlistentry>
+
+ <simpara>
+ Controls if a static or shared C/C++ runtime should be used. There
+ are some restrictions how this feature can be used, for example
+ on some compilers an application using static runtime should
+ not use shared libraries at all, and on some compilers,
+ mixing static and shared runtime requires extreme care. Check
+ your compiler documentation for more details.
+ </simpara>
+
+ </listitem>
+ </varlistentry>
<varlistentry><term><literal>source</literal></term>
@@ -678,9 +700,50 @@
release variant with debugging information.</para>
</listitem>
</varlistentry>
-
+ <varlistentry><term><literal>architecture</literal></term>
+ <listitem>
+ <para>The <literal>architecture</literal> features specifies
+ the general processor familty to generate code for.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term><literal>instruction-set</literal></term>
+ <indexterm><primary>instruction-set</primary></indexterm>
+ <listitem>
+ <para>Allowed values for this feature depend on used toolset.</para>
+
+ <para>The <literal>instruction-set</literal> specifies for which
+ specific instruction set the code should be generated. The
+ code in general might not run on processors with older/different
+ instruction sets.</para>
+
+ <para>While Boost.Build allows a large set of possible values
+ for this features, whether a given value works depends on which
+ compiler you use. Please see
+ <xref linkend="bbv2.reference.tools.compilers"/> for details.
+ </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term><literal>address-model</literal></term>
+ <indexterm><primary>64-bit compilation</primary></indexterm>
+ <listitem>
+ <para><emphasis role="bold">Allowed values:</emphasis> <literal>32</literal>, <literal>64</literal>.</para>
+
+ <para>The <literal>address-model</literal> specifies if 32-bit or
+ 64-bit code should be generated by the compiler. Whether this feature
+ works depends on the used compiler, it's version, how the compiler
+ is configured, and the values of the <literal>architecture</literal>
+ <literal>instruction-set</literal>
+ features. Please see <xref linkend="bbv2.reference.tools.compilers"/>
+ for details.</para>
+ </listitem>
+ </varlistentry>
+
</variablelist>
</section>
@@ -770,6 +833,15 @@
</variablelist>
+ <indexterm><primary>64-bit compilation</primary>
+ <secondary>gcc</secondary></indexterm>
+
+ In order to compile 64-bit applications, you have to specify
+ <code>address-model=64</code>, and the <code>instruction-set</code>
+ feature should refer to a 64 bit processor. Currently, those
+ include <literal>nocona</literal>, <literal>opteron</literal>,
+ <literal>athlon64</literal> and <literal>athlon-fx</literal>.
+
</section>
@@ -887,6 +959,70 @@
</variablelist>
+
+ <section>
+ <title>64-bit support</title>
+
+ <indexterm><primary>64-bit compilation</primary>
+ <secondary>Microsoft Visual Studio</secondary></indexterm>
+
+ <para>Starting with version 8.0, Microsoft Visual Studio
+ can generate binaries for 64-bit processor, both 64-bit
+ flavours of x86 (codenamed AMD64/EM64T), and
+ Itanium (codenamed IA64). In addition, compilers that are
+ itself run in 64-bit mode, for better performance, are provided.
+ The complete list of compiler configurations are as follows
+ (we abbreviate AMD64/EM64T to just AMD64):</para>
+ <itemizedlist>
+ <listitem><para>32-bit x86 host, 32-bit x86 target</para>
+ </listitem>
+ <listitem><para>32-bit x86 host, 64-bit AMD64 target</para>
+ </listitem>
+ <listitem><para>32-bit x86 host, 64-bit IA64 target</para>
+ </listitem>
+ <listitem><para>64-bit AMD64 host, 64-bit AMD64 target</para>
+ </listitem>
+ <listitem><para>64-bit IA64 host, 64-bit IA64 target</para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The 32-bit host compilers can be always used, even on 64-bit Windows.
+ On the contrary, 64-bit host compilers require both 64-bit
+ host processor and 64-bit Windows, but can be faster. By default,
+ only 32-bit host, 32-bit target compiler is installed, and additional
+ compilers should be installed explicitly.
+ </para>
+
+ <para>To use 64-bit compilation you should:</para>
+ <orderedlist>
+ <listitem><para>Configure you compiler as usual. If you provide
+ a path to the compiler explicitly, provide the path to the
+ 32-bit compiler. If you try to specify the path to any of 64-bit
+ compilers, configuration won't work.</para>
+ </listitem>
+
+ <listitem><para>When compiling, use <code>address-model=64</code>,
+ to generate AMD64 code.</para></listitem>
+
+ <listitem><para>To generate IA64 code, use
+ <code>architecture=ia64</code></para></listitem>
+ </orderedlist>
+
+ <para>The (AMD64 host, AMD64 target) compiler will be used
+ automatically when you're generating AMD64 code and are
+ running 64-bit Windows on AMD64. The (IA64 host, IA64 target)
+ compiler won't be ever used, since nobody has an IA64 machine
+ to test.</para>
+
+ <para>It is believed that AMD64 and EM64T targets are essentially
+ compatible. The compiler options <code>/favor:AMD64</code>
+ and <code>/favor:EM64T</code>, which are accepted only by
+ AMD64 targeting compilers, cause the generated code to be
+ tuned to a specific flavor of 64-bit x86. Boost.Build will
+ make use of those options depending on the value
+ of the<code>instruction-set</code> feature.</para>
+
+ </section>
</section>
@@ -1183,7 +1319,12 @@
<xi:include href="fragments.xml#xpointer(id('common_options')/*)"
parse="xml"/>
</variablelist>
-
+
+ <indexterm><primary>64-bit compilation</primary>
+ <secondary>Sun Studio</secondary></indexterm>
+ Starting with Sun Studio 12, you can create 64-bit applications
+ by using the <code>address-model=64</code> property.
+
</section>
<section id="bbv2.reference.tools.compiler.vacpp">
@@ -1208,6 +1349,47 @@
</section>
+ </section>
+
+ <section>
+ <title>Third-party libraries</title>
+
+ <para>Boost.Build provides special support for some
+ third-party C++ libraries, documented below.</para>
+
+ <section id="bbv2.reference.tools.libraries.stlport">
+ <title>STLport library</title>
+ <indexterm><primary>STLport</primary></indexterm>
+
+ <para>The <ulink url="http://stlport.org">STLport</ulink> library
+ is an alternative implementation of C++ runtime library. Boost.Build
+ supports using that library on Windows platfrom. Linux is
+ hampered by different naming of libraries in each STLport
+ version and is not officially supported.</para>
+
+ <para>Before using STLport, you need to configure it in
+ <filename>user-config.jam</filename> using the following syntax:
+ </para>
+ <programlisting>
+using stlport : <optional><replaceable>version</replaceable></optional> : <replaceable>header-path</replaceable> : <optional><replaceable>library-path</replaceable></optional> ;
+</programlisting>
+ <para>
+ Where <replaceable>version</replaceable> is the version of
+ STLport, for example <literal>5.1.4</literal>,
+ <replaceable>headers</replaceable> is the location where
+ STLport headers can be found, and <replaceable>libraries</replaceable>
+ is the location where STLport libraries can be found.
+ The version should always be provided, and the library path should
+ be provided if you're using STLport's implementation of
+ iostreams. Note that STLport 5.* always uses its own iostream
+ implementation, so the library path is required.
+ </para>
+
+ <para>When STLport is configured, you can build with STLport by
+ requesting <literal>stdlib=stlport</literal> on the command line.
+ </para>
+
+ </section>
</section>
Modified: branches/proto/v3/tools/build/v2/tools/darwin.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/darwin.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/darwin.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,6 +1,9 @@
# Copyright 2003 Christopher Currie
# Copyright 2006 Dave Abrahams
# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
+# Copyright 2005-2007 Mat Marcus
+# Copyright 2005-2007 Adobe Systems Incorporated
+# Copyright 2007 Rene Rivera
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
@@ -12,6 +15,7 @@
import type ;
import common ;
import generators ;
+import path : basename ;
feature.extend toolset : darwin ;
import gcc ;
@@ -22,10 +26,13 @@
toolset.inherit-rules darwin : gcc ;
toolset.inherit-flags darwin : gcc
- : # On Darwin, static runtime is just not supported. So don't inherit
- # any flags settings for <runtime-link>static
- <runtime-link>static
- ;
+ : <runtime-link>static
+ <architecture>x86/<address-model>32
+ <architecture>x86/<address-model>64
+ <architecture>x86/<instruction-set>
+ <architecture>power/<address-model>32
+ <architecture>power/<address-model>64
+ <architecture>power/<instruction-set> ;
# No additional initialization should be necessary
rule init ( version ? : command * : options * )
@@ -49,8 +56,104 @@
feature framework : : free ;
+# The following adds objective-c support to darwin.
+# Thanks to http://thread.gmane.org/gmane.comp.lib.boost.build/13759
+
+type.register OBJECTIVE_C : m ;
+type.register OBJECTIVE_CPP : mm ;
+
+generators.register-c-compiler darwin.compile.m : OBJECTIVE_C : OBJ : <toolset>darwin ;
+generators.register-c-compiler darwin.compile.mm : OBJECTIVE_CPP : OBJ : <toolset>darwin ;
+
+rule compile.m
+{
+ LANG on $(<) = "-x objective-c" ;
+}
+
+actions compile.m
+{
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+}
+
+rule compile.mm
+{
+ LANG on $(<) = "-x objective-c++" ;
+}
+
+actions compile.mm
+{
+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
+}
+
+# Determine the MacOSX SDK versions installed and their locations.
+local rule available-macosx-versions ( )
+{
+ local sdks = [ GLOB /Developer/SDKs : MacOSX* ] ;
+ for local sdk in $(sdks)
+ {
+ local sdk-version = [ MATCH ([0-9]+[.][0-9]+[.]?[0-9]*) : $(sdk) ] ;
+ if $(sdk-version)
+ {
+ .macosx-sdk = $(sdk-version) $(.macosx-sdk) ;
+ .macosx-sdk.$(sdk-version) = $(sdk) ;
+ }
+ }
+ return $(.macosx-sdk) ;
+}
+
+# Add the found SDK version only to the allowed set. The "latests" SDKs
+# wil be first in the list, and hence the default.
+feature macosx-version
+ : [ available-macosx-versions ]
+ : propagated link-incompatible symmetric ;
+
+# Add the options for all the found SDKs.
+for local sdk in $(.macosx-sdk)
+{
+ flags darwin.compile OPTIONS <macosx-version>$(sdk) :
+ -isysroot $(.macosx-sdk.$(sdk))
+ -mmacosx-version-min=$(sdk)
+ ;
+ flags darwin.link OPTIONS <macosx-version>$(sdk) :
+ -isysroot $(.macosx-sdk.$(sdk))
+ -mmacosx-version-min=$(sdk)
+ ;
+}
+
+# Add option selection for combined and specific architecture combinations.
+
+local rule arch-addr-flags ( toolset variable
+ : architecture : address-model + : values + : default ? )
+{
+ if $(default)
+ {
+ flags $(toolset) $(variable)
+ <architecture>$(architecture)/<address-model>
+ : $(values) ;
+ }
+ flags $(toolset) $(variable)
+ <architecture>/<address-model>$(address-model)
+ <architecture>$(architecture)/<address-model>$(address-model)
+ : $(values) ;
+}
+
+arch-addr-flags darwin OPTIONS : combined : 32 : -arch i386 -arch ppc : default ;
+arch-addr-flags darwin OPTIONS : combined : 64 : -arch x86_64 -arch ppc64 ;
+
+arch-addr-flags darwin OPTIONS : x86 : 32 : -arch i386 : default ;
+arch-addr-flags darwin OPTIONS : x86 : 64 : -arch x86_64 ;
+
+arch-addr-flags darwin OPTIONS : power : 32 : -arch ppc : default ;
+arch-addr-flags darwin OPTIONS : power : 64 : -arch ppc64 ;
+
+
+flags darwin.link OPTIONS <runtime-link>static
+ : -nodefaultlibs -shared-libgcc -lstdc++-static -lgcc_eh -lgcc -lSystem ;
+
+flags darwin.link OPTIONS <variant>release : -Wl,-dead_strip -no_dead_strip_inits_and_terms ;
+
flags darwin.compile OPTIONS <link>shared : -dynamic ;
-flags darwin.compile OPTIONS : -Wno-long-double -no-cpp-precomp ;
+flags darwin.compile OPTIONS : -Wno-long-double -no-cpp-precomp -gdwarf-2 ;
flags darwin.link FRAMEWORK <framework> ;
@@ -86,11 +189,12 @@
actions link.dll bind LIBRARIES
{
- $(CONFIG_COMMAND) -dynamiclib -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(FRAMEWORK_PATH) -framework$(_)$(FRAMEWORK:D=:S=) $(OPTIONS) $(USER_OPTIONS)
+ $(CONFIG_COMMAND) -dynamiclib -install_name "$(<:B)$(<:S)" -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(FRAMEWORK_PATH) -framework$(_)$(FRAMEWORK:D=:S=) $(OPTIONS) $(USER_OPTIONS)
}
+# We use libtool instead of ar to support universal binary linking
+# TODO: Find a way to use the underlying tools, i.e. lipo, to do this.
actions piecemeal archive
{
- ar -c -r -s $(ARFLAGS) "$(<:T)" "$(>:T)"
+ libtool -static -o "$(<:T)" $(ARFLAGS) "$(>:T)"
}
-
Modified: branches/proto/v3/tools/build/v2/tools/msvc.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/msvc.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/msvc.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -310,8 +310,16 @@
# and x86_ia64 is right one.
setup-option = x86 x86_amd64 x86_ia64 ;
- # Use a native x64 compiler if possible
+ # When using 64-bit Windows, and targeting 64-bit,
+ # it's possible to use native 64-bit compiler, which is
+ # selected by the "amd64" parameter to vcvarsall.bat.
+ # There are two variables we can use --
+ # PROCESSOR_ARCHITECTURE and PROCESSOR_IDENTIFIER.
+ # The first reflects processor proper, and the second is
+ # empirically found to be always x86 when using 32-bit
+ # windows.
if [ MATCH ^(AMD64) : [ os.environ PROCESSOR_IDENTIFIER ] ]
+ || [ MATCH ^(EM64T) : [ os.environ PROCESSOR_IDENTIFIER ] ]
{
setup-option = x86 amd64 x86_ia64 ;
}
Modified: branches/proto/v3/tools/build/v2/tools/python.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/python.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/python.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -610,13 +610,16 @@
# appears to duplicate the logic already in gcc.jam, it
# doesn't as long as we're not forcing <threading>multi.
- # Caleb Epstein reports that his python's
+ # On solaris 10,
# distutils.sysconfig.get_config_var('LIBS') yields
- # -lresolv -lsocket -lnsl -lrt -ldl. However, we're not
- # yet sure that is the right list for extension modules.
- # Being conservative, we add rt and remove pthread, which
- # was causing errors.
- return <library>dl <toolset>gcc:<library>rt ;
+ # '-lresolv -lsocket -lnsl -lrt -ldl'. However, that
+ # doesn't seem to be the right list for extension modules.
+ # For example, on my installation, adding -ldl causes at
+ # least one test to fail because the library can't be
+ # found and removing it causes no failures.
+
+ # Apparently, though, we need to add -lrt for gcc.
+ return <toolset>gcc:<library>rt ;
case osf : return <library>pthread <toolset>gcc:<library>rt ;
Modified: branches/proto/v3/tools/build/v2/tools/testing.jam
==============================================================================
--- branches/proto/v3/tools/build/v2/tools/testing.jam (original)
+++ branches/proto/v3/tools/build/v2/tools/testing.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -490,6 +490,7 @@
MAKE_FILE = [ common.file-creation-command ] ;
toolset.flags testing.unit-test LAUNCHER <testing.launcher> ;
+toolset.flags testing.unit-test ARGS <testing.arg> ;
rule unit-test ( target : source : properties * )
{
run-path-setup $(target) : $(source) : $(properties) ;
@@ -498,7 +499,7 @@
actions unit-test
{
$(PATH_SETUP)
- $(LAUNCHER) $(>) && $(MAKE_FILE) $(<)
+ $(LAUNCHER) $(>) $(ARGS) && $(MAKE_FILE) $(<)
}
IMPORT $(__name__) : compile compile-fail run run-fail link link-fail
Modified: branches/proto/v3/tools/jam/doc/bjam.qbk
==============================================================================
--- branches/proto/v3/tools/jam/doc/bjam.qbk (original)
+++ branches/proto/v3/tools/jam/doc/bjam.qbk 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -217,12 +217,14 @@
[ [] []
[[lines
- [line [@http://msdn.microsoft.com/visualc/ =vc8=]]
- [line Microsoft Visual C++ 8.x]
+ [line [@http://msdn.microsoft.com/visualc/ =vc8= and =vc9=]]
+ [line Microsoft Visual C++ 8.x and 9.x]
]]
[Detection:
[list
[li =VCVARSALL.BAT= already configured]
+ [li =%VS90COMNTOOLS%= is present in environment]
+ [li Common install location: "=%ProgramFiles%\Microsoft Visual Studio 9="]
[li =%VS80COMNTOOLS%= is present in environment]
[li Common install location: "=%ProgramFiles%\Microsoft Visual Studio 8="]
[li =CL.EXE= in =PATH=]
@@ -1315,6 +1317,17 @@
[endsect]
+[section:atfile Generated File Expansion]
+
+During expansion of expressions =bjam= also looks for subexpressions of the form
+=@(filename:E=filecontents)= and replaces the expression with =filename= after
+creating the given file with the contents set to =filecontents=. This is useful
+for creating compiler response files, and other "internal" files. The expansion
+works both during parsing and action execution. Hence it is possible to create
+files during any of the three build phases.
+
+[endsect]
+
[section:builtins Built-in Variables]
This section discusses variables that have special meaning to =bjam=.
@@ -1387,7 +1400,7 @@
[section Jam Version]
[variablelist
-[[=JAMDATE=] [Time and date at =bjam= start-up.]]
+[[=JAMDATE=] [Time and date at =bjam= start-up as an ISO-8601 UTC value.]]
[[=JAMUNAME=] [Ouput of uname(1) command (Unix only)]]
[[=JAMVERSION=] [=bjam= version, currently ":version:"]]
[[=JAM_VERSION=] [A predefined global variable with two elements indicates the version number of Boost Jam. Boost Jam versions start at "=03=" "=00=". Earlier versions of =Jam= do not automatically define =JAM_VERSION=.]]
@@ -1432,6 +1445,52 @@
[endsect]
+[section:actionrule =__TIMING_RULE__= and =__ACTION_RULE__=]
+
+The =__TIMING_RULE__= and =__ACTION_RULE__= can be set to the name of a rule
+for =bjam= to call *after* an action completes for a target. They both give
+diagnostic information about the action that completed. For =__TIMING_RULE__=
+the rule is called as:
+
+ rule timing-rule ( args * : target : start end user system )
+
+And =__ACTION_RULE__= is called as:
+
+ rule action-rule ( args * : target : command status start end user system : output ? )
+
+The arguments for both are:
+
+[variablelist
+ [[[^args]]
+ [Any values following the rule name in the =__TIMING_RULE__= or =__ACTION_RULE__=
+ are passed along here.]]
+ [[[^target]]
+ [The =bjam= target that was built.]]
+ [[[^command]]
+ [The text of the executed command in the action body.]]
+ [[[^status]]
+ [The integer result of the executed command.]]
+ [[[^start]]
+ [The starting timestamp of the executed command as a ISO-8601 UTC value.]]
+ [[[^end]]
+ [The completion timestamp of the executed command as a ISO-8601 UTC value.]]
+ [[[^user]]
+ [The number of user CPU seconds the executed command spent as a floating
+ point value.]]
+ [[[^system]]
+ [The number of system CPU seconds the executed command spent as a floating
+ point value.]]
+ [[[^output]]
+ [The output of the command as a single string. The content of the output
+ reflects the use of the =-pX= option.]]
+]
+
+[note
+ If both variables are set for a target both are called, first =__TIMING_RULE__=
+ then =__ACTION_RULE__=. ]
+
+[endsect]
+
[endsect]
[endsect]
Modified: branches/proto/v3/tools/jam/doc/history.qbk
==============================================================================
--- branches/proto/v3/tools/jam/doc/history.qbk (original)
+++ branches/proto/v3/tools/jam/doc/history.qbk 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -1,5 +1,73 @@
[variablelist
+[[3.1.16] [
+
+This is mostly a bug fix release.
+
+[list
+ [li Add support for detection and building with =vc9=.
+ -- ['John P.]
+ ]
+ [li Plug memory leak when closing out actions. Thanks to Martin Kortmann for finding this.
+ -- ['Rene R.]
+ ]
+ [li Various improvements to =__TIMING_RULE__= and =__ACTION_RULE__= target variable
+ hooks.
+ -- ['Rene R.]
+ ]
+ [li Change [^JAMDATE] to use common ISO date format.
+ -- ['Rene R.]
+ ]
+ [li Add test for result status values of simple actions, i.e. empty actions.
+ -- ['Rene R.]
+ ]
+ [li Fix buffer overrun bug in expanding [^@()] subexpressions.
+ -- ['Rene R.]
+ ]
+ [li Check empty string invariants, instead of assuming all strings are allocated.
+ And reset strings when they are freed.
+ -- ['Rene R.]
+ ]
+ [li Add [^OSPLAT=PARISC] for HP-UX PA-RISC.
+ -- ['Boris G.]
+ ]
+ [li Make quietly actions really quiet by not printing the command output. The
+ output for the quietly actions is still available through =__ACTION_RULE__=.
+ -- ['Rene R.]
+ ]
+ [li Switch intel-win32 to use static multi thread runtime since the single
+ thread static runtime is no longer available.
+ -- ['Rene R.]
+ ]
+ [li When setting =OSPLAT=, check =__ia64= macro.
+ -- ['Boris G.]
+ ]
+ [li Get the unix timing working correctly.
+ -- ['Noel B.]
+ ]
+ [li Add =-fno-strict-aliasing= to compilation with gcc. Which works around
+ GCC-4.2 crash problems.
+ -- ['Boris G.]
+ ]
+ [li Increased support for Python integration.
+ -- ['Vladimir P.], ['Daniel W.]
+ ]
+ [li Allow specifying options with quotes, i.e. [^--with-python=xyz], to work
+ around the CMD shell using [^=] as an argument separator.
+ -- ['Rene R.]
+ ]
+ [li Add values of variables specified with -s to .EVNRION
+ module, so that we can override environment on
+ command line.
+ -- ['Vladimir P.]
+ ]
+ [li Make NORMALIZE_PATH convert \\ to /.
+ -- ['Vladimir P.]
+ ]
+]
+
+]]
+
[[3.1.15] [
This release sees a variety of fixes for long standing Perforce/Jam problems. Most of
Modified: branches/proto/v3/tools/jam/src/build.bat
==============================================================================
--- branches/proto/v3/tools/jam/src/build.bat (original)
+++ branches/proto/v3/tools/jam/src/build.bat 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -67,6 +67,16 @@
if "_%ProgramFiles%_" == "__" set ProgramFiles=C:\Program Files
setlocal & endlocal
+if NOT "_%VS90COMNTOOLS%_" == "__" (
+ set "BOOST_JAM_TOOLSET=vc9"
+ set "BOOST_JAM_TOOLSET_ROOT=%VS90COMNTOOLS%..\..\VC\"
+ goto :eof)
+setlocal & endlocal
+if EXIST "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\VCVARSALL.BAT" (
+ set "BOOST_JAM_TOOLSET=vc9"
+ set "BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio 9.0\VC\"
+ goto :eof)
+setlocal & endlocal
if NOT "_%VS80COMNTOOLS%_" == "__" (
set "BOOST_JAM_TOOLSET=vc8"
set "BOOST_JAM_TOOLSET_ROOT=%VS80COMNTOOLS%..\..\VC\"
@@ -83,6 +93,7 @@
goto :eof)
setlocal & endlocal
if NOT "_%VCINSTALLDIR%_" == "__" (
+ REM %VCINSTALLDIR% is also set for VC9 (and probably VC8)
set "BOOST_JAM_TOOLSET=vc7"
set "BOOST_JAM_TOOLSET_ROOT=%VCINSTALLDIR%\VC7\"
goto :eof)
@@ -281,6 +292,21 @@
set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
set "_known_=1"
:Skip_VC8
+if NOT "_%BOOST_JAM_TOOLSET%_" == "_vc9_" goto :Skip_VC9
+if NOT "_%VS90COMNTOOLS%_" == "__" (
+ set "BOOST_JAM_TOOLSET_ROOT=%VS90COMNTOOLS%..\..\VC\"
+ )
+if "_%VCINSTALLDIR%_" == "__" call :Call_If_Exists "%BOOST_JAM_TOOLSET_ROOT%VCVARSALL.BAT" %BOOST_JAM_ARGS%
+if NOT "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
+ if "_%VCINSTALLDIR%_" == "__" (
+ set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"
+ ) )
+set "BOOST_JAM_CC=cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib"
+set "BOOST_JAM_OPT_JAM=/Febootstrap\jam0"
+set "BOOST_JAM_OPT_MKJAMBASE=/Febootstrap\mkjambase0"
+set "BOOST_JAM_OPT_YYACC=/Febootstrap\yyacc0"
+set "_known_=1"
+:Skip_VC9
if NOT "_%BOOST_JAM_TOOLSET%_" == "_borland_" goto :Skip_BORLAND
if "_%BOOST_JAM_TOOLSET_ROOT%_" == "__" (
call :Test_Path bcc32.exe )
Modified: branches/proto/v3/tools/jam/src/build.jam
==============================================================================
--- branches/proto/v3/tools/jam/src/build.jam (original)
+++ branches/proto/v3/tools/jam/src/build.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -317,6 +317,13 @@
[ opt --debug : /MTd /DEBUG /Z7 /Od /Ob0 /wd4996 ]
-I$(--python-include) -I$(--extra-include)
: kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;
+## Microsoft Visual C++ 2008
+toolset vc9 cl : /Fe /Fe /Fd /Fo : -D
+ : /nologo
+ [ opt --release : /MT /O2 /Ob2 /Gy /GF /GA /wd4996 ]
+ [ opt --debug : /MTd /DEBUG /Z7 /Od /Ob0 /wd4996 ]
+ -I$(--python-include) -I$(--extra-include)
+ : kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;
## VMS/OpenVMS DEC C
toolset vmsdecc cc : /OBJECT= : "/DEFINES=(" "," ")"
: /STANDARD=VAXC /PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
Modified: branches/proto/v3/tools/jam/src/execnt.c
==============================================================================
--- branches/proto/v3/tools/jam/src/execnt.c (original)
+++ branches/proto/v3/tools/jam/src/execnt.c 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -539,6 +539,7 @@
string_free(&cmdtab[i].target); string_new(&cmdtab[i].target);
string_free(&cmdtab[i].command); string_new(&cmdtab[i].command);
if (cmdtab[i].pi.hProcess) { CloseHandle(cmdtab[i].pi.hProcess); cmdtab[i].pi.hProcess = 0; }
+ if (cmdtab[i].pi.hThread) { CloseHandle(cmdtab[i].pi.hThread); cmdtab[i].pi.hThread = 0; }
if (cmdtab[i].pipe_out[0]) { CloseHandle(cmdtab[i].pipe_out[0]); cmdtab[i].pipe_out[0] = 0; }
if (cmdtab[i].pipe_out[1]) { CloseHandle(cmdtab[i].pipe_out[1]); cmdtab[i].pipe_out[1] = 0; }
if (cmdtab[i].pipe_err[0]) { CloseHandle(cmdtab[i].pipe_err[0]); cmdtab[i].pipe_err[0] = 0; }
Modified: branches/proto/v3/tools/jam/test/action_status.jam
==============================================================================
--- branches/proto/v3/tools/jam/test/action_status.jam (original)
+++ branches/proto/v3/tools/jam/test/action_status.jam 2007-12-02 18:20:06 EST (Sun, 02 Dec 2007)
@@ -7,10 +7,15 @@
ECHO --- Testing \"actions status results\"... ;
assert "" 0 : (==) : [ SHELL "$(ARGV[1]) -f action_status.jam -sBJAM_SUBTEST=1" : exit-status : no-output ] ;
+ if $(NT)
+ {
+ assert "" 0 : (==) : [ SHELL "$(ARGV[1]) -f action_status.jam -sBJAM_SUBTEST=1 \"-sACTION=;\"" : exit-status : no-output ] ;
+ }
assert "" 0 : (!=) : [ SHELL "$(ARGV[1]) -f action_status.jam -sBJAM_SUBTEST=1 -sACTION=invalid" : exit-status : no-output ] ;
}
else
{
+ #~ actions .a. { $(ACTION) }
actions quietly .a. { $(ACTION) }
rule .a.
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk