提交 26f5b30b authored 作者: slefrancois's avatar slefrancois

add comp_args option to compiler try_ methods

上级 15a1693b
......@@ -1713,7 +1713,8 @@ class Compiler(object):
@classmethod
def _try_compile_tmp(cls, src_code, tmp_prefix='', flags=(),
try_run=False, output=False, compiler=None):
try_run=False, output=False, compiler=None,
comp_args=True):
"""
Try to compile (and run) a test program.
......@@ -1727,12 +1728,17 @@ class Compiler(object):
If try_run is True, returns a (compile_status, run_status) pair.
If output is there, we append the stdout and stderr to the output.
Compile arguments from the Compiler's compile_args() method are added
if comp_args=True.
"""
if not compiler:
return False
flags = list(flags)
# Get compile arguments from compiler method
args = cls.compile_args()
# Get compile arguments from compiler method if required
if comp_args:
args = cls.compile_args()
else:
args = []
compilation_ok = True
run_ok = False
out, err = None, None
......@@ -1784,13 +1790,17 @@ class Compiler(object):
@classmethod
def _try_flags(cls, flag_list, preambule="", body="",
try_run=False, output=False, compiler=None):
try_run=False, output=False, compiler=None,
comp_args=True):
"""
Try to compile a dummy file with these flags.
Returns True if compilation was successful, False if there
were errors.
Compile arguments from the Compiler's compile_args() method are added
if comp_args=True.
"""
if not compiler:
return False
......@@ -1805,7 +1815,8 @@ class Compiler(object):
""" % locals())
return cls._try_compile_tmp(code, tmp_prefix='try_flags_',
flags=flag_list, try_run=try_run,
output=output, compiler=compiler)
output=output, compiler=compiler,
comp_args=comp_args)
def try_march_flag(flags):
......@@ -2161,16 +2172,16 @@ class GCC_compiler(Compiler):
@classmethod
def try_compile_tmp(cls, src_code, tmp_prefix='', flags=(),
try_run=False, output=False):
try_run=False, output=False, comp_args=True):
return cls._try_compile_tmp(src_code, tmp_prefix, flags,
try_run, output,
theano.config.cxx)
try_run, output, theano.config.cxx,
comp_args)
@classmethod
def try_flags(cls, flag_list, preambule="", body="",
try_run=False, output=False):
try_run=False, output=False, comp_args=True):
return cls._try_flags(flag_list, preambule, body, try_run, output,
theano.config.cxx)
theano.config.cxx, comp_args)
@staticmethod
def compile_str(module_name, src_code, location=None,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论