Boost 1.35

Akim Demaille akim at lrde.epita.fr
Fri May 16 05:14:27 PDT 2008


Hi all,

I have a few comments wrt Boost 1.35.


First of all, I now have warnings from GDB that I did not have with  
1.34:

> warning: Could not find object file "/opt/local/var/macports/build/ 
> _opt_local_var_macports_sources_rsync 
> .macports.org_release_ports_devel_boost/work/boost_1_35_0/bin.v2/ 
> libs/thread/build/darwin/release/macosx-version-10.4/threading-multi/ 
> thread.o" - no debug information available for "libs/thread/src/ 
> pthread/thread.cpp".
>
> warning: Could not find object file "/opt/local/var/macports/build/ 
> _opt_local_var_macports_sources_rsync 
> .macports.org_release_ports_devel_boost/work/boost_1_35_0/bin.v2/ 
> libs/thread/build/darwin/release/macosx-version-10.4/threading-multi/ 
> exceptions.o" - no debug information available for "libs/thread/src/ 
> pthread/exceptions.cpp".
>
> warning: Could not find object file "/opt/local/var/macports/build/ 
> _opt_local_var_macports_sources_rsync 
> .macports.org_release_ports_devel_boost/work/boost_1_35_0/bin.v2/ 
> libs/thread/build/darwin/release/macosx-version-10.4/threading-multi/ 
> once.o" - no debug information available for "libs/thread/src/ 
> pthread/once.cpp".

I linked as follows:

> ccache i686-apple-darwin8-g++-4.0.1 -Wno-deprecated -Wall -W - 
> Woverloaded-virtual -Wformat -Werror -Wcast-align -Wcast-qual - 
> Wwrite-strings -D_THREAD_SAFE -ggdb -o urbi-console urbi-console.o - 
> Wl,-bind_at_load  -L/opt/local/lib ./.libs/libkernel.a - 
> lboost_thread-mt-1_35



Second, I no longer can find the documentation in the system.
Maybe my previous install was broken, I don't know, but I have
plenty of things in macports/build, in particular the documentation
was available there.  For instance

/opt/local/var/macports/build/ 
_opt_local_var_macports_sources_rsync 
.macports.org_release_ports_devel_boost/work/boost_1_34_1/libs/range/ 
doc/utility_class.html

I can't find the documentation anywhere else on my system, which
was extremely convenient when working offline.  (It seems that
this point and the previous one are connected, and used to work
fine probably because some build directory was not removed.  Still
it was better that it was not!).


Finally, there are problems (which should be forwarded upstream) with
/opt/local/include/boost-1_35/boost/ptr_container/ 
ptr_sequence_adapter.hpp

It reads:

       void range_check_impl( iterator first, iterator last,
                              std::bidirectional_iterator_tag )
       { /* do nothing */ }

       void range_check_impl( iterator first, iterator last,
                              std::random_access_iterator_tag )
       {
           BOOST_ASSERT( first <= last && "out of range unique()/ 
erase_if()" );
           BOOST_ASSERT( this->begin() <= first && "out of range  
unique()/erase_if()" );
           BOOST_ASSERT( last <= this->end() && "out of range unique()/ 
erase_if)(" );
       }

       void range_check( iterator first, iterator last )
       {
           range_check_impl( first, last,
                             BOOST_DEDUCED_TYPENAME  
iterator_category<iterator>::type() );
       }


As you can see, the first function declared formal arguments
that it does not use, which causes spurious warnings.  Of
course the second will also trigger the problem if BOOST_ASSERT
is disable, so it should explicit "pseudo-use" them, using

	(void) first;
	(void) last;

Thanks!


More information about the macports-users mailing list