New issue 1983: JIT crash on PyPy bridge. https://bitbucket.org/pypy/pypy/issue/1983/jit-crash-on-pypy-bridge
Edd Barrett: Discussed with Armin on IRC, this looks like an RPython bug. We are using the 'hippy_bridge' branch of our PyPy fork (in sync with changes with PyPy-2.5.0) and the HippyVM 'pypy_bridge' branch as of today. Our PyPy fork is here: https://bitbucket.org/softdevteam/pypy-hippy-bridge Sorry the test case is not very good. ``` $ /home/vext01/research/pyhyp_experiments/work/pyhyp/hippyvm/pyhyp /tmp/a.php RPython traceback: File "rpython_jit_metainterp_pyjitpl_1.c", line 64176, in MIFrame_run_one_step File "rpython_jit_metainterp_pyjitpl_2.c", line 64796, in handler_getarrayitem_vable_r_1 File "rpython_jit_metainterp_pyjitpl_3.c", line 55472, in MIFrame__opimpl_getarrayitem_vable File "rpython_jit_metainterp_pyjitpl_4.c", line 32219, in MIFrame__nonstandard_virtualizable File "rpython_jit_metainterp_pyjitpl_4.c", line 27757, in MetaInterp_replace_box Fatal RPython error: AssertionError Aborted /tmp/a.php: <?php{ function f_outer($n) { $inc = 2; $inner = embed_py_func("def inner(x): return x + inc");; $tot = 0; for ($i = 0; $i < $n; $i++) { $tot = $inner($tot); } $expect = 2 * $n; assert($tot == $expect); } function run_iter($n) { f_outer($n); } run_iter(1200); }?> $ ~/pyve/testing/bin/python hippy/main.py /tmp/a.php [platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-hippy_bridge-202/platcheck_0.c - o /tmp/usession-hippy_bridge-202/platcheck_0.o [platform:execute] gcc /tmp/usession-hippy_bridge-202/platcheck_0.o -pthread -lintl -lrt -o /tmp/usession-hippy_bridge-202/p latcheck_0 /home/vext01/research/pyhyp_experiments/work/pyhyp/hippyvm/hippy/sourceparser.py:2121: ParserGeneratorWarning: Token 'H_NEW_ LINE' is unused parser = pg.build() /home/vext01/research/pyhyp_experiments/work/pyhyp/hippyvm/hippy/sourceparser.py:2121: ParserGeneratorWarning: Token 'H_TABU LATURE' is unused ... [platform:execute] gcc -shared /tmp/usession-hippy_bridge-202/rpython/translator/c/src/signals.o -pthread -lrt -o /tmp/usession-hippy_bridge-202/shared_cache/externmod.so (process finishes ok) rpython/jit/metainterp/pyjitpl.py: def replace_box(self, oldbox, newbox): assert isinstance(oldbox, Box) <---? for frame in self.framestack: frame.replace_active_box_in_frame(oldbox, newbox) boxes = self.virtualref_boxes for i in range(len(boxes)): if boxes[i] is oldbox: boxes[i] = newbox if (self.jitdriver_sd.virtualizable_info is not None or self.jitdriver_sd.greenfield_info is not None): boxes = self.virtualizable_boxes for i in range(len(boxes)): if boxes[i] is oldbox: boxes[i] = newbox self.heapcache.replace_box(oldbox, newbox) ``` _______________________________________________ pypy-issue mailing list pypy-issue@python.org https://mail.python.org/mailman/listinfo/pypy-issue