Created
February 9, 2014 23:14
-
-
Save Wilfred/8907578 to your computer and use it in GitHub Desktop.
RPython error on iterating over a bytestring.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from __future__ import unicode_literals | |
import sys | |
def entry_point(argv): | |
bytes_seq = b"abcdef1234!" | |
for byte in bytes_seq: | |
print byte.decode('utf-8') | |
return 0 | |
def target(*args): | |
return entry_point, None | |
if __name__ == '__main__': | |
entry_point(sys.argv) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[translation:info] Error: | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/translator/goal/translate.py", line 318, in main | |
[translation:info] drv.proceed(goals) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/translator/driver.py", line 534, in proceed | |
[translation:info] return self._execute(goals, task_skip = self._maybe_skip()) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/translator/tool/taskengine.py", line 114, in _execute | |
[translation:info] res = self._do(goal, taskcallable, *args, **kwds) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/translator/driver.py", line 283, in _do | |
[translation:info] res = func() | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/translator/driver.py", line 320, in task_annotate | |
[translation:info] s = annotator.build_types(self.entry_point, self.inputtypes) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 91, in build_types | |
[translation:info] return self.build_graph_types(flowgraph, inputcells, complete_now=complete_now) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 145, in build_graph_types | |
[translation:info] self.complete() | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 199, in complete | |
[translation:info] self.complete_pending_blocks() | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 194, in complete_pending_blocks | |
[translation:info] self.processblock(graph, block) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 344, in processblock | |
[translation:info] self.flowin(graph, block) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 408, in flowin | |
[translation:info] self.consider_op(block, i) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py", line 602, in consider_op | |
[translation:info] resultcell = consider_meth(*argcells) | |
[translation:info] File "<48-codegen /home/wilfred/projects/trifle/src/pypy/rpython/annotator/annrpython.py:641>", line 3, in consider_op_simple_call | |
[translation:info] return arg.simple_call(*args) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/unaryop.py", line 151, in simple_call | |
[translation:info] return obj.call(getbookkeeper().build_args("simple_call", args_s)) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/unaryop.py", line 739, in call | |
[translation:info] return bookkeeper.pbc_call(pbc, args) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/bookkeeper.py", line 660, in pbc_call | |
[translation:info] results.append(desc.pycall(schedule, args, s_previous_result, op)) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/description.py", line 299, in pycall | |
[translation:info] result = self.specialize(inputcells, op) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/description.py", line 289, in specialize | |
[translation:info] enforceargs(self, inputcells) # can modify inputcells in-place | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/signature.py", line 125, in __call__ | |
[translation:info] s_input = unionof(s_input, s_arg) | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/model.py", line 744, in unionof | |
[translation:info] s1 = pair(s1, s2).union() | |
[translation:info] File "/home/wilfred/projects/trifle/src/pypy/rpython/annotator/binaryop.py", line 56, in union | |
[translation:info] raise UnionError(obj1, obj2) | |
[translation:ERROR] UnionError: | |
[translation:ERROR] | |
[translation:ERROR] Offending annotations: | |
[translation:ERROR] SomeUnicodeString() | |
[translation:ERROR] SomeString() | |
[translation:ERROR] | |
[translation:ERROR] | |
[translation:ERROR] Occurred processing the following simple_call: | |
[translation:ERROR] (KeyError getting at the binding!) | |
[translation:ERROR] v1 = simple_call((function str2charp), v0) | |
[translation:ERROR] | |
[translation:ERROR] In <FunctionGraph of (rpython.rlib.rfile:52)create_file at 0x2e791d0>: | |
[translation:ERROR] Happened at file /home/wilfred/projects/trifle/src/pypy/rpython/rlib/rfile.py line 56 | |
[translation:ERROR] | |
[translation:ERROR] ==> ll_name = rffi.str2charp(filename) | |
[translation:ERROR] try: | |
[translation:ERROR] ll_mode = rffi.str2charp(mode) | |
[translation:ERROR] | |
[translation:ERROR] Known variable annotations: | |
[translation:ERROR] v0 = SomeUnicodeString() | |
[translation:ERROR] | |
[translation:ERROR] Processing block: | |
[translation:ERROR] block@63 is a <class 'rpython.flowspace.flowcontext.SpamBlock'> | |
[translation:ERROR] in (rpython.rlib.rfile:52)create_file | |
[translation:ERROR] containing the following operations: | |
[translation:ERROR] v1 = simple_call((function str2charp), v0) | |
[translation:ERROR] v2 = simple_call((function str2charp), mode_0) | |
[translation:ERROR] --end-- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment