[pypy-dev] pypy translation error

Maciej Fijalkowski fijall at gmail.com
Wed Oct 12 09:57:59 CEST 2011


On Wed, Oct 12, 2011 at 6:44 AM, Shawn Walker <binarycrusader at gmail.com> wrote:
> On 11 October 2011 17:52, Maciej Fijalkowski <fijall at gmail.com> wrote:
>> On Wed, Oct 12, 2011 at 2:47 AM, Shawn Walker <binarycrusader at gmail.com> wrote:
>>> On 11 October 2011 16:51, Maciej Fijalkowski <fijall at gmail.com> wrote:
>>>> On Wed, Oct 12, 2011 at 1:39 AM, Shawn Walker <binarycrusader at gmail.com> wrote:
>>> ...
>>>>> Is there a way to do an incremental translate?  Currently, every time
>>>>> I run translate, it does the whole thing again, which makes the whole
>>>>> fix/build cycle very slow.
>>>>>
>>>>> -Shawn
>>>>>
>>>>
>>>> No, there is no such thing :(
>>>>
>>>> I believe one of those operations inside get_ifname does not work,
>>>> like ifreq is not there? (can you import it from _rsocket_rffi?). For
>>>> now you can possibly disable the entire PacketAddress class
>>>> declaration and it should compile
>>>
>>> ifreq is definitely defined, but from what I'm reading, this is a
>>> common issue with things that make assumptions about socket structures
>>> if AF_PACKET is defined.
>>>
>>> Regardless, I simply conditionally disabled the entire PacketAddress
>>> class for now.
>>>
>>> However, that leads me to:
>>>
>>> [translation:ERROR] Error:
>>> [translation:ERROR]  Traceback (most recent call last):
>>> [translation:ERROR]    File "translate.py", line 308, in main
>>> [translation:ERROR]     drv.proceed(goals)
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/translator/driver.py", line 809,
>>> in proceed
>>> [translation:ERROR]     return self._execute(goals, task_skip =
>>> self._maybe_skip())
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/translator/tool/taskengine.py",
>>> line 116, in _execute
>>> [translation:ERROR]     res = self._do(goal, taskcallable, *args, **kwds)
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/translator/driver.py", line 286,
>>> in _do
>>> [translation:ERROR]     res = func()
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/translator/driver.py", line 323,
>>> in task_annotate
>>> [translation:ERROR]     s = annotator.build_types(self.entry_point,
>>> self.inputtypes)
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/annotation/annrpython.py", line
>>> 103, in build_types
>>> [translation:ERROR]     return self.build_graph_types(flowgraph,
>>> inputcells, complete_now=complete_now)
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/annotation/annrpython.py", line
>>> 194, in build_graph_types
>>> [translation:ERROR]     self.complete()
>>> [translation:ERROR]    File
>>> "/export/home/swalker/devel/pypy/pypy/annotation/annrpython.py", line
>>> 272, in complete
>>> [translation:ERROR]     raise AnnotatorError(text)
>>> [translation:ERROR]  AnnotatorError:
>>> [translation:ERROR] -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>> [translation:ERROR] Blocked block -- operation cannot succeed
>>> [translation:ERROR]  v119 = getattr(v118, ('set_interrupt'))
>>> [translation:ERROR] In <FunctionGraph of
>>> (pypy.module.cpyext.pyerrors:311)PyErr_SetInterrupt at 0x10475cac>:
>>> [translation:ERROR] Happened at file
>>> /export/home/swalker/devel/pypy/pypy/module/cpyext/pyerrors.py line
>>> 316
>>> [translation:ERROR]
>>> [translation:ERROR] ==>     space.check_signal_action.set_interrupt()
>>> [translation:ERROR]
>>> [translation:ERROR] Known variable annotations:
>>> [translation:ERROR]  v118 = SomePBC(can_be_None=True, const=None,
>>> subset_of=None)
>>>
>>> "Blocked block" ... errr?
>>>
>>> I'm guessing the signal handling isn't working as pypy expects somehow.
>>>
>>> Thoughts?
>>
>> Yes, apparently. You can run some tests, but also try to compile
>> without the cpyext module. ./translate.py -Ojit
>> targetpypystandalone.py --withoutmod-cpyext. I wonder though why
>> check_signal_action is None. Try running tests in pypy/modules/signal?
>
> All of the tests in pypy/modules/signal pass.
>
> This time the translation succeeded by using the without-cpymodext option.
>
> However, compilation failed because the 'makedev', 'major', and
> 'minor' symbols are undefined.  But I think I can figure that one out
> myself.
>
> --
> Shawn Walker
>

Btw

Feel free to submit your patches to the bugtracker. Even though
solaris is unsupported platform, that should not force the next guy to
jump through all the hoops.

Cheers,
fijal


More information about the pypy-dev mailing list