Project

General

Profile

Actions

Feature #14330

closed

Updated by ko1 (Koichi Sasada) over 7 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r61659.


Speedup block.call [Feature ]

  • insns.def (getblockparamproxy): introduce new instruction to return
    the rb_block_param_proxy object if possible. This object responds
    to call method and invoke given block (completely similar to yield).

  • method.h (OPTIMIZED_METHOD_TYPE_BLOCK_CALL): add new optimized call type
    which is for rb_block_param_proxy.cal.

  • vm_insnhelper.c (vm_call_method_each_type): ditto.

  • vm_insnhelper.c (vm_call_opt_block_call): ditto.

  • vm_core.h (BOP_CALL, PROC_REDEFINED_OP_FLAG): add check for Proc#call
    redefinition.

  • compile.c (iseq_compile_each0): compile to use new insn
    getblockparamproxy for method call.

Updated by nobu (Nobuyoshi Nakada) over 7 years ago

  • Related to : block.call should respect redefinition of Proc#call added
Actions

Also available in: Atom PDF

Like0
Like0Like0