Created
October 19, 2013 23:27
-
-
Save Wilfred/7062839 to your computer and use it in GitHub Desktop.
rpython complains about the type here
This file contains hidden or 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
| import sys | |
| import re | |
| WHITESPACE = 'whitespace' | |
| OPEN_PAREN = 'open-paren' | |
| CLOSE_PAREN = 'close-paren' | |
| INTEGER = 'integer' | |
| TOKENS = { | |
| WHITESPACE: r"\s+" | |
| } | |
| def lex(text): | |
| lexed_tokens = [] | |
| while True: | |
| found_match = False | |
| for token, regexp in TOKENS.iteritems(): | |
| match = re.match(regexp, text) | |
| if match: | |
| found_match = True | |
| lexed_tokens.append((token, match.group(0))) | |
| text = text[match.end():] | |
| continue | |
| if not found_match: | |
| print "Could not lex remainder: %r" % text | |
| break | |
| return lexed_tokens | |
| def entry_point(argv): | |
| if len(argv) != 1: | |
| print "Usage: lexer <code snippet>" | |
| return 1 | |
| print 'tokens: %s' % lex(argv[0]) | |
| return 0 | |
| def target(*args): | |
| return entry_point, None | |
| if __name__ == '__main__': | |
| entry_point(sys.argv) |
This file contains hidden or 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
| $ ./rpython lexer.py [0:22:03] | |
| [translation:info] 2.7.3 (default, Sep 26 2013, 20:08:41) | |
| [translation:info] [GCC 4.6.3] | |
| [platform:msg] Set platform with 'host' cc=None, using cc='gcc' | |
| [translation:info] Translating target as defined by lexer | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/gcctest.c -o /tmp/usession-release-2.1.x-4/gcctest.o | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/gcctest.c -o /tmp/usession-release-2.1.x-4/gcctest.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/gcctest.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/gcctest | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_0.c -o /tmp/usession-release-2.1.x-4/platcheck_0.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_0.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_0 | |
| [translation] translate.py configuration: | |
| [translation] [translate] | |
| [translation] targetspec = lexer | |
| [translation] translation configuration: | |
| [translation] [translation] | |
| [translation] gc = minimark | |
| [translation] gctransformer = framework | |
| [translation] list_comprehension_operations = True | |
| [translation] withsmallfuncsets = 5 | |
| [translation:info] Annotating&simplifying... | |
| [1c] {translation-task | |
| starting annotate | |
| [translation:info] with policy: rpython.annotator.policy.AnnotatorPolicy | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_1.c -o /tmp/usession-release-2.1.x-4/platcheck_1.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_1.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_1 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_2.c -o /tmp/usession-release-2.1.x-4/platcheck_2.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_2.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_2 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_3.c -o /tmp/usession-release-2.1.x-4/platcheck_3.o | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_4.c -o /tmp/usession-release-2.1.x-4/platcheck_4.o | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_5.c -o /tmp/usession-release-2.1.x-4/platcheck_5.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_5.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_5 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_6.c -o /tmp/usession-release-2.1.x-4/platcheck_6.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_6.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_6 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_7.c -o /tmp/usession-release-2.1.x-4/platcheck_7.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_7.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_7 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_8.c -o /tmp/usession-release-2.1.x-4/platcheck_8.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_8.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_8 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_9.c -o /tmp/usession-release-2.1.x-4/platcheck_9.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_9.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_9 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_10.c -o /tmp/usession-release-2.1.x-4/platcheck_10.o | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_11.c -o /tmp/usession-release-2.1.x-4/platcheck_11.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_11.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_11 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_12.c -o /tmp/usession-release-2.1.x-4/platcheck_12.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_12.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_12 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_13.c -o /tmp/usession-release-2.1.x-4/platcheck_13.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_13.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_13 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused -I/home/wilfred/projects/baobab/pypy/rpython/translator/c /tmp/usession-release-2.1.x-4/platcheck_14.c -o /tmp/usession-release-2.1.x-4/platcheck_14.o | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused -I/home/wilfred/projects/baobab/pypy/rpython/translator/c /home/wilfred/projects/baobab/pypy/rpython/translator/c/src/thread.c -o /tmp/usession-release-2.1.x-4/rpython/translator/c/src/thread.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_14.o /tmp/usession-release-2.1.x-4/rpython/translator/c/src/thread.o -pthread -Wl,--export-dynamic,--version-script=/tmp/usession-release-2.1.x-4/dynamic-symbols-0 -lrt -o /tmp/usession-release-2.1.x-4/platcheck_14 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_15.c -o /tmp/usession-release-2.1.x-4/platcheck_15.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_15.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_15 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_16.c -o /tmp/usession-release-2.1.x-4/platcheck_16.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_16.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_16 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_17.c -o /tmp/usession-release-2.1.x-4/platcheck_17.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_17.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_17 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_18.c -o /tmp/usession-release-2.1.x-4/platcheck_18.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_18.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_18 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_19.c -o /tmp/usession-release-2.1.x-4/platcheck_19.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_19.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_19 | |
| [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-release-2.1.x-4/platcheck_20.c -o /tmp/usession-release-2.1.x-4/platcheck_20.o | |
| [platform:execute] gcc /tmp/usession-release-2.1.x-4/platcheck_20.o -pthread -lrt -o /tmp/usession-release-2.1.x-4/platcheck_20 | |
| .......++[3c] translation-task} | |
| [Timer] Timings: | |
| [Timer] annotate --- 2.3 s | |
| [Timer] ======================================== | |
| [Timer] Total: --- 2.3 s | |
| [translation:ERROR] Error: | |
| [translation:ERROR] Traceback (most recent call last): | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/translator/goal/translate.py", line 321, in main | |
| [translation:ERROR] drv.proceed(goals) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/translator/driver.py", line 733, in proceed | |
| [translation:ERROR] return self._execute(goals, task_skip = self._maybe_skip()) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/translator/tool/taskengine.py", line 114, in _execute | |
| [translation:ERROR] res = self._do(goal, taskcallable, *args, **kwds) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/translator/driver.py", line 284, in _do | |
| [translation:ERROR] res = func() | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/translator/driver.py", line 321, in task_annotate | |
| [translation:ERROR] s = annotator.build_types(self.entry_point, self.inputtypes) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 93, in build_types | |
| [translation:ERROR] return self.build_graph_types(flowgraph, inputcells, complete_now=complete_now) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 149, in build_graph_types | |
| [translation:ERROR] self.complete() | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 203, in complete | |
| [translation:ERROR] self.complete_pending_blocks() | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 198, in complete_pending_blocks | |
| [translation:ERROR] self.processblock(graph, block) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 348, in processblock | |
| [translation:ERROR] self.flowin(graph, block) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 412, in flowin | |
| [translation:ERROR] self.consider_op(block, i) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 590, in consider_op | |
| [translation:ERROR] argcells = [self.binding(a) for a in op.args] | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/annrpython.py", line 246, in binding | |
| [translation:ERROR] return self.bookkeeper.immutableconstant(arg) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/bookkeeper.py", line 317, in immutableconstant | |
| [translation:ERROR] return self.immutablevalue(const.value) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/bookkeeper.py", line 460, in immutablevalue | |
| [translation:ERROR] s_self = self.immutablevalue(x.__self__, need_const) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/bookkeeper.py", line 395, in immutablevalue | |
| [translation:ERROR] result.dictdef.generalize_key(self.immutablevalue(ek)) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/dictdef.py", line 126, in generalize_key | |
| [translation:ERROR] self.dictkey.generalize(s_key) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/dictdef.py", line 30, in generalize | |
| [translation:ERROR] updated = ListItem.generalize(self, s_other_value) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/listdef.py", line 111, in generalize | |
| [translation:ERROR] s_new_value = unionof(self.s_value, s_other_value) | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/model.py", line 746, in unionof | |
| [translation:ERROR] s1 = pair(s1, s2).union() | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/binaryop.py", line 558, in union | |
| [translation:ERROR] unions = [unionof(x,y) for x,y in zip(tup1.items, tup2.items)] | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/model.py", line 746, in unionof | |
| [translation:ERROR] s1 = pair(s1, s2).union() | |
| [translation:ERROR] File "/home/wilfred/projects/baobab/pypy/rpython/annotator/binaryop.py", line 55, in union | |
| [translation:ERROR] raise UnionError(obj1, obj2) | |
| [translation:ERROR] UnionError: (SomePBC(can_be_None=False, const=<type 'str'>, subset_of=None), SomeBuiltin(analyser=<function builtin_unicode at 0x998387c>, const=<type 'unicode'>, methodname='__builtin__.unicode', s_self=None)) | |
| [translation:ERROR] Processing block: | |
| [translation:ERROR] block@9 is a <class 'rpython.flowspace.flowcontext.SpamBlock'> | |
| [translation:ERROR] in (re:226)_compile__star_2 | |
| [translation:ERROR] containing the following operations: | |
| [translation:ERROR] v0 = getitem(key_0, (0)) | |
| [translation:ERROR] v1 = type(v0) | |
| [translation:ERROR] v2 = newtuple(v1) | |
| [translation:ERROR] v3 = add(v2, key_0) | |
| [translation:ERROR] v4 = simple_call((builtin_function_or_method get), v3) | |
| [translation:ERROR] v5 = is_(v4, (None)) | |
| [translation:ERROR] v6 = is_true(v5) | |
| [translation:ERROR] --end-- | |
| [translation] start debugger... | |
| > /home/wilfred/projects/baobab/pypy/rpython/annotator/binaryop.py(55)union() | |
| -> raise UnionError(obj1, obj2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment