Hi,
We have taken this deltablue benchmark:
https://github.com/facebook/hhvm/blob/master/hphp/benchmarks/php-octane/deltablue.php
and hacked it, removing the dependency upon facebook's benchmark runner, and adding support for our own. Our runner would usually import this benchmark and call run_iter()
repeatedly. We removed some extraneous comments also.
The result is here: https://gist.github.com/vext01/3cc74eac5d416abf05d4
For the purpose of this bug, i have manually called run_iter(2000)
so that the file is standalone.
This works under Zend PHP:
$ time php mono.php
real 0m1.021s
user 0m1.012s
sys 0m0.004s
But under hippy:
vext01@bencher3:~/research/pyhyp_experiments/benchmarks/deltablue$ ~/research/hippyvm.hippyvm/hippy-c mono.php
In function <main>, file mono.php, line 219
class UnaryConstraint extends Constraint {
Strict Standards: Declaration of UnaryConstraint::__construct() should be compatible with Constraint::__construct($strength)
in mono.php on line 219
In function <main>, file mono.php, line 317
class BinaryConstraint extends Constraint {
Strict Standards: Declaration of BinaryConstraint::__construct() should be compatible with Constraint::__construct($strength
) in mono.php on line 317
In function <main>, file mono.php, line 414
class ScaleConstraint extends BinaryConstraint {
Strict Standards: Declaration of ScaleConstraint::__construct() should be compatible with BinaryConstraint::__construct($var
1, $var2, $strength) in mono.php on line 414
RPython traceback:
File "hippy_main.c", line 458, in entry_point
File "hippy_main.c", line 4635, in main
File "hippy_interpreter.c", line 7081, in Interpreter_run_main
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 13681, in Interpreter_interpret [42/1809]
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_klass.c", line 3934, in ClassBase_call_args
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 35375, in portal_1
File "hippy_interpreter_1.c", line 27624, in Interpreter_CALL
File "hippy_interpreter.c", line 13681, in Interpreter_interpret
File "rpython_jit_metainterp_warmspot.c", line 1149, in ll_portal_runner__Signed_hippy_bytecode_ByteCode
File "hippy_interpreter.c", line 30465, in portal_1
File "hippy_interpreter.c", line 61654, in Interpreter_BINARY_NE
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare [0/1809]
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
File "hippy_objspace.c", line 13481, in _compare_array
File "hippy_objects_instanceobject.c", line 20941, in W_InstanceObject_compare
...
Fatal RPython error: StackOverflow
Aborted
Perhaps Hippy is stuck in infinite recursion?