Hello community, here is the log from the commit of package python-xdis for openSUSE:Factory checked in at 2020-09-17 14:51:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-xdis (Old) and /work/SRC/openSUSE:Factory/.python-xdis.new.4249 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-xdis" Thu Sep 17 14:51:55 2020 rev:12 rq:835018 version:5.0.4 Changes: -------- --- /work/SRC/openSUSE:Factory/python-xdis/python-xdis.changes 2020-07-24 09:57:24.989493778 +0200 +++ /work/SRC/openSUSE:Factory/.python-xdis.new.4249/python-xdis.changes 2020-09-17 15:01:57.920546119 +0200 @@ -1,0 +2,13 @@ +Wed Sep 16 21:33:45 UTC 2020 - Dirk Mueller <dmuel...@suse.com> + +- udpate to 5.0.4: + * Add python versions 3.6.12, 3.7.9 + * extended arg disassembly handling for {LOAD,STORE}_ATTR + * Add versions 3.8.5, 3.7.8, and 3.6.11 + * Clarify changes to 3.8 `ROT_FOUR` + * Update 3.9 magics and opcodes + * Add Python 3.8.4 as a 3.8 release + * pydisasm.py Python 3.3 tolerance + * Make pydoc's version reporting show xdis's version + +------------------------------------------------------------------- Old: ---- 5.0.1.tar.gz New: ---- 5.0.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-xdis.spec ++++++ --- /var/tmp/diff_new_pack.VSvFhE/_old 2020-09-17 15:02:03.128551065 +0200 +++ /var/tmp/diff_new_pack.VSvFhE/_new 2020-09-17 15:02:03.132551069 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-xdis -Version: 5.0.1 +Version: 5.0.4 Release: 0 Summary: Python cross-version byte-code disassembler and marshal routines License: GPL-2.0-only ++++++ 5.0.1.tar.gz -> 5.0.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/NEWS.md new/python-xdis-5.0.4/NEWS.md --- old/python-xdis-5.0.1/NEWS.md 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/NEWS.md 2020-08-30 20:15:58.000000000 +0200 @@ -1,7 +1,27 @@ +5.0.4 2020-08-30 +================ + +* Add python versions 3.6.12, 3.7.9 +* extended arg disassembly handling for {LOAD,STORE}_ATTR + +5.0.3 2020-07-28 +================ + +* Add versions 3.8.5, 3.7.8, and 3.6.11 +* Clarify changes to 3.8 `ROT_FOUR` +* Update 3.9 magics and opcodes + +5.0.2 2020-07-25 +================ + +* Add Python 3.8.4 as a 3.8 release +* pydisasm.py Python 3.3 tolerance +* Make pydoc's version reporting show xdis's version + 5.0.1 2020-06-28 ================ -Two small improvements that are usefil in the forthcoming [trepan3k](https://pypi.org/project/trepan3k) release: +Two small improvements that are useful in the forthcoming [trepan3k](https://pypi.org/project/trepan3k) release: * interpret `RAISE_VARARGS`'s `argc` parameter. Some other formatting was extended too * `check_object_path()` is more leanient in the path name (it doesn't have to end in `.py` anymore), but it is diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/__pkginfo__.py new/python-xdis-5.0.4/__pkginfo__.py --- old/python-xdis-5.0.1/__pkginfo__.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/__pkginfo__.py 2020-08-30 20:15:58.000000000 +0200 @@ -64,7 +64,7 @@ license = "GPL-2.0" mailing_list = "python-debug...@googlegroups.com" modname = "xdis" -packages=['xdis'] +packages = ["xdis"] py_modules = None # setup_requires = ['pytest-runner'] scripts = ["bin/pydisasm.py"] @@ -90,6 +90,4 @@ return open(osp.join(srcdir, *rnames)).read() -# Get info from files; set: long_description and VERSION long_description = read("README.rst") + "\n" -exec(read("xdis/version.py")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/admin-tools/how-to-make-a-release.md new/python-xdis-5.0.4/admin-tools/how-to-make-a-release.md --- old/python-xdis-5.0.1/admin-tools/how-to-make-a-release.md 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/admin-tools/how-to-make-a-release.md 2020-08-30 20:15:58.000000000 +0200 @@ -44,7 +44,7 @@ # Make sure pyenv is running and check newer versions - $ pyenv local && source admin-tools/check-newer-versions.sh + $ admin-tools/check-newer-versions.sh # Switch to python-2.4, sync that up and build that first since it creates a tarball which we don't want. @@ -58,14 +58,12 @@ # Check against all versions - $ bash && echo $SHLVL # Go into a subshell to protect exit - $ source admin-tools/check-older-versions.sh - $ echo $SHLVL ; exit + $ admin-tools/check-older-versions.sh # Make packages and tag - $ . ./admin-tools/make-dist-older.sh - $ pyenv local 3.8.3 + $ admin-tools/make-dist-older.sh + $ pyenv local 3.8.5 $ twine check dist/xdis-$VERSION* $ git tag release-python-2.4-$VERSION $ . ./admin-tools/make-dist-newer.sh @@ -73,10 +71,10 @@ # Check package on github - $ mkdir /tmp/gittest; pushd /tmp/gittest - $ pyenv local 3.7.5 + $ [[ ! -d /tmp/gittest ]] && mkdir /tmp/gittest; pushd /tmp/gittest + $ pyenv local 3.8.4 $ pip install -e git://github.com/rocky/python-xdis.git#egg=xdis - $ pydisasm --help + $ pydisasm --version $ pip uninstall xdis $ popd @@ -90,7 +88,7 @@ $ pushd /tmp/gittest $ pip install -e git://github.com/rocky/python-xdis.git@$VERSION#egg=xdis - $ pydisasm --help + $ pydisasm --version $ pip uninstall xdis $ popd @@ -101,7 +99,7 @@ Check on https://pypi.org/project/xdis/ -# Push tags: +# Push/pull tags: $ git push --tags $ git pull --tags diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/admin-tools/pyenv-newer-versions new/python-xdis-5.0.4/admin-tools/pyenv-newer-versions --- old/python-xdis-5.0.1/admin-tools/pyenv-newer-versions 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/admin-tools/pyenv-newer-versions 2020-08-30 20:15:58.000000000 +0200 @@ -5,4 +5,4 @@ echo "This script should be *sourced* rather than run directly through bash" exit 1 fi -export PYVERSIONS='3.5.9 3.6.10 2.6.9 3.3.7 2.7.18 3.2.6 3.1.5 3.4.10 3.7.7 3.8.3' +export PYVERSIONS='3.5.9 3.6.12 2.6.9 3.3.7 2.7.18 3.2.6 3.1.5 3.4.10 3.7.9 3.8.5' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/pytest/stackeffect/se39.py new/python-xdis-5.0.4/pytest/stackeffect/se39.py --- old/python-xdis-5.0.1/pytest/stackeffect/se39.py 1970-01-01 01:00:00.000000000 +0100 +++ new/python-xdis-5.0.4/pytest/stackeffect/se39.py 2020-08-30 20:15:58.000000000 +0200 @@ -0,0 +1,260 @@ +# Python 3.9 Stack effects + +[ + -100, # 0 + -1, # 1, + 0, # 2, + 0, # 3, + 1, # 4, + 2, # 5, + 0, # 6, + -100, # 7 + -100, # 8 + 0, # 9, + 0, # 10, + 0, # 11, + 0, # 12, + -100, # 13 + -100, # 14 + 0, # 15, + -1, # 16, + -1, # 17, + -100, # 18 + -1, # 19, + -1, # 20, + -100, # 21 + -1, # 22, + -1, # 23, + -1, # 24, + -1, # 25, + -1, # 26, + -1, # 27, + -1, # 28, + -1, # 29, + -100, # 30 + -100, # 31 + -100, # 32 + -100, # 33 + -100, # 34 + -100, # 35 + -100, # 36 + -100, # 37 + -100, # 38 + -100, # 39 + -100, # 40 + -100, # 41 + -100, # 42 + -100, # 43 + -100, # 44 + -100, # 45 + -100, # 46 + -100, # 47 + -3, # 48, + 1, # 49, + 0, # 50, + 1, # 51, + 1, # 52, + -100, # 53 + -7, # 54, + -1, # 55, + -1, # 56, + -1, # 57, + -100, # 58 + -1, # 59, + -3, # 60, + -2, # 61, + -1, # 62, + -1, # 63, + -1, # 64, + -1, # 65, + -1, # 66, + -1, # 67, + 0, # 68, + 0, # 69, + -1, # 70, + 1, # 71, + -1, # 72, + 0, # 73, + 1, # 74, + -1, # 75, + -1, # 76, + -1, # 77, + -1, # 78, + -1, # 79, + -100, # 80 + -100, # 81 + 0, # 82, + -1, # 83, + -1, # 84, + 0, # 85, + 0, # 86, + 0, # 87, + -100, # 88 + -3, # 89, + -1, # 90, + 0, # 91, + -100, # 92 + 1, # 93, + -100, # 94 + -2, # 95, + -1, # 96, + -1, # 97, + 0, # 98, + -100, # 99 + 1, # 100, + 1, # 101, + -100, # 102 + -100, # 103 + -100, # 104 + -100, # 105 + 0, # 106, + -1, # 107, + -1, # 108, + 1, # 109, + 0, # 110, + 0, # 111, + 0, # 112, + 0, # 113, + -1, # 114, + -1, # 115, + 1, # 116, + -1, # 117, + -1, # 118, + -100, # 119 + -100, # 120 + -2, # 121, + 6, # 122, + -100, # 123 + 1, # 124, + -1, # 125, + 0, # 126, + -100, # 127 + -100, # 128 + -100, # 129 + -100, # 130 + -100, # 131 + -100, # 132 + -100, # 133 + -100, # 134 + 1, # 135, + 1, # 136, + -1, # 137, + 0, # 138, + -100, # 139 + -100, # 140 + -100, # 141 + -100, # 142 + 6, # 143, + 0, # 144, + -1, # 145, + -1, # 146, + -2, # 147, + 1, # 148, + -100, # 149 + -100, # 150 + -100, # 151 + -100, # 152 + -100, # 153 + 5, # 154, + -100, # 155 + -100, # 156 + -100, # 157 + -100, # 158 + -100, # 159 + 1, # 160, + -100, # 161 + -1, # 162, + -1, # 163, + -1, # 164, + -1, # 165, + -100, # 166 + -100, # 167 + -100, # 168 + -100, # 169 + -100, # 170 + -100, # 171 + -100, # 172 + -100, # 173 + -100, # 174 + -100, # 175 + -100, # 176 + -100, # 177 + -100, # 178 + -100, # 179 + -100, # 180 + -100, # 181 + -100, # 182 + -100, # 183 + -100, # 184 + -100, # 185 + -100, # 186 + -100, # 187 + -100, # 188 + -100, # 189 + -100, # 190 + -100, # 191 + -100, # 192 + -100, # 193 + -100, # 194 + -100, # 195 + -100, # 196 + -100, # 197 + -100, # 198 + -100, # 199 + -100, # 200 + -100, # 201 + -100, # 202 + -100, # 203 + -100, # 204 + -100, # 205 + -100, # 206 + -100, # 207 + -100, # 208 + -100, # 209 + -100, # 210 + -100, # 211 + -100, # 212 + -100, # 213 + -100, # 214 + -100, # 215 + -100, # 216 + -100, # 217 + -100, # 218 + -100, # 219 + -100, # 220 + -100, # 221 + -100, # 222 + -100, # 223 + -100, # 224 + -100, # 225 + -100, # 226 + -100, # 227 + -100, # 228 + -100, # 229 + -100, # 230 + -100, # 231 + -100, # 232 + -100, # 233 + -100, # 234 + -100, # 235 + -100, # 236 + -100, # 237 + -100, # 238 + -100, # 239 + -100, # 240 + -100, # 241 + -100, # 242 + -100, # 243 + -100, # 244 + -100, # 245 + -100, # 246 + -100, # 247 + -100, # 248 + -100, # 249 + -100, # 250 + -100, # 251 + -100, # 252 + -100, # 253 + -100, # 254 + -100, # 255 +] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/pytest/test_bytecode.py new/python-xdis-5.0.4/pytest/test_bytecode.py --- old/python-xdis-5.0.1/pytest/test_bytecode.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/pytest/test_bytecode.py 2020-08-30 20:15:58.000000000 +0200 @@ -78,7 +78,10 @@ assert got_no_dups == expect got_with_dups = list(findlinestarts(bug_loop.__code__, dup_lines=True)) - assert len(got_no_dups) < len(got_with_dups) + if sys.version_info[0:2] >= (3,9): + assert len(got_no_dups) <= len(got_with_dups) + else: + assert len(got_no_dups) < len(got_with_dups) # FIXME: a feature of doing code this way is that # this compiles to the running version of code @@ -176,6 +179,6 @@ assert expect == offset_map if __name__ == "__main__": - test_get_jump_targets() + # test_get_jump_targets() # test_offset2line() - # test_find_linestarts() + test_find_linestarts() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/pytest/test_stack_effect.py new/python-xdis-5.0.4/pytest/test_stack_effect.py --- old/python-xdis-5.0.1/pytest/test_stack_effect.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/pytest/test_stack_effect.py 2020-08-30 20:15:58.000000000 +0200 @@ -22,7 +22,7 @@ versions = ((2, 5), (2, 6), (2, 7), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), - (3, 6), (3, 7), (3, 8), ) + (3, 6), (3, 7), (3, 8), (3, 9)) for version in versions: v_str = "%s%s" % (version[0], version[1]) opc = get_opcode(version, False) @@ -77,7 +77,10 @@ def test_one(xdis_args, dis_args, has_arg): effect = xstack_effect(*xdis_args) - check_effect = dis.stack_effect(*dis_args) + try: + check_effect = dis.stack_effect(*dis_args) + except: + from trepan.api import debug; debug() assert effect != -100, ( "%d (%s) needs adjusting; should be: should have effect %d" % (opcode, opname, check_effect) @@ -138,5 +141,5 @@ if __name__ == "__main__": - test_stack_effect_fixed() - # test_stack_effect_vs_dis() + # test_stack_effect_fixed() + test_stack_effect_vs_dis() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/setup.py new/python-xdis-5.0.4/setup.py --- old/python-xdis-5.0.1/setup.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/setup.py 2020-08-30 20:15:58.000000000 +0200 @@ -1,5 +1,6 @@ #!/usr/bin/env python """Setup script for the 'xdis' distribution.""" +from xdis.version import VERSION from __pkginfo__ import ( author, @@ -10,10 +11,8 @@ classifiers, modname, py_modules, - scripts, short_desc, tests_require, - VERSION, web, zip_safe, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/__init__.py new/python-xdis-5.0.4/xdis/__init__.py --- old/python-xdis-5.0.1/xdis/__init__.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/__init__.py 2020-08-30 20:15:58.000000000 +0200 @@ -156,3 +156,8 @@ code2num, co_flags_is_async, ) + +from xdis.version import VERSION + +# This ensures VERSION will appear in pydoc +__version__ = VERSION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/bin/pydisasm.py new/python-xdis-5.0.4/xdis/bin/pydisasm.py --- old/python-xdis-5.0.1/xdis/bin/pydisasm.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/bin/pydisasm.py 2020-08-30 20:15:58.000000000 +0200 @@ -18,13 +18,17 @@ PATTERNS = ("*.pyc", "*.pyo") +if click.__version__ >= "7.": + case_sensitive={"case_sensitive": False} +else: + case_sensitive={} @click.command() @click.option( "--format", "-F", type=click.Choice(["xasm", "bytes", "classic", "extended", "extended-bytes", "header"], - case_sensitive=False), + **case_sensitive), ) @click.version_option(version=VERSION) @click.argument("files", nargs=-1, type=click.Path(readable=True), required=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/lineoffsets.py new/python-xdis-5.0.4/xdis/lineoffsets.py --- old/python-xdis-5.0.1/xdis/lineoffsets.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/lineoffsets.py 2020-08-30 20:15:58.000000000 +0200 @@ -49,6 +49,7 @@ def _populate_lines(self): code = self.code + code_map = {code.co_name: code} last_line_info = None for instr in get_instructions_bytes( bytecode=code.co_code, @@ -75,12 +76,15 @@ if self.include_children: for c in code.co_consts: if iscode(c): + code_map[c.co_name] = c code_info = LineOffsetInfo(self.opc, c, True) + code_map.update(code_info.code_map) self.children[code_info.name] = code_info self.lines += code_info.lines pass pass pass + self.code_map = code_map def __str__(self): @@ -152,19 +156,18 @@ print("%s has no children" % (code_info.name)) print("\tlines with children and dups:\n\t%s" % - code_info.line_numbers(include_dups=True, include_children=True)) + code_info.line_numbers(include_dups=True)) print( "\tlines without children and without dups:\n\t%s" % - code_info.line_numbers(include_dups=False, include_children=False)) - print( - "\tlines without dups and children:\n\t%s" - % code_info.line_numbers(include_dups=False, include_children=True) - ) + code_info.line_numbers(include_dups=False)) print("Offsets in %s" % code_info.name, code_info.offsets) - lines = code_info.line_numbers(include_offsets=True, include_children=True) + lines = code_info.line_numbers(include_offsets=True) for line_num, li in lines.items(): print("\tline: %4d: %s" % (line_num, ", ".join([str(i.offsets) for i in li]))) print("=" * 30) + for mod, code in code_info.code_map.items(): + print(mod, ":", code) + print("=" * 30) for li in code_info.lines: print(li) pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/magics.py new/python-xdis-5.0.4/xdis/magics.py --- old/python-xdis-5.0.1/xdis/magics.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/magics.py 2020-08-30 20:15:58.000000000 +0200 @@ -125,7 +125,7 @@ # that's come before. The tags are included in the following table, starting # with Python 3.2a0. -# The below is taken from from Python/import.c, and +# The below is taken from from Python/import.c, and more recently # Lib/importlib/_bootstrap.py and other sources # magic, canonic version number @@ -137,6 +137,7 @@ # 1.5, 1.5.1, 1.5.2 add_magic_from_int(20121, "1.5") # 1.5.1, 1.5.2 add_magic_from_int(50428, "1.6") # 1.6 + add_magic_from_int(50823, "2.0") # 2.0, 2.0.1 add_magic_from_int(60202, "2.1") # 2.1, 2.1.1, 2.1.2 add_magic_from_int(60717, "2.2") # 2.2 @@ -282,7 +283,7 @@ # Reverse evaluation order of key: value in dict comprehensions # #35224 -add_magic_from_int(3411, "3.8.0a1+") +add_magic_from_int(3411, "3.8.0b2+") # Swap the position of positional args and positional only args in # ast.arguments #37593) @@ -291,8 +292,24 @@ # Fix "break" and "continue" in "finally" #37830 add_magic_from_int(3413, "3.8.0rc1+") +# add LOAD_ASSERTION_ERROR #34880 +add_magic_from_int(3420, "3.9.0a0") + +# simplified bytecode for with blocks #32949 +add_magic_from_int(3421, "3.9.0a0") + +# Remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY, POP_FINALLY bytecodes #33387 add_magic_from_int(3422, "3.9.0alpha1") +# add IS_OP, CONTAINS_OP and JUMP_IF_NOT_EXC_MATCH bytecodes #39156 +add_magic_from_int(3423, "3.9.0a0") + +# simplify bytecodes for *value unpacking +add_magic_from_int(3424, "3.9.0a2") + +# simplify bytecodes for **value unpacking +add_magic_from_int(3425, "3.9.0beta5") + # Weird ones # WTF? Python 3.2.5 and PyPy have weird magic numbers @@ -353,7 +370,7 @@ add_canonic_versions("3.5 3.5.0 3.5.1", "3.5") add_canonic_versions("3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9", "3.5.2") add_canonic_versions( - "3.6b2 3.6 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.6.10", + "3.6b2 3.6 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.6.10 3.6.11 3.6.12", "3.6rc1", ) @@ -369,13 +386,16 @@ add_canonic_versions("2.7.8Pyston", "2.7.7Pyston") add_canonic_versions("3.7.0alpha3", "3.7.0alpha3") add_canonic_versions( - "3.7 3.7.0beta5 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7", "3.7.0" + "3.7 3.7.0beta5 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9", "3.7.0" ) add_canonic_versions("3.8.0alpha0 3.8.0alpha3 3.8.0a0", "3.8.0a3+") -add_canonic_versions("3.8b4 3.8.0candidate1 3.8 3.8.0 3.8.1 3.8.2 3.8.3", "3.8.0rc1+") +add_canonic_versions("3.8b4 3.8.0candidate1 3.8 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5", "3.8.0rc1+") add_canonic_versions( "3.9 3.9.0 3.9.0a1+ 3.9.0a2+ 3.9.0alpha1 3.9.0alpha2", "3.9.0alpha1" ) +add_canonic_versions( + "3.9 3.9.0 3.9.0b5+", "3.9.0beta5" +) # The canonic version for a canonic version is itself for v in versions.values(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/op_imports.py new/python-xdis-5.0.4/xdis/op_imports.py --- old/python-xdis-5.0.1/xdis/op_imports.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/op_imports.py 2020-08-30 20:15:58.000000000 +0200 @@ -120,7 +120,9 @@ '3.8' : opcode_38, '3.9.0alpha1' : opcode_39, '3.9.0alpha2' : opcode_39, + '3.9.0beta5' : opcode_39, '3.9' : opcode_39, + 3.9 : opcode_39, '2.6pypy': opcode_26pypy, '2.7pypy': opcode_27pypy, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/base.py new/python-xdis-5.0.4/xdis/opcodes/base.py --- old/python-xdis-5.0.1/xdis/opcodes/base.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/base.py 2020-08-30 20:15:58.000000000 +0200 @@ -302,6 +302,11 @@ break return ".".join(reversed(resolved)) +def extended_format_ATTR(opc, instructions): + if instructions[1].opname in ("LOAD_CONST", "LOAD_GLOBAL", + "LOAD_ATTR", "LOAD_NAME"): + return "%s.%s" % (instructions[1].argrepr, instructions[0].argrepr) + def extended_format_MAKE_FUNCTION_older(opc, instructions): """make_function_inst should be a "MAKE_FUNCTION" or "MAKE_CLOSURE" instruction. TOS should have the function or closure name. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_15.py new/python-xdis-5.0.4/xdis/opcodes/opcode_15.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_15.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_15.py 2020-08-30 20:15:58.000000000 +0200 @@ -26,6 +26,7 @@ compare_op, const_op, def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -231,7 +232,9 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_16.py new/python-xdis-5.0.4/xdis/opcodes/opcode_16.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_16.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_16.py 2020-08-30 20:15:58.000000000 +0200 @@ -25,6 +25,9 @@ import xdis.opcodes.opcode_15 as opcode_15 from xdis.opcodes.base import ( + extended_format_ATTR, + extended_format_MAKE_FUNCTION_older, + extended_format_RETURN_VALUE, init_opdata, nargs_op, finalize_opcodes, @@ -57,4 +60,10 @@ "MAKE_FUNCTION": format_MAKE_FUNCTION_default_argc, } +opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, + "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, + "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, +} finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_20.py new/python-xdis-5.0.4/xdis/opcodes/opcode_20.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_20.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_20.py 2020-08-30 20:15:58.000000000 +0200 @@ -21,13 +21,14 @@ import xdis.opcodes.opcode_21 as opcode_21 from xdis.opcodes.base import ( - init_opdata, + extended_format_ATTR, extended_format_MAKE_FUNCTION_older, extended_format_RETURN_VALUE, finalize_opcodes, format_CALL_FUNCTION_pos_name_encoded, format_MAKE_FUNCTION_default_argc, format_extended_arg, + init_opdata, rm_op, update_pj2, ) @@ -58,6 +59,8 @@ } opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_21.py new/python-xdis-5.0.4/xdis/opcodes/opcode_21.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_21.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_21.py 2020-08-30 20:15:58.000000000 +0200 @@ -21,11 +21,12 @@ import xdis.opcodes.opcode_22 as opcode_22 from xdis.opcodes.base import ( - init_opdata, + extended_format_ATTR, extended_format_MAKE_FUNCTION_older, extended_format_RETURN_VALUE, finalize_opcodes, format_extended_arg, + init_opdata, rm_op, update_pj2, ) @@ -54,6 +55,8 @@ } opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_22.py new/python-xdis-5.0.4/xdis/opcodes/opcode_22.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_22.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_22.py 2020-08-30 20:15:58.000000000 +0200 @@ -8,6 +8,7 @@ import xdis.opcodes.opcode_2x as opcode_2x from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_MAKE_FUNCTION_older, extended_format_RETURN_VALUE, init_opdata, @@ -36,6 +37,8 @@ } opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_23.py new/python-xdis-5.0.4/xdis/opcodes/opcode_23.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_23.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_23.py 2020-08-30 20:15:58.000000000 +0200 @@ -8,6 +8,7 @@ import xdis.opcodes.opcode_2x as opcode_2x from xdis.opcodes.base import ( + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -40,9 +41,11 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_24.py new/python-xdis-5.0.4/xdis/opcodes/opcode_24.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_24.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_24.py 2020-08-30 20:15:58.000000000 +0200 @@ -9,6 +9,7 @@ import xdis.opcodes.opcode_2x as opcode_2x from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -52,7 +53,9 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, - "RETURN_VALUE": extended_format_RETURN_VALUE, - "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, + "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, + "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_25.py new/python-xdis-5.0.4/xdis/opcodes/opcode_25.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_25.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_25.py 2020-08-30 20:15:58.000000000 +0200 @@ -9,6 +9,7 @@ import xdis.opcodes.opcode_24 as opcode_24 from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -47,8 +48,10 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_26.py new/python-xdis-5.0.4/xdis/opcodes/opcode_26.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_26.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_26.py 2020-08-30 20:15:58.000000000 +0200 @@ -22,6 +22,7 @@ from xdis.opcodes.base import ( store_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -59,8 +60,10 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, - "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, + "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_26pypy.py new/python-xdis-5.0.4/xdis/opcodes/opcode_26pypy.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_26pypy.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_26pypy.py 2020-08-30 20:15:58.000000000 +0200 @@ -22,7 +22,10 @@ import xdis.opcodes.opcode_26 as opcode_26 from xdis.opcodes.base import ( - finalize_opcodes, init_opdata, + extended_format_ATTR, + extended_format_RETURN_VALUE, + finalize_opcodes, + init_opdata, jrel_op, name_op, nargs_op, varargs_op, update_pj2 ) @@ -51,3 +54,9 @@ update_pj2(globals(), l) finalize_opcodes(l) + +opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, + "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_27.py new/python-xdis-5.0.4/xdis/opcodes/opcode_27.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_27.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_27.py 2020-08-30 20:15:58.000000000 +0200 @@ -23,6 +23,7 @@ from xdis.opcodes.base import ( compare_op, def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -103,7 +104,9 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, + "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, - "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_27pypy.py new/python-xdis-5.0.4/xdis/opcodes/opcode_27pypy.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_27pypy.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_27pypy.py 2020-08-30 20:15:58.000000000 +0200 @@ -9,6 +9,7 @@ import xdis.opcodes.opcode_27 as opcode_27 from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -70,7 +71,9 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, + "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, - "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_30.py new/python-xdis-5.0.4/xdis/opcodes/opcode_30.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_30.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_30.py 2020-08-30 20:15:58.000000000 +0200 @@ -8,9 +8,9 @@ from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, finalize_opcodes, - format_CALL_FUNCTION_pos_name_encoded, format_MAKE_FUNCTION_default_argc, format_extended_arg, init_opdata, @@ -62,6 +62,8 @@ } opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_31.py new/python-xdis-5.0.4/xdis/opcodes/opcode_31.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_31.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_31.py 2020-08-30 20:15:58.000000000 +0200 @@ -8,9 +8,9 @@ from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, finalize_opcodes, - format_CALL_FUNCTION_pos_name_encoded, format_MAKE_FUNCTION_default_argc, format_extended_arg, init_opdata, @@ -49,6 +49,8 @@ } opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_32.py new/python-xdis-5.0.4/xdis/opcodes/opcode_32.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_32.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_32.py 2020-08-30 20:15:58.000000000 +0200 @@ -8,6 +8,7 @@ import xdis.opcodes.opcode_3x as opcode_3x from xdis.opcodes.base import ( + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_MAKE_FUNCTION_older, extended_format_RAISE_VARARGS_older, @@ -44,9 +45,11 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION_older, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_32pypy.py new/python-xdis-5.0.4/xdis/opcodes/opcode_32pypy.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_32pypy.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_32pypy.py 2020-08-30 20:15:58.000000000 +0200 @@ -7,6 +7,8 @@ """ from xdis.opcodes.base import ( + extended_format_ATTR, + extended_format_RETURN_VALUE, finalize_opcodes, init_opdata, jrel_op, @@ -45,3 +47,9 @@ update_pj3(globals(), l) finalize_opcodes(l) + +opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, + "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_33.py new/python-xdis-5.0.4/xdis/opcodes/opcode_33.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_33.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_33.py 2020-08-30 20:15:58.000000000 +0200 @@ -42,6 +42,11 @@ return ("%d positional, %d name and default" % (pos_args, name_default)) +def extended_format_ATTR(opc, instructions): + if instructions[1].opname in ("LOAD_CONST", "LOAD_GLOBAL", + "LOAD_ATTR", "LOAD_NAME"): + return "%s.%s " % (instructions[1].argrepr, instructions[0].argrepr) + def extended_format_MAKE_FUNCTION(opc, instructions): """make_function_inst should be a "MAKE_FUNCTION" or "MAKE_CLOSURE" instruction. TOS should have the function or closure name. @@ -69,7 +74,9 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_33pypy.py new/python-xdis-5.0.4/xdis/opcodes/opcode_33pypy.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_33pypy.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_33pypy.py 2020-08-30 20:15:58.000000000 +0200 @@ -7,6 +7,8 @@ """ from xdis.opcodes.base import ( + extended_format_ATTR, + extended_format_RETURN_VALUE, finalize_opcodes, init_opdata, jrel_op, @@ -45,3 +47,9 @@ update_pj3(globals(), l) finalize_opcodes(l) + +opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, + "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_34.py new/python-xdis-5.0.4/xdis/opcodes/opcode_34.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_34.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_34.py 2020-08-30 20:15:58.000000000 +0200 @@ -7,6 +7,7 @@ """ from xdis.opcodes.base import ( + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_RAISE_VARARGS_older, finalize_opcodes, @@ -47,8 +48,10 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": opcode_33.extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_35.py new/python-xdis-5.0.4/xdis/opcodes/opcode_35.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_35.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_35.py 2020-08-30 20:15:58.000000000 +0200 @@ -22,6 +22,7 @@ from xdis.opcodes.base import ( def_op, + extended_format_ATTR, extended_format_CALL_FUNCTION, extended_format_RAISE_VARARGS_older, extended_format_RETURN_VALUE, @@ -100,9 +101,11 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_35pypy.py new/python-xdis-5.0.4/xdis/opcodes/opcode_35pypy.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_35pypy.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_35pypy.py 2020-08-30 20:15:58.000000000 +0200 @@ -8,6 +8,8 @@ from xdis.opcodes.base import ( def_op, + extended_format_ATTR, + extended_format_RETURN_VALUE, finalize_opcodes, init_opdata, jrel_op, @@ -48,3 +50,9 @@ update_pj3(globals(), l) finalize_opcodes(l) + +opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, + "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_36.py new/python-xdis-5.0.4/xdis/opcodes/opcode_36.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_36.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_36.py 2020-08-30 20:15:58.000000000 +0200 @@ -22,6 +22,7 @@ from xdis.opcodes.base import( def_op, + extended_format_ATTR, extended_format_RAISE_VARARGS_older, extended_format_RETURN_VALUE, finalize_opcodes, @@ -306,10 +307,12 @@ return s opcode_extended_fmt = { - "CALL_METHOD": extended_format_CALL_METHOD, "CALL_FUNCTION": extended_format_CALL_FUNCTION, "CALL_FUNCTION_KW": extended_format_CALL_FUNCTION_KW, + "CALL_METHOD": extended_format_CALL_METHOD, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_36pypy.py new/python-xdis-5.0.4/xdis/opcodes/opcode_36pypy.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_36pypy.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_36pypy.py 2020-08-30 20:15:58.000000000 +0200 @@ -9,6 +9,7 @@ from xdis.opcodes.base import ( format_CALL_FUNCTION_pos_name_encoded, def_op, + extended_format_ATTR, extended_format_RAISE_VARARGS_older, extended_format_RETURN_VALUE, finalize_opcodes, @@ -79,9 +80,11 @@ } opcode_extended_fmt = { + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS_older, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } finalize_opcodes(l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_37.py new/python-xdis-5.0.4/xdis/opcodes/opcode_37.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_37.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_37.py 2020-08-30 20:15:58.000000000 +0200 @@ -33,7 +33,7 @@ update_pj3 ) -from xdis.opcodes.opcode_33 import extended_format_MAKE_FUNCTION +from xdis.opcodes.opcode_33 import extended_format_MAKE_FUNCTION, extended_format_ATTR import xdis.opcodes.opcode_36 as opcode_36 version = 3.7 @@ -141,9 +141,11 @@ opcode_extended_fmt = { "CALL_FUNCTION": opcode_36.extended_format_CALL_FUNCTION, "CALL_METHOD": opcode_36.extended_format_CALL_METHOD, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } update_pj3(globals(), l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_38.py new/python-xdis-5.0.4/xdis/opcodes/opcode_38.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_38.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_38.py 2020-08-30 20:15:58.000000000 +0200 @@ -30,7 +30,7 @@ update_pj3, ) -from xdis.opcodes.opcode_33 import extended_format_MAKE_FUNCTION +from xdis.opcodes.opcode_33 import extended_format_ATTR, extended_format_MAKE_FUNCTION import xdis.opcodes.opcode_37 as opcode_37 from xdis.opcodes.opcode_36 import ( extended_format_CALL_FUNCTION, @@ -55,16 +55,16 @@ rm_op(l, "SETUP_LOOP", 120) rm_op(l, "SETUP_EXCEPT", 121) -# These are new since Python 3.7 +# These are new/changed since Python 3.7 # OP NAME OPCODE POP PUSH # -------------------------------------------- -def_op(l, "ROT_FOUR", 6, 4, 4) -def_op(l, "BEGIN_FINALLY", 53, 0, 6) -def_op(l, "END_ASYNC_FOR", 54, 7, 0) # POP is 0, when not 7 -def_op(l, "END_FINALLY", 88, 6, 0) # POP is 6, when not 1 -jrel_op(l, "CALL_FINALLY", 162, 0, 1) -nargs_op(l, "POP_FINALLY", 163, 6, 0) # PUSH/POP vary +def_op(l, "ROT_FOUR", 6, 4, 4) # Opcode number changed from 5 to 6. Why? +def_op(l, "BEGIN_FINALLY", 53, 0, 6) +def_op(l, "END_ASYNC_FOR", 54, 7, 0) # POP is 0, when not 7 +def_op(l, "END_FINALLY", 88, 6, 0) # POP is 6, when not 1 +jrel_op(l, "CALL_FINALLY", 162, 0, 1) +nargs_op(l, "POP_FINALLY", 163, 6, 0) # PUSH/POP vary format_value_flags = opcode_37.format_value_flags @@ -81,9 +81,11 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, "CALL_METHOD": extended_format_CALL_METHOD, + "LOAD_ATTR": extended_format_ATTR, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": opcode_37.extended_format_RAISE_VARARGS, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } update_pj3(globals(), l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/opcodes/opcode_39.py new/python-xdis-5.0.4/xdis/opcodes/opcode_39.py --- old/python-xdis-5.0.1/xdis/opcodes/opcode_39.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/opcodes/opcode_39.py 2020-08-30 20:15:58.000000000 +0200 @@ -14,16 +14,18 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. """ -CPython 3.8 bytecode opcodes +CPython 3.9 bytecode opcodes This is a like Python 3.9's opcode.py """ from xdis.opcodes.base import( def_op, + extended_format_ATTR, extended_format_RETURN_VALUE, finalize_opcodes, init_opdata, + jabs_op, rm_op, update_pj3 ) @@ -54,17 +56,32 @@ rm_op(l, "WITH_CLEANUP_START", 81) rm_op(l, "WITH_CLEANUP_FINISH", 82) rm_op(l, "END_FINALLY", 88) +rm_op(l, "BUILD_LIST_UNPACK", 149) +rm_op(l, "BUILD_MAP_UNPACK", 150) +rm_op(l, "BUILD_MAP_UNPACK_WITH_CALL", 151) +rm_op(l, "BUILD_TUPLE_UNPACK", 152) +rm_op(l, "BUILD_SET_UNPACK", 153) +rm_op(l, "BUILD_TUPLE_UNPACK_WITH_CALL", 158) rm_op(l, "CALL_FINALLY", 162) rm_op(l, "POP_FINALLY", 163) # These are new since Python 3.9 -# OP NAME OPCODE POP PUSH -#----------------------------------------------- -def_op(l, 'RERAISE', 48, 3, 0) -def_op(l, 'WITH_EXCEPT_START', 49, 0, 1) -def_op(l, 'LOAD_ASSERTION_ERROR', 74, 0, 1) +# OP NAME OPCODE POP PUSH +#------------------------------------------------ +def_op(l, 'RERAISE', 48, 3, 0) +def_op(l, 'WITH_EXCEPT_START', 49, 0, 1) +def_op(l, 'LOAD_ASSERTION_ERROR', 74, 0, 1) +def_op(l, 'LIST_TO_TUPLE', 82, 1, 1) + +def_op(l, 'IS_OP', 117, 2, 1) +jabs_op(l, 'JUMP_IF_NOT_EXC_MATCH', 121, 2, 0) +def_op(l, 'CONTAINS_OP', 118, 2, 1) +def_op(l, 'LIST_EXTEND', 162, 2, 1) +def_op(l, 'SET_UPDATE', 163, 2, 1) +def_op(l, 'DICT_MERGE', 164, 2, 1) +def_op(l, 'DICT_UPDATE', 165, 2, 1) format_value_flags = opcode_38.format_value_flags @@ -80,10 +97,12 @@ opcode_extended_fmt = { "CALL_FUNCTION": extended_format_CALL_FUNCTION, + "LOAD_ATTR": extended_format_ATTR, "CALL_METHOD": extended_format_CALL_METHOD, "MAKE_FUNCTION": extended_format_MAKE_FUNCTION, "RAISE_VARARGS": extended_format_RAISE_VARARGS, "RETURN_VALUE": extended_format_RETURN_VALUE, + "STORE_ATTR": extended_format_ATTR, } update_pj3(globals(), l) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/python-xdis-5.0.1/xdis/version.py new/python-xdis-5.0.4/xdis/version.py --- old/python-xdis-5.0.1/xdis/version.py 2020-06-28 18:40:07.000000000 +0200 +++ new/python-xdis-5.0.4/xdis/version.py 2020-08-30 20:15:58.000000000 +0200 @@ -1,3 +1,3 @@ # This file is suitable for sourcing inside POSIX shell as # well as importing into Python -VERSION="5.0.1" # noqa +VERSION="5.0.4" # noqa