Open 2elli opened 2 weeks ago
@rocky Is there a best way to find out what the pop
and push
values should be for defining a new instruction with def_op
? I am running into issues finding the correct pop and push values for the new CALL_KW
op.
@rocky Is there a best way to find out what the
pop
andpush
values should be for defining a new instruction withdef_op
? I am running into issues finding the correct pop and push values for the newCALL_KW
op.
Hi @2elli :
For CALL_KW
, use -2 for pop
and 1 for push
. -2 indicates that the "pop" value is not fixed and indeterminate. Down the line, I will define a literal value for that to make this more clear. This code goes back to Python 2.3 where literal values did not exist.
@rocky Is there a best way to find out what the
pop
andpush
values should be for defining a new instruction withdef_op
? I am running into issues finding the correct pop and push values for the newCALL_KW
op.Hi @2elli :
For
CALL_KW
, use -2 forpop
and 1 forpush
. -2 indicates that the "pop" value is not fixed and indeterminate. Down the line, I will define a literal value for that to make this more clear. This code goes back to Python 2.3 where literal values did not exist.
That makes sense thank you. I just pushed those changes. This does still raise an error with make check
in pytest/test_stack_effect.py
with error AssertionError: 57 (CALL_KW) needs adjusting; should be: should have effect -2
. Is this okay to ignore or does this test need to be changed maybe?
This does still raise an error with
make check
inpytest/test_stack_effect.py
with errorAssertionError: 57 (CALL_KW) needs adjusting; should be: should have effect -2
. Is this okay to ignore or does this test need to be changed maybe?
I'll look into this when I get a chance. There is probably some (or a lot) of cleanup needed around push and pop fields.
This does still raise an error with
make check
inpytest/test_stack_effect.py
with errorAssertionError: 57 (CALL_KW) needs adjusting; should be: should have effect -2
. Is this okay to ignore or does this test need to be changed maybe?I'll look into this when I get a chance. There is probably some (or a lot) of cleanup needed around push and pop fields.
Ok sounds good thanks. Let me know if I can help out with anything there.
Added basic 3.13 support.
Currently passing all unit tests with
make check
. This PR also includes some small fixes to 3.12.Still work in progress. While my fork passes testing, it still breaks in some major circumstances. For example, I cannot self disassemble
xdis/opcodes/opcode_313.py
, see TODO.TODO (not exhaustive)
Formatting
SET_FUNCTION_ATTRIBUTE
andCALL_KW
need to have formatting fixed.EXTENDED_ARG
. In some cases, I am findingEXTENDED_ARG
with an oparg of None, leading to type comparison errors and incorrect behavior."drop-in" dis support
dis.disassemble
anddis.distb
have a new parametershow_offsets
.start_offset
,cache_offset
,end_offset
,baseopname
,baseopcode
,jump_target
,oparg
,line_number
andcache_info
.