pycdc icon indicating copy to clipboard operation
pycdc copied to clipboard

Support Python 3.14 decompilation

Open greenozon opened this issue 5 months ago • 2 comments

Tasks

  • [x] Bytecode support (pycdas)

  • [ ] Handle new opcodes in AST builder

    • [ ] BUILD_TEMPLATE
    • [ ] BINARY_OP_INPLACE_ADD_UNICODE
    • [ ] NOT_TAKEN
    • [ ] POP_ITER
    • [ ] BUILD_INTERPOLATION
    • [ ] LOAD_COMMON_CONSTANT
    • [ ] LOAD_FAST_BORROW
    • [ ] LOAD_FAST_BORROW_LOAD_FAST_BORROW
    • [ ] LOAD_SPECIAL
    • [ ] BINARY_OP_ADD_FLOAT
    • [ ] BINARY_OP_ADD_INT
    • [ ] BINARY_OP_ADD_UNICODE
    • [ ] BINARY_OP_EXTEND
    • [ ] BINARY_OP_MULTIPLY_FLOAT
    • [ ] BINARY_OP_MULTIPLY_INT
    • [ ] BINARY_OP_SUBSCR_DICT
    • [ ] BINARY_OP_SUBSCR_GETITEM
    • [ ] BINARY_OP_SUBSCR_LIST_INT
    • [ ] BINARY_OP_SUBSCR_LIST_SLICE
    • [ ] BINARY_OP_SUBSCR_STR_INT
    • [ ] BINARY_OP_SUBSCR_TUPLE_INT
    • [ ] BINARY_OP_SUBTRACT_FLOAT
    • [ ] BINARY_OP_SUBTRACT_INT
    • [ ] CALL_ALLOC_AND_ENTER_INIT
    • [ ] CALL_BOUND_METHOD_EXACT_ARGS
    • [ ] CALL_BOUND_METHOD_GENERAL
    • [ ] CALL_BUILTIN_CLASS
    • [ ] CALL_BUILTIN_FAST
    • [ ] CALL_BUILTIN_FAST_WITH_KEYWORDS
    • [ ] CALL_BUILTIN_O
    • [ ] CALL_ISINSTANCE
    • [ ] CALL_KW_BOUND_METHOD
    • [ ] CALL_KW_NON_PY
    • [ ] CALL_KW_PY
    • [ ] CALL_LEN
    • [ ] CALL_LIST_APPEND
    • [ ] CALL_METHOD_DESCRIPTOR_FAST
    • [ ] CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
    • [ ] CALL_METHOD_DESCRIPTOR_NOARGS
    • [ ] CALL_METHOD_DESCRIPTOR_O
    • [ ] CALL_NON_PY_GENERAL
    • [ ] CALL_PY_EXACT_ARGS
    • [ ] CALL_PY_GENERAL
    • [ ] CALL_STR_1
    • [ ] CALL_TUPLE_1
    • [ ] CALL_TYPE_1
    • [ ] COMPARE_OP_FLOAT
    • [ ] COMPARE_OP_INT
    • [ ] COMPARE_OP_STR
    • [ ] CONTAINS_OP_DICT
    • [ ] CONTAINS_OP_SET
    • [ ] FOR_ITER_GEN
    • [ ] FOR_ITER_LIST
    • [ ] FOR_ITER_RANGE
    • [ ] FOR_ITER_TUPLE
    • [ ] JUMP_BACKWARD_JIT
    • [ ] JUMP_BACKWARD_NO_JIT
    • [ ] LOAD_ATTR_CLASS
    • [ ] LOAD_ATTR_CLASS_WITH_METACLASS_CHECK
    • [ ] LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN
    • [ ] LOAD_ATTR_INSTANCE_VALUE
    • [ ] LOAD_ATTR_METHOD_LAZY_DICT
    • [ ] LOAD_ATTR_METHOD_NO_DICT
    • [ ] LOAD_ATTR_METHOD_WITH_VALUES
    • [ ] LOAD_ATTR_MODULE
    • [ ] LOAD_ATTR_NONDESCRIPTOR_NO_DICT
    • [ ] LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES
    • [ ] LOAD_ATTR_PROPERTY
    • [ ] LOAD_ATTR_SLOT
    • [ ] LOAD_ATTR_WITH_HINT
    • [ ] LOAD_CONST_IMMORTAL
    • [ ] LOAD_CONST_MORTAL
    • [ ] LOAD_GLOBAL_BUILTIN
    • [ ] LOAD_GLOBAL_MODULE
    • [ ] LOAD_SUPER_ATTR_ATTR
    • [ ] LOAD_SUPER_ATTR_METHOD
    • [ ] RESUME_CHECK
    • [ ] SEND_GEN
    • [ ] STORE_ATTR_INSTANCE_VALUE
    • [ ] STORE_ATTR_SLOT
    • [ ] STORE_ATTR_WITH_HINT
    • [ ] STORE_SUBSCR_DICT
    • [ ] STORE_SUBSCR_LIST_INT
    • [ ] TO_BOOL_ALWAYS_TRUE
    • [ ] TO_BOOL_BOOL
    • [ ] TO_BOOL_INT
    • [ ] TO_BOOL_LIST
    • [ ] TO_BOOL_NONE
    • [ ] TO_BOOL_STR
    • [ ] UNPACK_SEQUENCE_LIST
    • [ ] UNPACK_SEQUENCE_TUPLE
    • [ ] UNPACK_SEQUENCE_TWO_TUPLE
    • [ ] ANNOTATIONS_PLACEHOLDER
    • [ ] JUMP
    • [ ] JUMP_NO_INTERRUPT
    • [ ] SETUP_CLEANUP
    • [ ] STORE_FAST_MAYBE_NULL
    • [ ] LOAD_SMALL_INT
    • [ ] INSTRUMENTED_POP_ITER
    • [ ] INSTRUMENTED_NOT_TAKEN
    • [ ] INSTRUMENTED_END_ASYNC_FOR
  • [ ] TODO (new features go here)

greenozon avatar Jul 27 '25 11:07 greenozon

Initial PR: https://github.com/zrax/pycdc/pull/566

greenozon avatar Jul 27 '25 11:07 greenozon

Python 3.14 release candidate 1 is go! It’s the first 3.14 release candidate!

https://www.python.org/downloads/release/python-3140rc1/

greenozon avatar Jul 27 '25 11:07 greenozon