feature.py:
Use the feature's name in the error output. This helps in understanding the
error message.
project.py:
The original looked like the result of a bad merge as the return value was the
exact same as the return within the try...except block. The try...except
produces a better error message upon failure.
property_set.py:
The string module is unused.
virtual_target.py:
ARM's ar.exe would fail when passed a path to the -via file that had both
POSIX and Windows path separators. Normalizing the path on the target solved
the problem.
common.py:
The requirement parameter in check_init_parameters should be a container. The
original Jam signature marks it as a list with zero or more items. These
changes convert the requirement parameter to using only a container.
msvc.py:
The call to to_seq asserts that command is always some container. So, extend()
should always be used.
tools/rc.py:
Old style exceptions aren't allowed (at least in Python 2.7). This change just
uses the existing AlreadyDefined exception.
testing.py:
loaded_tool_module_path_ is empty upon initial import. Using the __file__
variable instead will always work (provided the import system doesn't change).