|
Boost : |
Subject: Re: [boost] [1.46.0 beta 1] Release 1.46.0 beta 1 available
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2011-01-31 14:35:09
Beman Dawes wrote:
> Boost release 1.46.0 beta 1 is now available from SourceForge
>
> See http://sourceforge.net/projects/boost/files/
>
> This release contains one new library, Interval Containers, and
> numerous enhancements and bug fixes for existing libraries.
>
> For details of what's in the release, see
> http://beta.boost.org/users/news/version_1_46_0. Note that the links
> to files on this web page are for the final release - use the
> SourceForge link above to get the beta files.
>
> Please download the beta, give it a try, and report any problems you encounter.
As reported by Philipp Reh, tools/regression do not build, since it still
assumes filesystem v2 is default. Below is the merge of relevant trunk
fixes. OK to commit to release branch?
- Volodya
Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
Merged /trunk/tools/regression:r67039,67733
Index: test/Jamfile.v2
===================================================================
--- test/Jamfile.v2 (revision 68583)
+++ test/Jamfile.v2 (working copy)
@@ -24,5 +24,4 @@
[ run run_pass.cpp ]
[ run run_warn-note.cpp ]
[ run run_warn.cpp ]
-
- ;
\ No newline at end of file
+ ;
Index: doc/library_status.html
===================================================================
--- doc/library_status.html (revision 68583)
+++ doc/library_status.html (working copy)
@@ -451,7 +451,11 @@
through all test results for all test in all libraries.</p>
<hr />
- <p>Copyright 2007 Robert Ramey. Distributed under the Boost Software
+
+ <p>Copyright 2011 Bryce Lelbach.</p>
+ <p>Copyright 2007-2011 Robert Ramey.</p>
+
+ <p>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)</p>
Index: src/process_jam_log.cpp
===================================================================
--- src/process_jam_log.cpp (revision 68583)
+++ src/process_jam_log.cpp (working copy)
@@ -6,6 +6,8 @@
// See http://www.boost.org/tools/regression for documentation.
+#define BOOST_FILESYSTEM_VERSION 3
+
#include <boost/config/warning_disable.hpp>
#include "detail/tiny_xml.hpp"
@@ -609,7 +611,7 @@
std::cout << "Abort: option --boost-root requires a directory argument\n";
std::exit(1);
}
- boost_root = fs::path( argv[1], fs::native );
+ boost_root = fs::path( argv[1] );
if ( !boost_root.is_complete() )
boost_root = ( fs::initial_path() / boost_root ).normalize();
@@ -623,7 +625,7 @@
std::cout << "Abort: option --locate-root requires a directory argument\n";
std::exit(1);
}
- locate_root = fs::path( argv[1], fs::native );
+ locate_root = fs::path( argv[1] );
--argc; ++argv;
}
else if ( std::strcmp( argv[1], "--input-file" ) == 0 )
@@ -644,7 +646,7 @@
}
else
{
- locate_root = fs::path( argv[1], fs::native );
+ locate_root = fs::path( argv[1] );
--argc; ++argv;
}
}
Index: src/library_status.cpp
===================================================================
--- src/library_status.cpp (revision 68583)
+++ src/library_status.cpp (working copy)
@@ -1,9 +1,10 @@
-// Generate Compiler Status HTML from jam regression test output -----------//
+// Generate Library Status HTML from jam regression test output -----------//
-// Copyright Beman Dawes 2002. 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)
+// Copyright Bryce Lelbach 2011
+// Copyright Beman Dawes 2002-2011.
+// 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)
// See http://www.boost.org/tools/regression/ for documentation.
//Note: This version of the original program builds a large table
@@ -130,7 +131,7 @@
if(fs::is_directory(*itr)){
std::pair<col_node::subcolumns_t::iterator, bool> result
= node.m_subcolumns.insert(
- std::make_pair(itr->filename(), col_node())
+ std::make_pair(itr->path().native(), col_node())
);
build_node_tree(*itr, result.first->second);
}
@@ -629,7 +630,7 @@
if(! fs::is_directory(*itr))
continue;
- string test_name = itr->filename();
+ string test_name = itr->path().native();
// if the file name contains ".test"
string::size_type s = test_name.find( ".test" );
if(string::npos != s)
@@ -711,12 +712,12 @@
}
}
- fs::path find_lib_test_dir(){
+ fs::path find_lib_test_dir(fs::path const& initial_path){
// walk up from the path were we started until we find
// bin or bin.v2
- fs::path::const_iterator leaf_itr = fs::initial_path().end();
- fs::path test_lib_dir = fs::initial_path();
+ fs::path::const_iterator it = initial_path.end(), end = initial_path.end();
+ fs::path test_lib_dir = initial_path;
for(;;){
if(fs::is_directory( test_lib_dir / "bin.v2")){
test_lib_dir /= "bin.v2";
@@ -730,16 +731,17 @@
}
if(test_lib_dir.empty())
throw std::string("binary path not found");
- if(*leaf_itr != "libs")
- --leaf_itr;
+ if(*it != "libs")
+ --it;
test_lib_dir.remove_filename();
}
- if(leaf_itr == fs::initial_path().end())
+ if(it == end)
throw std::string("must be run from within a library directory");
- while(leaf_itr != fs::initial_path().end()){
- test_lib_dir /= *leaf_itr++; // append "libs"
+
+ for(;it != end; ++it){
+ test_lib_dir /= *it; // append "libs"
}
return test_lib_dir;
}
@@ -756,7 +758,7 @@
}
string library_name;
for(;;){
- library_name.append(*++e_itr);
+ library_name.append((*++e_itr).native());
if(1 == --count)
break;
library_name.append("/");
@@ -764,8 +766,8 @@
return library_name;
}
- fs::path find_boost_root(){
- fs::path boost_root = fs::initial_path();
+ fs::path find_boost_root(fs::path initial_path){
+ fs::path boost_root = initial_path;
for(;;){
if(fs::is_directory( boost_root / "boost")){
break;
@@ -779,11 +781,11 @@
}
// do_table ----------------------------------------------------------------//
- void do_table(const string & lib_name)
+ void do_table(fs::path const& initial_path, const string & lib_name)
{
col_node root_node;
- fs::path lib_test_dir = find_lib_test_dir();
+ fs::path lib_test_dir = find_lib_test_dir(initial_path);
for ( fs::directory_iterator itr(lib_test_dir); itr != end_itr; ++itr )
{
@@ -825,21 +827,23 @@
int cpp_main( int argc, char * argv[] ) // note name!
{
+ fs::path initial_path = fs::initial_path();
+
fs::path comment_path;
while ( argc > 1 && *argv[1] == '-' )
{
if ( argc > 2 && std::strcmp( argv[1], "--compiler" ) == 0 )
{ specific_compiler = argv[2]; --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--locate-root" ) == 0 )
- { locate_root = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { locate_root = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--boost-root" ) == 0 )
- { boost_root = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { boost_root = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--comment" ) == 0 )
- { comment_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { comment_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--notes" ) == 0 )
- { notes_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { notes_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--notes-map" ) == 0 )
- { notes_map_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { notes_map_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( std::strcmp( argv[1], "--ignore-pass" ) == 0 ) ignore_pass = true;
else if ( std::strcmp( argv[1], "--no-warn" ) == 0 ) no_warn = true;
else if ( std::strcmp( argv[1], "--v2" ) == 0 )
@@ -878,11 +882,11 @@
}
if(boost_root.empty())
- boost_root = find_boost_root();
+ boost_root = find_boost_root(initial_path);
if ( locate_root.empty() )
locate_root = boost_root;
- report.open( fs::path( argv[1], fs::native ) );
+ report.open( fs::path( argv[1] ) );
if ( !report )
{
std::cerr << "Could not open report output file: " << argv[2] << std::endl;
@@ -891,8 +895,8 @@
if ( argc == 3 )
{
- fs::path links_path( argv[2], fs::native );
- links_name = links_path.filename();
+ fs::path links_path( argv[2] );
+ links_name = links_path.native();
links_file.open( links_path );
if ( !links_file )
{
@@ -904,7 +908,7 @@
build_notes_bookmarks();
- const string library_name = find_lib_name(fs::initial_path());
+ const string library_name = find_lib_name(initial_path);
char run_date[128];
std::time_t tod;
@@ -968,7 +972,7 @@
;
}
- do_table(library_name);
+ do_table(initial_path, library_name);
if ( load_notes_html() ) report << notes_html << "\n";
Property changes on: src/library_status.cpp
___________________________________________________________________
Modified: svn:mergeinfo
Merged /trunk/tools/regression/src/library_status.cpp:r67039,67733
Index: src/compiler_status.cpp
===================================================================
--- src/compiler_status.cpp (revision 68583)
+++ src/compiler_status.cpp (working copy)
@@ -1,11 +1,14 @@
// Generate Compiler Status HTML from jam regression test output -----------//
-// Copyright Beman Dawes 2002. 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)
+// Copyright Bryce Lelbach 2011
+// Copyright Beman Dawes 2002-2011.
+// 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)
// See http://www.boost.org/tools/regression/ for documentation.
+// See http://www.boost.org/tools/regression/ for documentation.
+
/*******************************************************************************
This program was designed to work unchanged on all platforms and
@@ -194,11 +197,11 @@
if ( !fs::exists( dir_path ) ) return false;
for ( fs::directory_iterator itr( dir_path ); itr != end_itr; ++itr )
if ( fs::is_directory( *itr )
- && itr->filename() != ignore_dir_named )
+ && itr->path().string() != ignore_dir_named )
{
if ( find_file( *itr, name, path_found ) ) return true;
}
- else if ( itr->filename() == name )
+ else if ( itr->path().string() == name )
{
path_found = *itr;
return true;
@@ -284,16 +287,16 @@
// SunCC creates an internal subdirectory everywhere it writes
// object files. This confuses the target_directory() algorithm.
// This patch ignores the SunCC internal directory. Jens Maurer
- if ( (*itr).filename() == "SunWS_cache" ) continue;
+ if ( (*itr).path().string() == "SunWS_cache" ) continue;
// SGI does something similar for template instantiations. Jens Maurer
- if( (*itr).filename() == "ii_files" ) continue;
+ if( (*itr).path().string() == "ii_files" ) continue;
if ( child.empty() ) child = *itr;
else
{
std::cout << "Warning: only first of two target possibilities will be reported for: \n "
- << root.string() << ": " << child.filename()
- << " and " << (*itr).filename() << "\n";
+ << root.string() << ": " << child.string()
+ << " and " << (*itr).path().string() << "\n";
}
}
}
@@ -365,7 +368,7 @@
std::cerr << "warning: could not find build results for '"
<< relative << "'.\n";
std::cerr << "warning: tried directory "
- << bin_path.native_directory_string() << "\n";
+ << bin_path.parent_path().string() << "\n";
bin_path = "";
}
}
@@ -738,11 +741,11 @@
for ( fs::directory_iterator itr( bin_dir ); itr != end_itr; ++itr )
{
if ( fs::is_directory( *itr )
- && itr->string().find( ".test" ) == (itr->string().size()-5) )
+ && itr->path().string().find( ".test" ) == (itr->path().string().size()-5) )
{
results.push_back( std::string() );
do_row( *itr,
- itr->filename().substr( 0, itr->filename().size()-5 ),
+ itr->path().string().substr( 0, itr->path().string().size()-5 ),
results[results.size()-1] );
}
}
@@ -758,15 +761,15 @@
for (; compiler_itr != end_itr; ++compiler_itr )
{
if ( fs::is_directory( *compiler_itr ) // check just to be sure
- && compiler_itr->filename() != "test" ) // avoid strange directory (Jamfile bug?)
+ && compiler_itr->path().string() != "test" ) // avoid strange directory (Jamfile bug?)
{
if ( specific_compiler.size() != 0
- && specific_compiler != compiler_itr->filename() ) continue;
- toolsets.push_back( compiler_itr->filename() );
- string desc( compiler_desc( compiler_itr->filename() ) );
- string vers( version_desc( compiler_itr->filename() ) );
+ && specific_compiler != compiler_itr->path().string() ) continue;
+ toolsets.push_back( compiler_itr->path().string() );
+ string desc( compiler_desc( compiler_itr->path().string() ) );
+ string vers( version_desc( compiler_itr->path().string() ) );
report << "<td>"
- << (desc.size() ? desc : compiler_itr->filename())
+ << (desc.size() ? desc : compiler_itr->path().string())
<< (vers.size() ? (string( "<br>" ) + vers ) : string( "" ))
<< "</td>\n";
error_count.push_back( 0 );
@@ -880,7 +883,7 @@
fs::recursive_directory_iterator ritr( bin_path );
fs::recursive_directory_iterator end_ritr;
while ( ritr != end_ritr
- && ((ritr->string().find( ".test" ) != (ritr->string().size()-5))
+ && ((ritr->path().string().find( ".test" ) != (ritr->path().string().size()-5))
|| !fs::is_directory( *ritr )))
++ritr; // bypass chaff
if ( ritr != end_ritr )
@@ -892,7 +895,7 @@
{
fs::directory_iterator itr( bin_path );
while ( itr != end_itr
- && ((itr->string().find( ".test" ) != (itr->string().size()-5))
+ && ((itr->path().string().find( ".test" ) != (itr->path().string().size()-5))
|| !fs::is_directory( *itr )))
++itr; // bypass chaff
if ( itr != end_itr )
@@ -937,19 +940,19 @@
if ( argc > 2 && std::strcmp( argv[1], "--compiler" ) == 0 )
{ specific_compiler = argv[2]; --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--locate-root" ) == 0 )
- { locate_root = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { locate_root = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--comment" ) == 0 )
- { comment_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { comment_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--notes" ) == 0 )
- { notes_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { notes_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( argc > 2 && std::strcmp( argv[1], "--notes-map" ) == 0 )
- { notes_map_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { notes_map_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( std::strcmp( argv[1], "--ignore-pass" ) == 0 ) ignore_pass = true;
else if ( std::strcmp( argv[1], "--no-warn" ) == 0 ) no_warn = true;
else if ( std::strcmp( argv[1], "--v1" ) == 0 ) boost_build_v2 = false;
else if ( std::strcmp( argv[1], "--v2" ) == 0 ) boost_build_v2 = true;
else if ( argc > 2 && std::strcmp( argv[1], "--jamfile" ) == 0)
- { jamfile_path = fs::path( argv[2], fs::native ); --argc; ++argv; }
+ { jamfile_path = fs::path( argv[2] ); --argc; ++argv; }
else if ( std::strcmp( argv[1], "--compile-time" ) == 0 ) compile_time = true;
else if ( std::strcmp( argv[1], "--run-time" ) == 0 ) run_time = true;
else { std::cerr << "Unknown option: " << argv[1] << "\n"; argc = 1; }
@@ -990,7 +993,7 @@
return 1;
}
- boost_root = fs::path( argv[1], fs::native );
+ boost_root = fs::path( argv[1] );
if ( locate_root.empty() ) locate_root = boost_root;
if (jamfile_path.empty())
@@ -998,15 +1001,15 @@
jamfile_path = "Jamfile.v2";
else
jamfile_path = "Jamfile";
- jamfile_path = fs::complete( jamfile_path, fs::initial_path() );
+ jamfile_path = fs::system_complete( jamfile_path );
jamfile.open( jamfile_path );
if ( !jamfile )
{
- std::cerr << "Could not open Jamfile: " << jamfile_path.native_file_string() << std::endl;
+ std::cerr << "Could not open Jamfile: " << jamfile_path.string() << std::endl;
return 1;
}
- report.open( fs::path( argv[2], fs::native ) );
+ report.open( fs::path( argv[2] ) );
if ( !report )
{
std::cerr << "Could not open report output file: " << argv[2] << std::endl;
@@ -1015,8 +1018,8 @@
if ( argc == 4 )
{
- fs::path links_path( argv[3], fs::native );
- links_name = links_path.filename();
+ fs::path links_path( argv[3] );
+ links_name = links_path.string();
links_file.open( links_path );
if ( !links_file )
{
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk