documentation mistake

Description

In the document
http://www.boost.org/libs/mpl/doc/refmanual/vector.html
---
push_front<v,x>::type | A new vector of following
elements: [begin<v>::type, end<v>::type), x; see Front
Extensible Sequence.
---
Should be
---
push_front<v,x>::type | A new vector of following
elements: x, [begin<v>::type, end<v>::type); see Front
Extensible Sequence.
---

Refactored the test into two separate test functions. Made the 'directory names with dots' test use the expect_output_line() tool instead of a manual find, causing a better diagnostic to be displayed in case of a failure. Made one of the test Jam scripts more compact. Made the test use the Jamroot.jam file instead of project-root.jam.

Added a --test-config command-line option for specifying where the test configuration file should be loaded from instead of always being looked up in Boost Build's test folder. This allows non-test builds to not use test config when it exists on the system and different tests to use different test configurations when needed.

Added new tests related to Boost Build's default toolset handling. They test that the correct default toolset gets use and that when it gets used that has no different status than any other explicitly specified toolset.

Code cleanup. Converted to using True/False? instead of 1/0. Changed to obey documented coding conventions regarding whitespace and function parameters. Renamed private member functions to use the name prefix.

Simplified implementation with the help to the C-runtime function _get_osfhandle so that on Windows only a single HANDLE is stored and the POSIX-style implementation is never needed; added the handle_type on POSIX systems (typedef for int) and a function returning the underlying handle as an instance of handle_type

Added a new test making sure properties conditioned on multiple different feature values are handled correctly. This especially includes testing the case when one of those features is <toolset> and the value given for it includes a toolset version.

merged changes from branches/iostreams_dev, revisions 42602-42624: adding missing included to fix #1550; fix for positioning on IBM; fix for file_descriptor on POSIX; restructed the version range for the Borland workaround in large_file_test.cpp

Updated the ACTION_RULE to not return its action command output as a single string but instead split it into a list of output lines. This allows Jam code using this output to work correctly independently of what newline character combinations are in use. This was causing problems with Boost Build unit tests which can now be updated to pass.

Consequences & checks:

Final ACTION_RULE rule parameter has changed from output ? to output-lines *.

Updated corresponding Jam documentation.

Updated the all related Boost Build code.

No code on the Boost trunk uses this rule except for Boost Build itself.

Removed the manual boost-build.jam file creation since that file already exists in the SVN repository and this only overwrote it with the same content minus the copyright notice. Removed a reference to the no longer existing boost_build_v2.html file.

Merge the latest unordered changes. These are concerned with getting the tests
working on more compilers. The biggest change is that the exception tests have
been changed to use a very simple exception testing mechanism on top of
lightweight_test. This was because Boost.Test exception testing isn't working
on several platforms. I'm trying to set this up so that I can use Boost.Test on
compilers which it completely supports, and lightweight test on others.
Boost.Test tests more than my simple exception testing code ever will so it's
worth using where I can.

Add a parameter to random_values to control what sort of values it generates.
This means that instead of using equivalent_object to test collisions (which
was a total hack) we now just need another parameter.

This requires some meta programming to act differently for maps and sets.
Because of this pairs no longer need to be generated so remove the code for
doing that (which doesn't work on some compilers).

Remove the generator object, just call generate directly.

Remove some of the tests using int containers, they didn't really add to
anthing other than the compile time (some tests are timing out).

On some compilers the Rogue Wave/Apache? stdcxx library doesn't have the normal std::distance, but instead has a variant that takes the result as the third parameter so it doesn't have to work out the type from the iterator.

Changed the -soname and -shared options in intel-darwin.jam
to use -dynamiclib and -install_name, as done in darwin.jam.
Apparently the Intel compilers on the Mac support the same
options as gcc for setting the internal dynamic library name.

Reverted changes made in rev 43038 which seem to have been committed by mistake and include some user specific settings in it local to the comitter's environment while this file is intended to be used as generic template for actual user-config.jam files and do nothing in case user does not specify his own settings there.

Ensure that the workaround for the MSVC secure iterator problem is only
used when compiling with MSVC. The workaround causes g++'s library debug
mode to report errors due to the assignment from a singular iterator.

Force PPC Darwin to use fork instead of vfork. This change
requires both the parent and child process to explicitly set
the process group id. Vfork guarantees the child process
runs to the exec before it releases the parent process.
Now that we use fork instead of vfork, it's possible for the
parent to wait on the child process without having the child
setpgid on itself. This eliminates spurious hangs on ppc
darwin caused by either a race condition between vfork and
execvp, or a bug in the vfork implementation.

Added a test to ensure we don't try to read from the
stderr pipe descriptor if the descriptor's not valid.

Made the msvc toolset always explicitly enable or disable rtti support based on the <rtti> feature value instead of only setting it if <rtti>on and depending on it being disabled by default. The original behaviour did not work well with msvc 8.0 for which there was not way to disable rtti support as that compiler enables rtti support by default.

On some compilers the Rogue Wave/Apache? stdcxx library doesn't have the normal std::distance, but instead has a variant that takes the result as the third parameter so it doesn't have to work out the type from the iterator.

Changed the -soname and -shared options in intel-darwin.jam
to use -dynamiclib and -install_name, as done in darwin.jam.
Apparently the Intel compilers on the Mac support the same
options as gcc for setting the internal dynamic library name.

Reverted changes made in rev 43038 which seem to have been committed by mistake and include some user specific settings in it local to the comitter's environment while this file is intended to be used as generic template for actual user-config.jam files and do nothing in case user does not specify his own settings there.

Ensure that the workaround for the MSVC secure iterator problem is only
used when compiling with MSVC. The workaround causes g++'s library debug
mode to report errors due to the assignment from a singular iterator.

Force PPC Darwin to use fork instead of vfork. This change
requires both the parent and child process to explicitly set
the process group id. Vfork guarantees the child process
runs to the exec before it releases the parent process.
Now that we use fork instead of vfork, it's possible for the
parent to wait on the child process without having the child
setpgid on itself. This eliminates spurious hangs on ppc
darwin caused by either a race condition between vfork and
execvp, or a bug in the vfork implementation.

Added a test to ensure we don't try to read from the
stderr pipe descriptor if the descriptor's not valid.

Made the msvc toolset always explicitly enable or disable rtti support based on the <rtti> feature value instead of only setting it if <rtti>on and depending on it being disabled by default. The original behaviour did not work well with msvc 8.0 for which there was not way to disable rtti support as that compiler enables rtti support by default.