MatthieuDartiailh/bytecode

Update pre_and_post_stack_effect

Closed this issue · 1 comments

It appears that a number of new (some old) opcodes have not been included in the calculations of pre_and_post_stack_effect which weakens the guarantee we make on the absence of segfault from recompiled bytecode. The relevant opcodes are:

  • DUP_TOP_TWO (covered with DUP_TOP)
  • WITH_EXCEPT_START
  • COPY_DICT_WITHOUT_KEYS
  • MATCH_*

Handled as push back opcodes

  • LIST_TO_TUPLE (done as a push back opcode)
  • LIST_EXTEND
  • SET_UPDATE
  • DICT_UPDATE
  • DICT_MERGE
  • IS_OP
  • CONTAINS_OP

Ideally we should try to come up with a way to test for this but I am not sure it is possible. Help is welcome.

Handled in #106