Remove support for generator autopriming
commit595d927b93f3ed5fd541fd21d816485408cb58ac
authorJan Oravec <jan@fb.com>
Mon, 17 Dec 2018 04:44:55 +0000 (16 20:44 -0800)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Mon, 17 Dec 2018 04:50:24 +0000 (16 20:50 -0800)
tree89c29213b79127ed72a1e9d3f6f10ea327316046
parent1f0d00ce91bbeb15f2ff1b642b0fb54f35f7c180
Remove support for generator autopriming

Summary:
Simplify the logic of generators and remove PHP compatibility support for
generator autopriming.

This will enable changing the behavior of next()/send()/throw() to return the
yielded key/value pair directly instead of communicating intermediary results
via generator object state.

Reviewed By: markw65

Differential Revision: D13428285

fbshipit-source-id: e6fd00a54da33f23c3de302db70296d66cb4b159
87 files changed:
hphp/compiler/analysis/emitter.cpp
hphp/doc/bytecode.specification
hphp/hack/src/hhbc/Hhas_parser_actions.ml
hphp/hack/src/hhbc/emit_native_opcode.ml
hphp/hack/src/hhbc/hhbc_ast.ml
hphp/hack/src/hhbc/hhbc_hhas.ml
hphp/hack/src/hhbc/hhbc_options.ml
hphp/hack/src/hhbc/instruction_sequence.ml
hphp/hack/src/hhbc/semdiff/rhl.ml
hphp/hhbbc/interp.cpp
hphp/hhbbc/main.cpp
hphp/runtime/base/runtime-option.cpp
hphp/runtime/base/runtime-option.h
hphp/runtime/base/unit-cache.cpp
hphp/runtime/vm/bytecode.cpp
hphp/runtime/vm/hhbc.h
hphp/runtime/vm/jit/irgen-resumable.cpp
hphp/runtime/vm/jit/translator.cpp
hphp/runtime/vm/repo-global-data.h
hphp/runtime/vm/repo.cpp
hphp/runtime/vm/verifier/check-func.cpp
hphp/runtime/vm/verifier/fuzzer/instr_utils.ml
hphp/test/config.ini
hphp/test/frameworks/results/phpunit_php7.expect
hphp/test/quick/debug_backtrace_continuation.php
hphp/test/quick/debug_backtrace_continuation.php.expectf
hphp/test/quick/debug_backtrace_continuation.php.expectf-repo [copied from hphp/test/quick/debug_backtrace_continuation.php.expectf with 96% similarity]
hphp/test/quick/generator_vars.php
hphp/test/quick/hphp_config.ini
hphp/test/quick/yield_pair_get_key.php
hphp/test/quick/yield_return.php
hphp/test/slow/config.ini
hphp/test/slow/dv_array/ext_imagick/config.ini
hphp/test/slow/dv_array/ext_imagick/hphp_config.ini
hphp/test/slow/dv_array/ext_reflection/config.ini
hphp/test/slow/dv_array/ext_reflection/hphp_config.ini
hphp/test/slow/dv_array/ext_soap/config.ini
hphp/test/slow/dv_array/ext_soap/hphp_config.ini
hphp/test/slow/dv_array/ext_xenon/hphp_config.ini
hphp/test/slow/dv_array_hack_arr/ext_imagick/config.ini
hphp/test/slow/dv_array_hack_arr/ext_imagick/hphp_config.ini
hphp/test/slow/dv_array_hack_arr/ext_reflection/config.ini
hphp/test/slow/dv_array_hack_arr/ext_reflection/hphp_config.ini
hphp/test/slow/dv_array_hack_arr/ext_soap/config.ini
hphp/test/slow/dv_array_hack_arr/ext_soap/hphp_config.ini
hphp/test/slow/dv_array_hack_arr/ext_xenon/hphp_config.ini
hphp/test/slow/hphp_config.ini
hphp/test/slow/inlining/static_functions.php
hphp/test/slow/ir_inlining/multi_static.php
hphp/test/slow/ir_inlining/weird_static.php
hphp/test/slow/php7_backported/generators/basic_yield_from_proxying.php
hphp/test/slow/php7_backported/generators/get_return.php
hphp/test/slow/php7_backported/generators/get_return_errors.php
hphp/test/slow/php7_backported/generators/get_return_errors.php.expect
hphp/test/slow/php7_backported/generators/get_return_types.php
hphp/test/slow/php7_backported/generators/yield_from_multi_tree.php
hphp/test/slow/vec/hphp_config.ini
hphp/test/slow/yield/2175.php
hphp/test/slow/yield/2180.php
hphp/test/slow/yield/2229.php
hphp/test/slow/yield/auto_priming.php [deleted file]
hphp/test/slow/yield/auto_priming.php.expect [deleted file]
hphp/test/slow/yield/clone/gc.php
hphp/test/slow/yield/clone/gc.php.expect
hphp/test/slow/yield/not_primed/config.ini
hphp/test/slow/yield/not_primed/hphp_config.ini
hphp/test/slow/yield/throw/throw_already_closed.php
hphp/test/slow/yield/throw/throw_caught.php
hphp/test/slow/yield/throw/throw_rethrow.php
hphp/test/slow/yield/throw/throw_rethrow.php.expectf
hphp/test/slow/yield/throw/throw_rethrow.php.expectf-repo [copied from hphp/test/slow/yield/throw/throw_rethrow.php.expectf with 100% similarity]
hphp/test/slow/yield/yieldfrom/yield_from_advance_inner_generator.php
hphp/test/slow/yield/yieldfrom/yield_from_advance_inner_iterator.php
hphp/test/slow/yield/yieldfrom/yield_from_exceptions_unsupported.php
hphp/test/slow/yield/yieldfrom/yield_from_garbage_input.php.expectf
hphp/test/slow/yield/yieldfrom/yield_from_null.php.expectf
hphp/test/slow/yield/yieldfrom/yield_from_unwind_generator.php
hphp/test/zend/good/Zend/tests/generators/bug65035.php
hphp/test/zend/good/Zend/tests/generators/bug66041.php
hphp/test/zend/good/Zend/tests/generators/generator_closure_with_this.php
hphp/test/zend/good/Zend/tests/generators/generator_throwing_during_function_call.php
hphp/test/zend/good/Zend/tests/generators/generator_throwing_exception.php
hphp/test/zend/good/Zend/tests/generators/ignored_send_leak.php
hphp/test/zend/good/Zend/tests/generators/no_foreach_var_leaks.php
hphp/test/zend/good/Zend/tests/generators/throw_not_an_exception.php
hphp/test/zend/good/Zend/tests/generators/yield_array_key.php
hphp/test/zend/hphp_config.ini