[pypy-dev] Translating of FreeBSD fails for v6.0.0

David Naylor naylor.b.david at gmail.com
Sat Jun 30 17:53:53 EDT 2018


Hi

When trying to translate the latest version of PyPy on FreeBSD I get the following error:
[translation:info] Error:
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/translator/goal/translate.py", line 318, in main
    drv.proceed(goals)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/translator/driver.py", line 554, in proceed
    result = self._execute(goals, task_skip = self._maybe_skip())
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/translator/tool/taskengine.py", line 114, in _execute
    res = self._do(goal, taskcallable, *args, **kwds)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/translator/driver.py", line 278, in _do
    res = func()
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/translator/driver.py", line 315, in task_annotate
    s = annotator.build_types(self.entry_point, self.inputtypes)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 92, in build_types
    return self.build_graph_types(flowgraph, inputs_s, complete_now=complete_now)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 140, in build_graph_types
    self.complete()
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 229, in complete
    self.complete_pending_blocks()
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 224, in complete_pending_blocks
    self.processblock(graph, block)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 398, in processblock
    self.flowin(graph, block)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 501, in flowin
    self.consider_op(op)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/annrpython.py", line 653, in consider_op
    resultcell = op.consider(self)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/flowspace/operation.py", line 104, in consider
    return spec(annotator, *self.args)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/unaryop.py", line 118, in simple_call_SomeObject
    return s_func.call(argspec)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/unaryop.py", line 978, in call
    return bookkeeper.pbc_call(self, args)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/bookkeeper.py", line 535, in pbc_call
    results.append(desc.pycall(whence, args, s_previous_result, op))
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/description.py", line 398, in pycall
    s_result = self.specialize(inputcells, op)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/description.py", line 281, in specialize
    return self.specializer(self, inputcells)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/specialize.py", line 303, in memo
    _, _, memotable = memotables.find(firstvalues)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/tool/algo/unionfind.py", line 48, in find
    info = self.info_factory(obj)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/annotator/specialize.py", line 293, in compute_one_result
    value = func(*args)
   File "/home/dbn/ports/ports/lang/pypy/work/pypy2-v6.0.0-src/rpython/rlib/rarithmetic.py", line 154, in _should_widen_type
    r_class = rffi.platform.numbertype_to_rclass[tp]
[translation:ERROR] KeyError: <Void>
Processing block:
 block at 28[n_1] is a <class 'rpython.flowspace.flowcontext.SpamBlock'> 
 in (rpython.rlib.rarithmetic:139)widen__NoneType 
 containing the following operations: 
       v630 = simple_call((function typeOf), n_1) 
       v631 = simple_call((function _should_widen_type), v630) 
       v632 = bool(v631) 
 --end--

My best guess is a call to `widen` with a None value is being specialized.  But, how does one see more information about the translation back trace (i.e. the context of the specialization of `widen`)?  Any, any idea why this is triggering on FreeBSD?

Regards
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20180630/d15b1f98/attachment.sig>


More information about the pypy-dev mailing list