The set of libraries that have extraneous files/dirs are roughly: algorithm, align, asio, assert, bind, chrono, compatibility, compute, concept_check, config, container, context, conversion, convert, core, crc, date_time, disjoint_sets, dynamic_bitset, endian, filesystem, format, functional, fusion, geometry, gil, heap, interprocess, intrusive, lexical_cast, locale, log, math, move, mpl, multi_index, multiprecision, numeric, phoenix, polygon, predef (yes my own lib, I know), property_tree, proto, python, random, random, regex, serialization, smart_ptr, sort, spirit, statechart, static_assert, test, thread, tokenizer, type_index, type_traits, typeof, units, unordered, utility, uuid, variant, wave, and xpressive.
Since there are several of mine listed there, these typically have: tools: Stuff to help me maintain the library, look away now ;) example(s): Examples for end users, these are typically built into the documentation, so I guess they could go under doc/ at a pinch, but I feel they are more "discoverable" if they're in a top level directory. The Jamfile in test/ references the one in example/ so these get built as part of the tests, even though they're not "tests" as such. config: Common directory for build time configuration. Could go under build/config I guess. performance: Performance tests. Not built/run as part of the test suite as they take *much* too long. There are a few other stray directories in Math that should probably be tidied up when I get the time, but they should be harmless I would have thought. John.