translation failure with rpython in default branch of pypy but success with py3.6 branch
- Lenguaje dominante
- Python
- Estrellas
- 391
- Forks
- 62
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
As I'm trying to translate [cycy](https://github.com/DeloitteHux/cycy), first I used rpython in default branch of the cloned pypy source, ending in this error:
```
(py27) Xuans-MBP:cycy xuanwu$ python ~/git/pypy/rpython/bin/rpython cycy/target.py
[translation:info] 2.7.17 |Anaconda, Inc.| (default, Oct 21 2019, 14:10:59)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]
[platform:msg] Set platform with 'host' cc=None, using cc='clang -arch x86_64', version='Unknown'
[translation:info] Translating target as defined by cycy/target
/Users/xuanwu/git/cycy/cycy/parser/core.py:507: ParserGeneratorWarning: 184 shift/reduce conflicts
_parser = _pg.build()
/Users/xuanwu/git/cycy/cycy/parser/core.py:507: ParserGeneratorWarning: 30 reduce/reduce conflicts
_parser = _pg.build()
[translation] translate.py configuration:
[translation] [translate]
targetspec = cycy/target
[translation] translation configuration:
[translation] [translation]
gc = incminimark
gctransformer = framework
list_comprehension_operations = True
withsmallfuncsets = 5
[translation:info] Annotating&simplifying...
[f7] {translation-task
starting annotate
[translation:info] with policy: rpython.annotator.policy.AnnotatorPolicy
.....++++++++++++++****************************%%%%%%%%%%%%%%%%%%%%%###%########%%%#####################################%%%%%%%%%%%%###%***************
..++++++++++++++****[1b6] translation-task}
[Timer] Timings:
[Timer] annotate --- 3.5 s
[Timer] ========================================
[Timer] Total: --- 3.5 s
[translation:info] Error:
File "/Users/xuanwu/git/pypy/rpython/translator/goal/translate.py", line 318, in main
drv.proceed(goals)
File "/Users/xuanwu/git/pypy/rpython/translator/driver.py", line 555, in proceed
result = self._execute(goals, task_skip = self._maybe_skip())
File "/Users/xuanwu/git/pypy/rpython/translator/tool/taskengine.py", line 114, in _execute
res = self._do(goal, taskcallable, *args, **kwds)
File "/Users/xuanwu/git/pypy/rpython/translator/driver.py", line 278, in _do
res = func()
File "/Users/xuanwu/git/pypy/rpython/translator/driver.py", line 315, in task_annotate
s = annotator.build_types(self.entry_point, self.inputtypes)
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 92, in build_types
return self.build_graph_types(flowgraph, inputs_s, complete_now=complete_now)
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 140, in build_graph_types
self.complete()
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 229, in complete
self.complete_pending_blocks()
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 224, in complete_pending_blocks
self.processblock(graph, block)
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 398, in processblock
self.flowin(graph, block)
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 501, in flowin
self.consider_op(op)
File "/Users/xuanwu/git/pypy/rpython/annotator/annrpython.py", line 653, in consider_op
resultcell = op.consider(self)
File "/Users/xuanwu/git/pypy/rpython/flowspace/operation.py", line 104, in consider
return spec(annotator, *self.args)
File "/Users/xuanwu/git/pypy/rpython/annotator/unaryop.py", line 118, in simple_call_SomeObject
return s_func.call(argspec)
File "/Users/xuanwu/git/pypy/rpython/annotator/unaryop.py", line 978, in call
return bookkeeper.pbc_call(self, args)
File "/Users/xuanwu/git/pypy/rpython/annotator/bookkeeper.py", line 535, in pbc_call
results.append(desc.pycall(whence, args, s_previous_result, op))
File "/Users/xuanwu/git/pypy/rpython/annotator/classdesc.py", line 732, in pycall
s_init.call(args)
File "/Users/xuanwu/git/pypy/rpython/annotator/unaryop.py", line 978, in call
return bookkeeper.pbc_call(self, args)
File "/Users/xuanwu/git/pypy/rpython/annotator/bookkeeper.py", line 535, in pbc_call
results.append(desc.pycall(whence, args, s_previous_result, op))
File "/Users/xuanwu/git/pypy/rpython/annotator/description.py", line 284, in pycall
inputcells = self.parse_arguments(args)
File "/Users/xuanwu/git/pypy/rpython/annotator/description.py", line 269, in parse_arguments
(self.name, e.getmsg()))
[translation:ERROR] AnnotatorError:
signature mismatch: __init__() takes exactly 4 arguments (5 given)
Occurred processing the following simple_call:
function StrMatchContext.__init__ returning
ctx_0 = simple_call((type StrMatchContext), s_0, pos_0, v6, v7)
In :
Happened at file /opt/miniconda3/envs/py27/lib/python2.7/site-packages/rply/lexergenerator.py line 36
==> ctx = rsre_core.StrMatchContext(s, pos, len(s), self.flags)
matched = rsre_core.match_context(ctx, self._pattern)
if matched:
Known variable annotations:
s_0 = SomeString(no_nul=True)
pos_0 = SomeInteger(const=0, knowntype=int, nonneg=True, unsigned=False)
v6 = SomeInteger(knowntype=int, nonneg=True, unsigned=False)
v7 = SomeInteger(const=0, knowntype=int, nonneg=True, unsigned=False)
Processing block:
block@101[pos_0...] is a
in (rply.lexergenerator:30)matches
containing the following operations:
v6 = len(s_0)
v7 = getattr(self_0, ('flags'))
ctx_0 = simple_call((type StrMatchContext), s_0, pos_0, v6, v7)
v8 = getattr(self_0, ('_pattern'))
matched_0 = simple_call((function match_context), ctx_0, v8)
v9 = bool(matched_0)
--end--
[translation] start debugger...
> /Users/xuanwu/git/pypy/rpython/annotator/description.py(269)parse_arguments()
-> (self.name, e.getmsg()))
```
Then I switched to py3.6 branch with `$ hg update py3.6` in pypy source path, and succeeded to translate.
Being new to both pypy and rply, I wonder what's the difference of rpython between these two branches?
Thanks.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.