Blog

Boost 1.37 released

Boost 1.37 is out. This marks another release on Boost's new schedule and well done to everybody for managing to get it done.

There is one new library, Proto, for making embedded domain specific languages (EDSLs) in C++ together with updates to several other libraries (Asio, Circular Buffer, Dynamic Bitset, Hash, Interprocess, Intrusive, Math, Type Traits, and Unordered)

Kirit, 4th November, 2008 13:17 (UTC)

Boost 1.36 released

Earlier today Beman Dawes announced the release of Boost 1.36. It contains 4 new libraries and updates to many others.

  • Accumulators: Framework for incremental calculation, and collection of statistical accumulators, from Eric Niebler.
  • Exception: A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads, from Emil Dotchevski.
  • Units: Zero-overhead dimensional analysis and unit/quantity manipulation and conversion, from Matthias Schabel and Steven Watanabe
  • Unordered: Unordered associative containers, from Daniel James.

Updated libraries include Asio, Assign, Function, Hash, Interprocess, Intrusive, Math, MPI, Multi-index Containers, PtrContainer, Spirit, Thread, Wave, and Xpressive.

It is available for download now on Sourceforge and should be on the Boost web site in a few hours.

Subversion check out is at

http://svn.boost.org/svn/boost/tags/release/Boost_1_36_0/

Kirit, 15th August, 2008 05:20 (UTC)

Boost 1.35 released

Earlier today Beman Dawes announced the release of Boost 1.35. From his release notes:

  • Asio: Portable networking, including sockets, timers, hostname resolution and socket iostreams, from Chris Kohlhoff.
  • Bimap: Boost.Bimap is a bidirectional maps library for C++. With Boost.Bimap you can create associative containers in which both types can be used as key, from Matias Capeletto.
  • Circular Buffer: STL compliant container also known as ring or cyclic buffer, from Jan Gaspar.
  • Function Types: Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types. From Tobias Schwinger.
  • Fusion: Library for working with tuples, including various containers, algorithms, etc. From Joel de Guzman, Dan Marsden and Tobias Schwinger.
  • GIL: Generic Image Library, from Lubomir Bourdev and Hailin Jin.
  • Interprocess: Shared memory, memory mapped files, process-shared mutexes, condition variables, containers and allocators, from Ion Gaztañaga.
  • Intrusive: Intrusive containers and algorithms, from Ion Gaztañaga.
  • Math/Special Functions: A wide selection of mathematical special functions from John Maddock, Paul Bristow, Hubert Holin and Xiaogang Zhang.
  • Math/Statistical Distributions: A wide selection of univariate statistical distributions and functions that operate on them from John Maddock and Paul Bristow.
  • MPI: Message Passing Interface library, for use in distributed-memory parallel application programming, from Douglas Gregor and Matthias Troyer.
  • System: Operating system support, including the diagnostics support that will be part of the C++0x standard library, from Beman Dawes.

Congratulations to everybody who worked on this!

Kirit, 30th March, 2008 12:48 (UTC)

Boost 1.35 approaching and other news

The Boost developers are in the process of getting the libraries stabilised for the upcoming Boost 1.35 release. Right now the branch that is being prepared can be found at https://svn.boost.org/svn/boost/branches/release

If you're on Windows then, like me, you're probably not used to having to build libraries yourself. It always takes me an age to work out how to do a build. Here is what I'm doing, hopefully this will help some others too.

Firstly I use TortoiseSVN to check out the above URL into E:\Dev\Boost\src. Simply use TortoiseSVN to do an update every few days when you're ready to try a newer version.

The next commands I keep in a .bat file in my Boost directory (one level above where I check out the release branch), but here they are explained.

Set up the Microsoft Visual C++ environment for command line builds. This assumes MSVC 8.1 and you used the default install path:

call “c:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat”

We need to build BJam first, so go into its directory and start its build script.

cd src\tools\jam
call build_dist.bat

When that is built we need it in the root of the Boost source code and we need to get back there to do the next steps.

copy boost-jam-3.1.16-1-ntx86\bjam.exe ..\..\..
cd ..\..\..

We need to build the other tools that are needed to build some of the libraries:

bjam —toolset=msvc-8.1 tools

We then build Boost itself. This will build and install Boost into E:\Dev\Boost\. The options that I'm using mean:

  • Build both release and debug builds.
  • Create shared libraries (DLLs).
  • Build for multi-threaded MSVC builds.
  • Do not build Python libraries.

These last two seem to be the best options for MSVC 8.1 projects.

It should be safe to install this to the same directory as an earlier release, but you may want to keep it separate anyway so you can delete the install directory before rebuilding after an update.

bjam —toolset=msvc-8.1 —prefix=..\install debug release runtime-link=shared threading=multi install —without-python

Bugs and errors can be reported via http://svn.boost.org/ and the Boost mailing lists.

Other news

The site has been pretty quiet lately, the quiet nicely interrupted by Port4l posting his thread safe singleton. I've got a couple of little snippets I want to post and have some changes to make to tidy up some of the earlier ones now that they can make use of new 1.35 libraries (like Boost.FunctionTypes).

There is also a face lift for the site. I want to keep the pages as light as possible, but they ought to look at least a little nicer than they do now.

Kirit, 4th December, 2007 12:54 (UTC)

Site up again and some small changes

Just a quick run down of what's been happening behind the scenes.

  1. The site was down for around twelve hours after our hosting company installed a Windows update on the machine which doesn't seem to have gone on properly. This update broke the Visual Studio 2005 run time and it took quite some time to work out a fix. I don't know if the fix that's there at the moment will be stable or not as I still don't know the root cause of the breakage. Irritating.
  2. The recipe pages now show who first added them together with a list of people who have made contributions to them. There are a few other minor changes including a fix for a configuration error that was stopping the emails going out when somebody replies to a forum post and a small improvement on the page history list.

Kirit, 5th October, 2007 03:06 (UTC)

Submissions and visits

A big thank you to dizzy and Edd Dawson for being the first two to get stuck in. dizzy submitted the first recipe (I don't count), but Edd beat him in being the first to get involved. I'm hoping that more of you will find some time and find a recipe to submit over the weekend.

More than 1,000 people have seen the site now and a couple of hundred of them have been here more than once — this is between Monday and Wednesday as I get the stats from Google Analytics a day late. This is pretty encouraging and I hope a good indicator that people will find the site useful and maybe even get involved.

I've re-arranged the content on the front page a little and will remove the libraries from the site map page (they're just clutter there). I hope it's better. I also ought to do something to clarify the navigation panel on the left.

I've been a bad boy and used a table for layout on the front page, but I don't really want to be fighting CSS and divs for hours when I could be doing something more productive. If somebody knows a good way of doing it please leave a note.

It isn't absolutely clear, at least to me, what ought to go on the front page, so if you have suggestions just post a comment on this post. Is what is there fine, should some things have more prominence or less prominence?

dizzy also suggested something I'd been wondering about but couldn't make my mind up about until we discussed it. You might notice that the format of the URLs for the recipes has changed. Recipes still need unique names, but the shorter URLs will be easier to copy and paste, although of course they're also less descriptive.

I'm going to leave the libraries ones unchanged so that they will be easier to remember. There's less of them and I think it's more likely that people will want to be able to enter them from memory. Again, if you have any feelings about this one way or another then let me know.

And finally, I've talked to a designer about getting the site looking a bit nicer. I want to do it without making the site so graphically heavy it becomes slow though. Dave Abrahams has given his blessing to use something more in keeping with the other Boost documentation which I think gives us a good starting point, although I'm not sure we want to make it look exactly the same (especially as the site is unofficial).

It'll be some weeks before we're ready with it (especially as I'm sneaking off diving for a week next week — but I'll be checking in here at least daily), so do make suggestions!

Kirit, 27th September, 2007 12:16 (UTC)

Two days old today

Yesterday was the site's first full day of operation and there were more than 200 visitors and over 1,000 pages served. I feel pretty happy about that. I expect that the numbers will dip down again when the novelty wears off, but hopefully many people picked up the Atom feed for the new recipes, but if you're grabbing a feed now then try the one that includes the blog entries.

I had a very nice chat with Matias last night on IRC. Matias is deeply involved in the Improve Boost Docs project (IBD for short). BTW, you can find both of us on irc://freenode/ibd quite a lot of the time if you want to chat. I use the nic kayess.

The IBD project is a really great idea. All developers understand that documentation is a Sisyphean task. They're never finished and they're never good enough. The problem that IBD has been having is that participation has been low. Partly this is because, by its nature, IBD needs to be quite structured in order to work. What none of us want is to distract the library authors from producing more great work for us to use.

What both Matias and I hope is that this cookbook site can help more people to participate by feeding examples, code snippets and short bits of documentation into the official library documentation. I hope that the barriers to participation are lower here and that means more people will get involved.

So, if you are a Boost user please do at least one of these:

  1. Grab the recipe feed in your news reader. Better yet, grab the site feed which also includes the blog entries (there will be a feed that will also include the forum posts later).
  2. Feel free to register and post requests for recipes on the forums associated with the libraries, post comments about the recipes already there and better yet post recipes. If you're learning a Boost library then the code you get working is especially valuable as it's likely that others are going down the same path as you.
  3. If you post code snippets on your web site or on the Boost users list then please add them here too. If you come across useful code snippets please ask the author to post them here.

If you use Boost I think you love the hard work that the library writers have put in. This site is your chance to give something back, even if it's just a post telling us what you find difficult so we can try to get it explained better — with a recipe you can use.

Kirit, 25th September, 2007 15:18 (UTC)


This is not an official Boost site. For more information on Boost please see Boost.org.