Only in Boost: b2 Only in Boost: bin.v2 Only in Boost: bjam Only in Boost/boost: .DS_Store diff -dur boost_1_53_0/boost/concept_check.hpp Boost/boost/concept_check.hpp --- boost_1_53_0/boost/concept_check.hpp 2012-12-11 15:42:26.000000000 +0100 +++ Boost/boost/concept_check.hpp 2013-02-08 14:54:17.000000000 +0100 @@ -880,7 +880,7 @@ typename BackInsertionSequence::const_reference r = cc.back(); ignore_unused_variable_warning(r); - }; + } S c; typename S::value_type t; }; diff -dur boost_1_53_0/boost/function/function_base.hpp Boost/boost/function/function_base.hpp --- boost_1_53_0/boost/function/function_base.hpp 2011-03-21 22:32:38.000000000 +0100 +++ Boost/boost/function/function_base.hpp 2013-02-08 14:53:24.000000000 +0100 @@ -435,8 +435,12 @@ out_buffer.type.const_qualified = false; out_buffer.type.volatile_qualified = false; return; + + case clone_functor_tag: + case move_functor_tag: + case destroy_functor_tag: + case check_functor_type_tag: - default: manager(in_buffer, out_buffer, op, tag_type()); return; } @@ -539,7 +543,10 @@ out_buffer.type.volatile_qualified = false; return; - default: + case clone_functor_tag: + case move_functor_tag: + case destroy_functor_tag: + case check_functor_type_tag: manager(in_buffer, out_buffer, op, tag_type()); return; } diff -dur boost_1_53_0/boost/lexical_cast.hpp Boost/boost/lexical_cast.hpp --- boost_1_53_0/boost/lexical_cast.hpp 2012-12-29 15:41:23.000000000 +0100 +++ Boost/boost/lexical_cast.hpp 2013-02-08 14:55:12.000000000 +0100 @@ -2225,7 +2225,7 @@ > interpreter_type; // Target type must be default constructible - Target result; + Target result = Target(); BOOST_DEDUCED_TYPENAME stream_trait::char_type buf[stream_trait::len_t::value + 1]; stream_trait::len_t::check_coverage(); Only in Boost/boost/numeric: .DS_Store Only in Boost/boost/numeric/ublas: .DS_Store diff -dur boost_1_53_0/boost/numeric/ublas/detail/iterator.hpp Boost/boost/numeric/ublas/detail/iterator.hpp --- boost_1_53_0/boost/numeric/ublas/detail/iterator.hpp 2007-11-25 19:07:19.000000000 +0100 +++ Boost/boost/numeric/ublas/detail/iterator.hpp 2013-02-08 14:48:32.000000000 +0100 @@ -22,7 +22,7 @@ /** \brief Base class of all proxy classes that contain * a (redirectable) reference to an immutable object. * - * \param C the type of the container referred to + * \tparam C the type of the container referred to */ template class container_const_reference: @@ -61,7 +61,7 @@ /** \brief Base class of all proxy classes that contain * a (redirectable) reference to a mutable object. * - * \param C the type of the container referred to + * \tparam C the type of the container referred to */ template class container_reference: @@ -99,9 +99,9 @@ /** \brief Base class of all forward iterators. * - * \param IC the iterator category - * \param I the derived iterator type - * \param T the value type + * \tparam IC the iterator category + * \tparam I the derived iterator type + * \tparam T the value type * * The forward iterator can only proceed in one direction * via the post increment operator. @@ -137,9 +137,9 @@ /** \brief Base class of all bidirectional iterators. * - * \param IC the iterator category - * \param I the derived iterator type - * \param T the value type + * \tparam IC the iterator category + * \tparam I the derived iterator type + * \tparam T the value type * * The bidirectional iterator can proceed in both directions * via the post increment and post decrement operator. @@ -188,10 +188,10 @@ /** \brief Base class of all random access iterators. * - * \param IC the iterator category - * \param I the derived iterator type - * \param T the value type - * \param D the difference type, default: std::ptrdiff_t + * \tparam IC the iterator category + * \tparam I the derived iterator type + * \tparam T the value type + * \tparam D the difference type, default: std::ptrdiff_t * * The random access iterator can proceed in both directions * via the post increment/decrement operator or in larger steps @@ -293,9 +293,7 @@ /** \brief Base class of all reverse iterators. (non-MSVC version) * - * \param I the derived iterator type - * \param T the value type - * \param R the reference type + * \tparam I the derived iterator type * * The reverse iterator implements a bidirectional iterator * reversing the elements of the underlying iterator. It @@ -388,7 +386,7 @@ /** \brief 1st base class of all matrix reverse iterators. (non-MSVC version) * - * \param I the derived iterator type + * \tparam I the derived iterator type * * The reverse iterator implements a bidirectional iterator * reversing the elements of the underlying iterator. It @@ -508,7 +506,7 @@ /** \brief 2nd base class of all matrix reverse iterators. (non-MSVC version) * - * \param I the derived iterator type + * \tparam I the derived iterator type * * The reverse iterator implements a bidirectional iterator * reversing the elements of the underlying iterator. It @@ -630,8 +628,8 @@ /** \brief A class implementing an indexed random access iterator. * - * \param C the (mutable) container type - * \param IC the iterator category + * \tparam C the (mutable) container type + * \tparam IC the iterator category * * This class implements a random access iterator. The current * position is stored as the unsigned integer it_ and the @@ -735,8 +733,8 @@ /** \brief A class implementing an indexed random access iterator. * - * \param C the (immutable) container type - * \param IC the iterator category + * \tparam C the (immutable) container type + * \tparam IC the iterator category * * This class implements a random access iterator. The current * position is stored as the unsigned integer \c it_ and the @@ -853,8 +851,8 @@ /** \brief A class implementing an indexed random access iterator * of a matrix. * - * \param C the (mutable) container type - * \param IC the iterator category + * \tparam C the (mutable) container type + * \tparam IC the iterator category * * This class implements a random access iterator. The current * position is stored as two unsigned integers \c it1_ and \c it2_ @@ -997,8 +995,8 @@ /** \brief A class implementing an indexed random access iterator * of a matrix. * - * \param C the (immutable) container type - * \param IC the iterator category + * \tparam C the (immutable) container type + * \tparam IC the iterator category * * This class implements a random access iterator. The current * position is stored as two unsigned integers \c it1_ and \c it2_ @@ -1146,8 +1144,8 @@ /** \brief A class implementing an indexed random access iterator * of a matrix. * - * \param C the (mutable) container type - * \param IC the iterator category + * \tparam C the (mutable) container type + * \tparam IC the iterator category * * This class implements a random access iterator. The current * position is stored as two unsigned integers \c it1_ and \c it2_ @@ -1285,8 +1283,8 @@ /** \brief A class implementing an indexed random access iterator * of a matrix. * - * \param C the (immutable) container type - * \param IC the iterator category + * \tparam C the (immutable) container type + * \tparam IC the iterator category * * This class implements a random access iterator. The current * position is stored as two unsigned integers \c it1_ and \c it2_ diff -dur boost_1_53_0/boost/numeric/ublas/detail/matrix_assign.hpp Boost/boost/numeric/ublas/detail/matrix_assign.hpp --- boost_1_53_0/boost/numeric/ublas/detail/matrix_assign.hpp 2010-10-19 09:01:35.000000000 +0200 +++ Boost/boost/numeric/ublas/detail/matrix_assign.hpp 2013-02-11 14:27:43.000000000 +0100 @@ -75,21 +75,21 @@ if (it2 != it2_end && it2e != it2e_end) { size_type it2_index = it2.index2 (), it2e_index = it2e.index2 (); while (true) { - difference_type compare = it2_index - it2e_index; - if (compare == 0) { + difference_type compare2 = it2_index - it2e_index; + if (compare2 == 0) { ++ it2, ++ it2e; if (it2 != it2_end && it2e != it2e_end) { it2_index = it2.index2 (); it2e_index = it2e.index2 (); } else break; - } else if (compare < 0) { - increment (it2, it2_end, - compare); + } else if (compare2 < 0) { + increment (it2, it2_end, - compare2); if (it2 != it2_end) it2_index = it2.index2 (); else break; - } else if (compare > 0) { + } else if (compare2 > 0) { if (conformant_restrict_type::other (it2e.index1 (), it2e.index2 ())) if (static_cast(*it2e) != value_type/*zero*/()) index.push_back (std::pair (it2e.index1 (), it2e.index2 ())); @@ -178,21 +178,21 @@ if (it1 != it1_end && it1e != it1e_end) { size_type it1_index = it1.index1 (), it1e_index = it1e.index1 (); while (true) { - difference_type compare = it1_index - it1e_index; - if (compare == 0) { + difference_type compare2 = it1_index - it1e_index; + if (compare2 == 0) { ++ it1, ++ it1e; if (it1 != it1_end && it1e != it1e_end) { it1_index = it1.index1 (); it1e_index = it1e.index1 (); } else break; - } else if (compare < 0) { - increment (it1, it1_end, - compare); + } else if (compare2 < 0) { + increment (it1, it1_end, - compare2); if (it1 != it1_end) it1_index = it1.index1 (); else break; - } else if (compare > 0) { + } else if (compare2 > 0) { if (conformant_restrict_type::other (it1e.index1 (), it1e.index2 ())) if (static_cast(*it1e) != value_type/*zero*/()) index.push_back (std::pair (it1e.index1 (), it1e.index2 ())); @@ -997,8 +997,8 @@ if (it2 != it2_end && it2e != it2e_end) { size_type it2_index = it2.index2 (), it2e_index = it2e.index2 (); while (true) { - difference_type compare = it2_index - it2e_index; - if (compare == 0) { + difference_type compare2 = it2_index - it2e_index; + if (compare2 == 0) { functor_type::apply (*it2, *it2e); ++ it2, ++ it2e; if (it2 != it2_end && it2e != it2e_end) { @@ -1006,18 +1006,18 @@ it2e_index = it2e.index2 (); } else break; - } else if (compare < 0) { + } else if (compare2 < 0) { if (!functor_type::computed) { functor_type::apply (*it2, expr_value_type/*zero*/()); ++ it2; } else - increment (it2, it2_end, - compare); + increment (it2, it2_end, - compare2); if (it2 != it2_end) it2_index = it2.index2 (); else break; - } else if (compare > 0) { - increment (it2e, it2e_end, compare); + } else if (compare2 > 0) { + increment (it2e, it2e_end, compare2); if (it2e != it2e_end) it2e_index = it2e.index2 (); else @@ -1118,8 +1118,8 @@ if (it1 != it1_end && it1e != it1e_end) { size_type it1_index = it1.index1 (), it1e_index = it1e.index1 (); while (true) { - difference_type compare = it1_index - it1e_index; - if (compare == 0) { + difference_type compare2 = it1_index - it1e_index; + if (compare2 == 0) { functor_type::apply (*it1, *it1e); ++ it1, ++ it1e; if (it1 != it1_end && it1e != it1e_end) { @@ -1127,18 +1127,18 @@ it1e_index = it1e.index1 (); } else break; - } else if (compare < 0) { + } else if (compare2 < 0) { if (!functor_type::computed) { functor_type::apply (*it1, expr_value_type/*zero*/()); // zeroing ++ it1; } else - increment (it1, it1_end, - compare); + increment (it1, it1_end, - compare2); if (it1 != it1_end) it1_index = it1.index1 (); else break; - } else if (compare > 0) { - increment (it1e, it1e_end, compare); + } else if (compare2 > 0) { + increment (it1e, it1e_end, compare2); if (it1e != it1e_end) it1e_index = it1e.index1 (); else @@ -1386,8 +1386,8 @@ if (it2 != it2_end && it2e != it2e_end) { size_type it2_index = it2.index2 (), it2e_index = it2e.index2 (); while (true) { - difference_type compare = it2_index - it2e_index; - if (compare == 0) { + difference_type compare2 = it2_index - it2e_index; + if (compare2 == 0) { functor_type::apply (*it2, *it2e); ++ it2, ++ it2e; if (it2 != it2_end && it2e != it2e_end) { @@ -1395,14 +1395,14 @@ it2e_index = it2e.index2 (); } else break; - } else if (compare < 0) { - increment (it2, it2_end, - compare); + } else if (compare2 < 0) { + increment (it2, it2_end, - compare2); if (it2 != it2_end) it2_index = it2.index2 (); else break; - } else if (compare > 0) { - increment (it2e, it2e_end, compare); + } else if (compare2 > 0) { + increment (it2e, it2e_end, compare2); if (it2e != it2e_end) it2e_index = it2e.index2 (); else @@ -1511,8 +1511,8 @@ if (it1 != it1_end && it1e != it1e_end) { size_type it1_index = it1.index1 (), it1e_index = it1e.index1 (); while (true) { - difference_type compare = it1_index - it1e_index; - if (compare == 0) { + difference_type compare2 = it1_index - it1e_index; + if (compare2 == 0) { functor_type::apply (*it1, *it1e); ++ it1, ++ it1e; if (it1 != it1_end && it1e != it1e_end) { @@ -1520,14 +1520,14 @@ it1e_index = it1e.index1 (); } else break; - } else if (compare < 0) { - increment (it1, it1_end, - compare); + } else if (compare2 < 0) { + increment (it1, it1_end, - compare2); if (it1 != it1_end) it1_index = it1.index1 (); else break; - } else if (compare > 0) { - increment (it1e, it1e_end, compare); + } else if (compare2 > 0) { + increment (it1e, it1e_end, compare2); if (it1e != it1e_end) it1e_index = it1e.index1 (); else diff -dur boost_1_53_0/boost/numeric/ublas/lu.hpp Boost/boost/numeric/ublas/lu.hpp --- boost_1_53_0/boost/numeric/ublas/lu.hpp 2010-07-05 08:06:24.000000000 +0200 +++ Boost/boost/numeric/ublas/lu.hpp 2013-02-08 14:51:19.000000000 +0100 @@ -23,10 +23,10 @@ namespace boost { namespace numeric { namespace ublas { - /** \brief + /** \brief ??? * - * \tparam T - * \tparam A + * \tparam T ??? + * \tparam A ??? */ template > class permutation_matrix: diff -dur boost_1_53_0/boost/numeric/ublas/matrix_proxy.hpp Boost/boost/numeric/ublas/matrix_proxy.hpp --- boost_1_53_0/boost/numeric/ublas/matrix_proxy.hpp 2010-07-05 08:06:24.000000000 +0200 +++ Boost/boost/numeric/ublas/matrix_proxy.hpp 2013-02-08 14:50:59.000000000 +0100 @@ -22,7 +22,7 @@ namespace boost { namespace numeric { namespace ublas { - /** \brief + /** \brief ??? */ template class matrix_row: @@ -4179,7 +4179,6 @@ * falls outside that of the indices of the matrix, then the \c matrix_indirect is not a well formed * \i Matrix \i Expression and access to an element outside of indices of the matrix is \b undefined. * - * \tparam V the type of the referenced matrix, for example \c matrix) * \tparam IA the type of index matrix. Default is \c ublas::indirect_array<> */ template diff -dur boost_1_53_0/boost/numeric/ublas/operation.hpp Boost/boost/numeric/ublas/operation.hpp --- boost_1_53_0/boost/numeric/ublas/operation.hpp 2007-11-25 19:07:19.000000000 +0100 +++ Boost/boost/numeric/ublas/operation.hpp 2013-02-08 14:51:07.000000000 +0100 @@ -234,9 +234,9 @@ \internal template parameters: - \param V type of the result vector \c v - \param E1 type of a matrix expression \c A - \param E2 type of a vector expression \c x + \tparam V type of the result vector \c v + \tparam E1 type of a matrix expression \c A + \tparam E2 type of a vector expression \c x */ template BOOST_UBLAS_INLINE @@ -456,9 +456,9 @@ \internal template parameters: - \param V type of the result vector \c v - \param E1 type of a vector expression \c x - \param E2 type of a matrix expression \c A + \tparam V type of the result vector \c v + \tparam E1 type of a vector expression \c x + \tparam E2 type of a matrix expression \c A */ template BOOST_UBLAS_INLINE @@ -701,9 +701,9 @@ \internal template parameters: - \param M type of the result matrix \c M - \param E1 type of a matrix expression \c A - \param E2 type of a matrix expression \c X + \tparam M type of the result matrix \c M + \tparam E1 type of a matrix expression \c A + \tparam E2 type of a matrix expression \c X */ template BOOST_UBLAS_INLINE @@ -817,9 +817,9 @@ \internal template parameters: - \param M type of the result matrix \c M - \param E1 type of a matrix expression \c A - \param E2 type of a matrix expression \c X + \tparam M type of the result matrix \c M + \tparam E1 type of a matrix expression \c A + \tparam E2 type of a matrix expression \c X */ template BOOST_UBLAS_INLINE diff -dur boost_1_53_0/boost/numeric/ublas/storage.hpp Boost/boost/numeric/ublas/storage.hpp --- boost_1_53_0/boost/numeric/ublas/storage.hpp 2012-09-22 23:57:57.000000000 +0200 +++ Boost/boost/numeric/ublas/storage.hpp 2013-02-11 12:51:07.000000000 +0100 @@ -128,8 +128,8 @@ } } else { - for (pointer si = p_data; si != p_data + size_; ++si) { - alloc_.construct (di, *si); + for (pointer si2 = p_data; si2 != p_data + size_; ++si2) { + alloc_.construct (di, *si2); ++di; } for (; di != data_ + size; ++di) { diff -dur boost_1_53_0/boost/numeric/ublas/triangular.hpp Boost/boost/numeric/ublas/triangular.hpp --- boost_1_53_0/boost/numeric/ublas/triangular.hpp 2012-09-18 23:07:07.000000000 +0200 +++ Boost/boost/numeric/ublas/triangular.hpp 2013-02-08 14:56:30.000000000 +0100 @@ -2162,7 +2162,7 @@ singular ().raise (); #endif value_type t = e2 () (n); - for (difference_type m = n + 1; m < e1 ().size2(); ++ m) { + for (difference_type m = n + 1; m < static_cast(e1 ().size2()); ++ m) { t -= e1 () (n, m) * e2 () (m); } e2() (n) = t / e1 () (n, n); diff -dur boost_1_53_0/boost/numeric/ublas/vector.hpp Boost/boost/numeric/ublas/vector.hpp --- boost_1_53_0/boost/numeric/ublas/vector.hpp 2010-07-05 08:06:24.000000000 +0200 +++ Boost/boost/numeric/ublas/vector.hpp 2013-02-08 14:49:57.000000000 +0100 @@ -85,7 +85,7 @@ BOOST_UBLAS_INLINE vector (size_type size, const array_type &data): vector_container (), - data_ (data) {} + data_ (data) {(void)size;} /// \brief Constructor of a vector by copying from another container /// This type has the generic name \c array_typ within the vector definition. @@ -354,8 +354,6 @@ /// \brief Assign the sum of the vector and a vector_expression to the vector /// Assign the sum of the vector and a vector_expression to the vector. This is lazy-compiled and will be optimized out by the compiler on any type of expression. /// No temporary is created. Computations are done and stored directly into the resulting vector. - /// \tparam AE is the type of the vector_expression - /// \param ae is a const reference to the vector_expression /// \return a reference to the resulting vector template // Container assignment without temporary BOOST_UBLAS_INLINE @@ -392,8 +390,6 @@ /// \brief Assign the difference of the vector and a vector_expression to the vector /// Assign the difference of the vector and a vector_expression to the vector. This is lazy-compiled and will be optimized out by the compiler on any type of expression. /// No temporary is created. Computations are done and stored directly into the resulting vector. - /// \tparam AE is the type of the vector_expression - /// \param ae is a const reference to the vector_expression /// \return a reference to the resulting vector template // Container assignment without temporary BOOST_UBLAS_INLINE @@ -418,7 +414,6 @@ /// \brief Assign the product of the vector and a scalar to the vector /// Assign the product of the vector and a scalar to the vector. This is lazy-compiled and will be optimized out by the compiler on any type of expression. /// No temporary is created. Computations are done and stored directly into the resulting vector. - /// \tparam AE is the type of the vector_expression /// \param at is a const reference to the scalar /// \return a reference to the resulting vector template @@ -431,7 +426,6 @@ /// \brief Assign the division of the vector by a scalar to the vector /// Assign the division of the vector by a scalar to the vector. This is lazy-compiled and will be optimized out by the compiler on any type of expression. /// No temporary is created. Computations are done and stored directly into the resulting vector. - /// \tparam AE is the type of the vector_expression /// \param at is a const reference to the scalar /// \return a reference to the resulting vector template @@ -782,7 +776,6 @@ /// Serialize a vector into and archive as defined in Boost /// \param ar Archive object. Can be a flat file, an XML file or any other stream - /// \param file_version Optional file version (not yet used) template void serialize(Archive & ar, const unsigned int /* file_version */){ ar & serialization::make_nvp("data",data_); @@ -923,6 +916,7 @@ // Element support BOOST_UBLAS_INLINE const_pointer find_element (size_type i) const { + (void)i; return & zero_; } @@ -1632,6 +1626,7 @@ // Resizing BOOST_UBLAS_INLINE void resize (size_type size, bool preserve = true) { + (void)preserve; if (size > N) bad_size ().raise (); size_ = size; diff -dur boost_1_53_0/boost/range/iterator_range_core.hpp Boost/boost/range/iterator_range_core.hpp --- boost_1_53_0/boost/range/iterator_range_core.hpp 2011-06-05 23:47:57.000000000 +0200 +++ Boost/boost/range/iterator_range_core.hpp 2013-02-08 14:58:13.000000000 +0100 @@ -631,10 +631,10 @@ Construct a new sequence of the specified type from the elements in the given range - \param Range An input range + \tparam Range An input range \return New sequence */ - template< typename SeqT, typename Range > + template< typename SeqT, class Range > inline SeqT copy_range( const Range& r ) { return SeqT( boost::begin( r ), boost::end( r ) ); diff -dur boost_1_53_0/boost/serialization/collection_size_type.hpp Boost/boost/serialization/collection_size_type.hpp --- boost_1_53_0/boost/serialization/collection_size_type.hpp 2010-10-18 08:22:09.000000000 +0200 +++ Boost/boost/serialization/collection_size_type.hpp 2013-02-08 14:48:55.000000000 +0100 @@ -22,7 +22,7 @@ typedef std::size_t base_type; base_type t; public: - collection_size_type(): t(0) {}; + collection_size_type(): t(0) {} explicit collection_size_type(const std::size_t & t_) : t(t_) {} diff -dur boost_1_53_0/boost/serialization/strong_typedef.hpp Boost/boost/serialization/strong_typedef.hpp --- boost_1_53_0/boost/serialization/strong_typedef.hpp 2011-04-23 01:43:18.000000000 +0200 +++ Boost/boost/serialization/strong_typedef.hpp 2013-02-07 13:02:45.000000000 +0100 @@ -33,8 +33,8 @@ > > \ { \ T t; \ - explicit D(const T t_) : t(t_) {}; \ - D(): t() {}; \ + explicit D(const T t_) : t(t_) {} \ + D(): t() {} \ D(const D & t_) : t(t_.t){} \ D & operator=(const D & rhs) { t = rhs.t; return *this;} \ D & operator=(const T & rhs) { t = rhs; return *this;} \ @@ -51,8 +51,8 @@ > > \ { \ T t; \ - explicit D(const T t_) : t(t_) {}; \ - D() : t(){}; \ + explicit D(const T t_) : t(t_) {} \ + D() : t(){} \ D(const D & t_) : t(t_.t){} \ D & operator=(const D & rhs) { t = rhs.t; return *this;} \ D & operator=(const T & rhs) { t = rhs; return *this;} \ diff -dur boost_1_53_0/boost/strong_typedef.hpp Boost/boost/strong_typedef.hpp --- boost_1_53_0/boost/strong_typedef.hpp 2007-11-25 19:07:19.000000000 +0100 +++ Boost/boost/strong_typedef.hpp 2013-02-07 13:04:48.000000000 +0100 @@ -33,8 +33,8 @@ > > \ { \ T t; \ - explicit D(const T t_) : t(t_) {}; \ - D(){}; \ + explicit D(const T t_) : t(t_) {} \ + D(){} \ D(const D & t_) : t(t_.t){} \ D & operator=(const D & rhs) { t = rhs.t; return *this;} \ D & operator=(const T & rhs) { t = rhs; return *this;} \ @@ -51,8 +51,8 @@ > > \ { \ T t; \ - explicit D(const T t_) : t(t_) {}; \ - D(){}; \ + explicit D(const T t_) : t(t_) {} \ + D(){} \ D(const D & t_) : t(t_.t){} \ D & operator=(const D & rhs) { t = rhs.t; return *this;} \ D & operator=(const T & rhs) { t = rhs; return *this;} \ Only in Boost: bootstrap.log Only in Boost: foo.sh Only in Boost: include Only in Boost: lib Only in Boost: project-config.jam Only in Boost/tools/build/v2/engine: bin.macosxx86_64 Only in Boost/tools/build/v2/engine: bootstrap