commit df7028c04566ba40a8fee60ab3b09bb29ac69b7b583ae2ab1d33adb14231a29a Author: Dirk Mueller Date: Wed Aug 14 15:03:57 2024 +0000 - use modern python on sle15 - switch to PEP517 build OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bytecode?expand=0&rev=19 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/bytecode-0.15.1.tar.gz b/bytecode-0.15.1.tar.gz new file mode 100644 index 0000000..5f1cd88 --- /dev/null +++ b/bytecode-0.15.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7263239a8d3f70fc7c303862b20cd2c6788052e37ce0a26e67309d280e985984 +size 97976 diff --git a/python-bytecode.changes b/python-bytecode.changes new file mode 100644 index 0000000..6ae3bc8 --- /dev/null +++ b/python-bytecode.changes @@ -0,0 +1,125 @@ +------------------------------------------------------------------- +Wed Aug 14 15:03:42 UTC 2024 - Dirk Müller + +- use modern python on sle15 +- switch to PEP517 build + +------------------------------------------------------------------- +Tue Nov 14 15:47:28 UTC 2023 - Dirk Müller + +- update to 0.15.1: + * Disallow creating an instruction targeting a + pseudo/instrumented opcode PR #133 + * Fixes encoding of 0 as a varint PR #132 + * Correct spelling of "INTRINSIC" in several places; this + affected some ops in Python 3.12. PR #131 + +------------------------------------------------------------------- +Mon Sep 18 10:14:40 UTC 2023 - Dirk Müller + +- update to 0.15.0: + * Add support for Python 3.12 PR #122 + * Support for Python 3.12, comes with a number of changes + reflecting changes in CPython bytecode itself: + * handle the ability of ``LOAD_ATTR`` to replace + ``LOAD_METHOD`` + As a consequence the argument is now a ``tuple[bool, str]`` + similarly ``LOAD_SUPER_ATTR`` which uses the 2 lowest bits as + flag takes a ``tuple[bool, bool, str]`` as argument + * ``POP_JUMP_IF_*`` instructions are undirected in Python 3.12 + * ``YIELD_VALUE`` now takes an argument + * Support for ``CALL_INSTRINSIC_1/2`` led to the addition of 2 + new enums to represent the argument + +------------------------------------------------------------------- +Sat May 27 21:36:54 UTC 2023 - Dirk Müller + +- update to 0.14.2: + * allow to convert a CFG, for which stack sizes have not been + computed, to Bytecode even in the presence of mergeable + TryBegin/TryEnd + * remove spurious TryEnd leftover when going from CFG to + Bytecode + +------------------------------------------------------------------- +Wed Apr 19 09:32:16 UTC 2023 - Dirk Müller + +- update to 0.14.1: + * allow to disassemble code containing ``EXTENDED_ARG`` + targeting a ``NOP`` PR #117 + +------------------------------------------------------------------- +Thu Dec 15 22:44:00 UTC 2022 - Ben Greiner + +- Fix dependencies +- Fix python-sitelib-glob-in-files and 0.0.0 version egg-info by + not forgetting setuptools_scm + +------------------------------------------------------------------- +Fri Dec 9 17:16:11 UTC 2022 - Yogalakshmi Arunachalam + +- Update to 0.14.0 + * New features: + Removed the peephole optimizer PR #107 + Basically changes in Python 3.11 made it hard to port and the maintenance cost exceeded the perceived use. It could be re-added if there is a demand for it. + Add support for Python 3.11 PR #107 + Support for Python 3.11, comes with a number of changes reflecting changes in CPython bytecode itself: + support for the exception table in ConcreteBytecode + support for pseudo-instruction TryBegin and TryEnd describing the exception table in Bytecode and ControlflowGraph + new keyword arguments in conversion method related to computations required for the exception table + handling of CACHE opcode at the ConcreteBytecode level + handling of the ability of LOAD_GLOBAL to push NULL (the argument is now a tuple[bool, str]) + support for end_lineno and column offsets in instructions + support for co_qualname (as qualname on bytecode objects) + and a number of internal changes related to changes in the internal bytecode representation. + Add type annotations and make types stricter PR # 105 In particular, ConcreteInstr does not inherit from Instr anymore and one cannot + use ConcreteInstr in Bytecode object. This is saner than before. + * Bugfixes: + Removed EXC_MATCH from the Compare enumeration starting with Python 3.9. The new JUMP_IF_NOT_EXC_MATCH opcode should be used instead. + Removed IN, NOT_IN, IS, NOT_IS from the Compare enumeration starting with Python 3.9. The new CONTAINS_OP and IS_OP opcodes should be used instead. + Add proper pre and post stack effects to all opcodes (up to Python 3.11) PR #106 #107 + * Maintenance: + Make the install process PEP517 compliant PR #97 + Drop support for Python 3.6 and 3.7 PR #100 + +------------------------------------------------------------------- +Thu Nov 18 11:47:11 UTC 2021 - John Paul Adrian Glaubitz + +- Update to 0.13.0 + * Add support for Python 3.10 new encoding of line number. This support is + minimal in the sense that we still systematically assign a line number + while the new format allow bytecode with absolutely no line number. PR #72 + * Fix handling of RERAISE (introduced in 3.9) when creating a ControlFlowGraph, + previously it was not considered final. PR #72 + * Fix line table assembly in Python 3.10. PR #85 + +------------------------------------------------------------------- +Tue Aug 31 11:04:29 UTC 2021 - John Paul Adrian Glaubitz + +- Update to 0.12.0 + * All calculations of stacksize now check for stack underflow to + avoid segfault at runtime PR #69 + * Fix recursion limitations when compiling bytecode with numerous basic + blocks. PR #57 + * Fix handling of line offsets. Issue #67, PR #71 + * Forbid an :class:`Instr` to hold an EXTENDED_ARG op_code PR #65 + * Forbid the use of :class:`ConcreteInstr` in :class:`Bytecode` and + :class:`ControlFlowGraph` PR #65 + This is motivated by the extra complexity that handling possible EXTENDED_ARG + instruction in those representation would bring (stack computation, etc) + * Always remove EXTENDED_ARG when converting :class:`ConcreteBytecode` to + :class:`Bytecode` PR #65 + * This is equivalent to say that the :class:`ConcreteBytecode` converted to + :class:`Bytecode` was generated by :meth:`ConcreteBytecode.from_code` + with extended_args=False + * :class:`Instr` now has a new method :meth:`Instr.pre_and_post_stack_effect` + for checking the prerequisite stack size of an operation PR #69 + * :meth:`_compute_stack_size` now uses :meth:`Instr.pre_and_post_stack_effect` + to compute the stack size to reject code that will lead to runtime segfault + caused by stack underflow PR #69 + +------------------------------------------------------------------- +Thu Apr 9 11:29:55 UTC 2020 - pgajdos@suse.com + +- initial version 0.11.0, required by python-enaml + diff --git a/python-bytecode.spec b/python-bytecode.spec new file mode 100644 index 0000000..eab765f --- /dev/null +++ b/python-bytecode.spec @@ -0,0 +1,63 @@ +# +# spec file for package python-bytecode +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-bytecode +Version: 0.15.1 +Release: 0 +Summary: Python module to generate and modify bytecode +License: MIT +Group: Development/Languages/Python +URL: https://github.com/vstinner/bytecode +Source: https://files.pythonhosted.org/packages/source/b/bytecode/bytecode-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools_scm} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildArch: noarch +# SECTION test requirements +BuildRequires: %{python_module pytest} +# /SECTION +%python_subpackages + +%description +Python module to generate and modify bytecode + +%prep +%setup -q -n bytecode-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +%pytest + +%files %{python_files} +%doc README.rst +%license COPYING +%{python_sitelib}/bytecode +%{python_sitelib}/bytecode-%{version}.dist-info + +%changelog