forked from M-Labs/artiq
artiq_compile: make print() write to core log, not an invalid op.
Fixes #710.
This commit is contained in:
parent
f314f8b8f5
commit
1bd4d13391
|
@ -699,7 +699,7 @@ class TypedtreeHasher(algorithm.Visitor):
|
|||
return hash(tuple(freeze(getattr(node, field_name)) for field_name in fields))
|
||||
|
||||
class Stitcher:
|
||||
def __init__(self, core, dmgr, engine=None):
|
||||
def __init__(self, core, dmgr, engine=None, print_as_rpc=True):
|
||||
self.core = core
|
||||
self.dmgr = dmgr
|
||||
if engine is None:
|
||||
|
@ -715,7 +715,8 @@ class Stitcher:
|
|||
# We don't want some things from the prelude as they are provided in
|
||||
# the host Python namespace and gain special meaning when quoted.
|
||||
self.prelude = prelude.globals()
|
||||
self.prelude.pop("print")
|
||||
if print_as_rpc:
|
||||
self.prelude.pop("print")
|
||||
self.prelude.pop("array")
|
||||
|
||||
self.functions = {}
|
||||
|
|
|
@ -82,11 +82,13 @@ class Core:
|
|||
self.core = self
|
||||
self.comm.core = self
|
||||
|
||||
def compile(self, function, args, kwargs, set_result=None, attribute_writeback=True):
|
||||
def compile(self, function, args, kwargs, set_result=None,
|
||||
attribute_writeback=True, print_as_rpc=True):
|
||||
try:
|
||||
engine = _DiagnosticEngine(all_errors_are_fatal=True)
|
||||
|
||||
stitcher = Stitcher(engine=engine, core=self, dmgr=self.dmgr)
|
||||
stitcher = Stitcher(engine=engine, core=self, dmgr=self.dmgr,
|
||||
print_as_rpc=print_as_rpc)
|
||||
stitcher.stitch_call(function, args, kwargs, set_result)
|
||||
stitcher.finalize()
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ def main():
|
|||
|
||||
object_map, kernel_library, _, _ = \
|
||||
core.compile(exp.run, [exp_inst], {},
|
||||
attribute_writeback=False)
|
||||
attribute_writeback=False, print_as_rpc=False)
|
||||
except CompileError as error:
|
||||
return
|
||||
finally:
|
||||
|
|
Loading…
Reference in New Issue