Releases: rocky/x-python
Releases · rocky/x-python
BSides NYC 2025
- Start adding opcodes for Python 3.12. (Much more work is needed though)
- Improve 3.11 bytecode support.
- Continue revising the way testing works to be more scalable.
- Incorporate xdis API
- Redo packaging because, you know, that's the way Python rolls
1.5.2
1.5.1
- Add Python 3.11 support
- Start using branches to support running on older Pythons
- Use newer xdis
- Revise tests to work more along the lines of decompilers and xdis. This also lets us share test code.
- Add Administrative merge code in support of new branches
- Many bug fixes
- Start to Modernize style, lint, use "black" and "isort"
Some work to allow continuing on Python 3.12 and beyond
- Remove use of nose/nosetest
- Add pyproject.toml
1.5.0
Nathanman
- Use newer xdis which supports 3.10. We don't have 3.10 opcode interpretation yet though.
This was a lot of upheaval since we can no longer use floats to represent python versions:
3.1 == 3.10 in floating point. As xdis uses, we use tuples now. - Improve fake
version_infofor PyPy. - Start pypy37 and pypy38 bytecodes, although this is not finished yet. You interpret other bytecode from PyPy though.
- Tweak
FORMAT_VALUEand improve assembly display
1.3.6
- Handle Python 3.7 - 3.9 better
- fake sys.version, sys.version_info, and sys.hexversion in cross interpreting
- Handle PyPy 3.5 and other PyPy's better
- Fix bug in reporting line number
- Fix bug in Python 2.{4,5} MAKE_CLOSURE
- Improve ofrmating on IMPORT_NAME on 2.6 and later
- Type check VM arguments more
1.3.5
Note: a lot of stdlib tests have become broken. This is probably ood because it reflects that we are honestly interpreting more and
not running interpreter code as builtin Python functions (e.g. eval and exec used to work this way.)
- Start interpreter assisted breakpoints.
- Fill out interpreter inspect more
- exec is the same as exec
- make version pydoc frendly
- propagate interpreter-caught exceptions more properly
1.3.4
Small changes.
run_eval()renamed toeval_frame()to better match the way CPython does itexec(), andeval()builtins go throughcompileandeval_frame()so they get interpreted- It is okay when
exec()andeval()which calleval_frame()leave data on the stack (?) __module__property set properly oneval_frame()pretty_event_flags()will show VM tracing event flags nicley. This helps trepan-xpy__qualname__and__name__are set differently and properly inMAKE_FUNCTIONin 3.4+- More tests and expanded coverage
- Work progress in getting 3.6+
GET_AWAITABLEdone, but more work is needed.
Fleetwood66+
Overall, improved cross-version bytecode interpreting and some bug fixes.
- Correct
BUILD_MAP_UNPACKopcode handling. - Set namespace locals and globals to the proper namespace in builtin
eval()like we do forlocals()andglobals()built-in functions - Better built-in test for
eval(). Note Tk has its own built-ineval() - Handle
__idiv__in overwritten insdie//= - Improve argument format for
CALL_FUNCTION_KWfor 3.6+ - Initialize frame cells from closure, not
f_backSee nedbat#17
Marilyn + 1
Overall, some bugs were fixed especially on the 3.6+ side.
There is better cross version interpreting.
Release before we do a major overhaul on the closure or cell "freeops", e.g. LOAD_DEREF and STORE_DEREF.
- Fix bug in detecting 3.6+ keyword-only signatures
- Correct bugs in 3.6+
MAKE_FUNCTION - Improve our build_class(); don't try to convert built-in
__entry__,__exit__routines - Add Python 2.4 bytecode interpreting
- Improve logging operator formatting