X-python

Latest version: v1.5.1

Safety actively analyzes 682244 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

1.3.3

Overall, improved cross-version bytecode interpreting and some bug fixes.

* Correct `BUILD_MAP_UNPACK` opcode handling.
* Set namespace locals and globals to the proper namespace in builtin `eval()` like we do for `locals()` and `globals()` built-in functions
* Better built-in test for `eval()`. Note Tk has its own built-in `eval()`
* Handle `__idiv__` in overwritten insdie `//=`
* Improve argument format for `CALL_FUNCTION_KW` for 3.6+
* Initialize frame cells from closure, not `f_back` See https://github.com/nedbat/byterun/issues/17

1.3.2

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

1.3.1

* Logging often shows the operand that an opcode uses
* Cross-version bytecode interpreting has been improved. Adding interoperable `inpsect` modules helps here.
* Support for debugger-like "step over" and "finish" trace commands was added.

1.3.0

1.2.1

The main thrust of this release was to make it suitable to be used from a debugger.

* There is better (but not exact) conformance of Python's `sys.settrace()` API:
- linestarts is a frame-oriented thing, not a VM thing.
- Store callback in `f_trace`.
* Allow supplying a callback print function, so that the client can colorize the parts of the instruction
* Add screencasts

1.2.0

This version adds callback hooks for tracing or debugger that will be released soon.

There is more complete (but not fully complete) Version 3.5-3.7 bytecode interpretation.
(`BUILD_TUPLE_UNPACK_WITH_CALL` has been implemented; 3.6 `MAKE_FUNCTION` has been corrected.)

`build_class()` has been fixed so that it picks up class variables. This means we do better at as a cross version interpreter - that's where `build_class()` is currently used.

Via `build_class()` we can tray into `__entry__()` and `__exit__()` functions of a context manager.

`frame.f_lasti` had been pointing to the instruction that might be run next rather than the one that is about to be run. While this simplified interpreter implementation, it didn't follow CPython's meaning. And when this is used from a debugger this becomes unusable.

Disassembly output has been fixed up courtesy of argument information from `xdis`. `xdis` imports have been simplified in version 4.6.0, so we require that.

Additional PyPy bytecode ops (`LOOKUP_METHOD`, `CALL_METHOD`) are supported; so you can run this from PyPy now or do cross-interpretation from the corresponding CPython bytecode.

Better conformance of Python's Frame type. Added: `__qualname__` and set `__annotation__` attributes.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.