[1.46.0 beta 1] Release 1.46.0 beta 1 available

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. Thanks, -- The Boost Release Team Beman Dawes Daniel James Eric Niebler Rene Rivera Vladimir Prus

Hi Release Team, 2011/1/31 Beman Dawes <bdawes@acm.org>:
There seems to be a problem with boost_1_46_0_beta1.7z and boost_1_46_0_beta1.zip on http://sourceforge.net/projects/boost/files/boost/1.46.0.beta.1/ I didn't get proper versions of the files. I tried downloading on a windows-7 (64Bit) machine using firefox. To make sure the problem is not on my side I also downloaded boost_1_45_0, which worked without problems. Regards, Joachim

On Mon, Jan 31, 2011 at 8:00 AM, Joachim Faulhaber <afojgo@googlemail.com> wrote:
The MD5 sums given by SourceForge are correct, so it looks like the files got uploaded OK. But like you, I'm getting very short files when I try a download. Each time I try to download a file, I get a different count. SourceForge is also very slow:-( I'll try again later to file a trouble report. --Beman

On Jan 31, 2011, at 9:23 AM, John Maddock wrote:
SourceForge is also very slow:-(
No kidding, I've been trying on and off the last two days to upload a beta build of the PDF docs for 1.46, but it never gets past about 6Mb and then times out :-(
Sourceforge has been having lots of problems in the last week. http://sourceforge.net/blog/sourceforge-attack-full-report/ -- Marshall Marshall Clow Idio Software <mailto:mclow.lists@gmail.com> A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait). -- Yu Suzuki

On Tue, Feb 1, 2011 at 1:23 AM, John Maddock <boost.regex@virgin.net> wrote:
[potentially OT] I have a Sourceforge account and I got an email saying that they were a target of an attack recently. Maybe they and their mirrors are under another attack at this time again. HTH -- Dean Michael Berris about.me/deanberris

Beman Dawes wrote:
http://beta.boost.org/users/news/version_1_46_0 the itl links is to: http://beta.boost.org/libs/icl/index.html which doesn't work

On 31 January 2011 15:47, Neal Becker <ndbecker2@gmail.com> wrote:
I haven't uploaded the documentation. We don't normally upload it for the beta, although I did for the last release and I think that went ok. It's a bit of hassle though, so I might not get round to doing it anytime soon. Daniel

On Jan 31, 2011, at 4:26 AM, Beman Dawes wrote:
I get really small files from SF this morning. The .tar.gz file is 152 KB, and the tar.bz2 is 118K. http://sourceforge.net/projects/boost/files/boost/1.46.0.beta.1/ -- Marshall Marshall Clow Idio Software <mailto:mclow.lists@gmail.com> A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait). -- Yu Suzuki

Beman Dawes wrote:
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 ) {

On 01/31/2011 07:26 AM,http://sourceforge.net/projects/boost/files/boost/1.46.0.beta.1/ Beman Dawes wrote:
Boost release 1.46.0 beta 1 is now available from SourceForge
Please download the beta, give it a try, and report any problems you encounter.
It seems that the files on SourceForge are corrupted. I've tried the .gz, .bz2, and .zip and have had problems unarchiving all of them. 1.45 is working fine for me though. Thanks. - Daniel
participants (9)
-
Beman Dawes
-
Daniel James
-
Daniel Neuberger
-
Dean Michael Berris
-
Joachim Faulhaber
-
John Maddock
-
Marshall Clow
-
Neal Becker
-
Vladimir Prus