def new_compiler(*args, **kwargs):
make_silent = kwargs.pop('<STR_LIT>', True)<EOL>cc = _new_compiler(*args, **kwargs)<EOL>if is_msvc(cc):<EOL><INDENT>from distutils.msvc9compiler import get_build_version<EOL>if get_build_version() == <NUM_LIT:10>:<EOL><INDENT>cc.initialize()<EOL>for ldflags in [cc.ldflags_shared, cc.ldflags_shared_debug]:<EOL><INDENT>unique_extend(ldflags, ['<STR_LIT>'])<EOL><DEDENT><DEDENT>elif get_build_version() == <NUM_LIT>:<EOL><INDENT>make_silent = False<EOL><DEDENT><DEDENT>if make_silent:<EOL><INDENT>cc.spawn = _CCompiler_spawn_silent<EOL><DEDENT>return cc<EOL>
Create a C compiler.

    :param bool silent: Eat all stdio? Defaults to ``True``.

    All other arguments passed to ``distutils.ccompiler.new_compiler``.