You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.rst
+6-6
Original file line number
Diff line number
Diff line change
@@ -134,7 +134,7 @@ could be compared with the original bytecode. However as Python's code
134
134
generation got better, this no longer was feasible.
135
135
136
136
If you want Python syntax verification of the correctness of the
137
-
decompilation process, add the `--syntax-verify` option. However since
137
+
decompilation process, add the :code:`--syntax-verify` option. However since
138
138
Python syntax changes, you should use this option if the bytecode is
139
139
the right bytecode for the Python interpreter that will be checking
140
140
the syntax.
@@ -148,7 +148,7 @@ available give stronger verification: those programs that when run
148
148
test themselves. Our test suite includes these.
149
149
150
150
And Python comes with another a set of programs like this: its test
151
-
suite for the standard library. We have some code in `test/stdlib` to
151
+
suite for the standard library. We have some code in :code:`test/stdlib` to
152
152
facilitate this kind of checking too.
153
153
154
154
Known Bugs/Restrictions
@@ -179,15 +179,15 @@ In the Python 3 series, Python support is is strongest around 3.4 or
179
179
3.0 is weird in that it in some ways resembles 2.6 more than it does
180
180
3.1 or 2.7. Python 3.6 changes things drastically by using word codes
181
181
rather than byte codes. As a result, the jump offset field in a jump
182
-
instruction argument has been reduced. This makes the `EXTENDED_ARG`
182
+
instruction argument has been reduced. This makes the :code:`EXTENDED_ARG`
183
183
instructions are now more prevalent in jump instruction; previously
184
184
they had been rare. Perhaps to compensate for the additional
185
-
`EXTENDED_ARG` instructions, additional jump optimization has been
185
+
:code:`EXTENDED_ARG` instructions, additional jump optimization has been
186
186
added. So in sum handling control flow by ad hoc means as is currently
187
187
done is worse.
188
188
189
189
Between Python 3.5, 3.6 and 3.7 there have been major changes to the
190
-
`MAKE_FUNCTION` and `CALL_FUNCTION` instructions.
190
+
:code:`MAKE_FUNCTION` and :code:`CALL_FUNCTION` instructions.
191
191
192
192
Currently not all Python magic numbers are supported. Specifically in
193
193
some versions of Python, notably Python 3.6, the magic number has
@@ -219,7 +219,7 @@ See Also
219
219
* https://github.com/zrax/pycdc : purports to support all versions of Python. It is written in C++ and is most accurate for Python versions around 2.7 and 3.3 when the code was more actively developed. Accuracy for more recent versions of Python 3 and early versions of Python are especially lacking. See its `issue tracker <https://github.com/zrax/pycdc/issues>`_ for details. Currently lightly maintained.
220
220
* https://code.google.com/archive/p/unpyc3/ : supports Python 3.2 only. The above projects use a different decompiling technique than what is used here. Currently unmaintained.
221
221
* https://github.com/figment/unpyc3/ : fork of above, but supports Python 3.3 only. Includes some fixes like supporting function annotations. Currently unmaintained.
222
-
* https://github.com/wibiti/uncompyle2 : supports Python 2.7 only, but does that fairly well. There are situations where `uncompyle6` results are incorrect while `uncompyle2` results are not, but more often uncompyle6 is correct when uncompyle2 is not. Because `uncompyle6` adheres to accuracy over idiomatic Python, `uncompyle2` can produce more natural-looking code when it is correct. Currently `uncompyle2` is lightly maintained. See its issue `tracker <https://github.com/wibiti/uncompyle2/issues>`_ for more details
222
+
* https://github.com/wibiti/uncompyle2 : supports Python 2.7 only, but does that fairly well. There are situations where :code:`uncompyle6` results are incorrect while :code:`uncompyle2` results are not, but more often uncompyle6 is correct when uncompyle2 is not. Because :code:`uncompyle6` adheres to accuracy over idiomatic Python, :code:`uncompyle2` can produce more natural-looking code when it is correct. Currently :code:`uncompyle2` is lightly maintained. See its issue `tracker <https://github.com/wibiti/uncompyle2/issues>`_ for more details
223
223
* `How to report a bug <https://github.com/rocky/python-uncompyle6/blob/master/HOW-TO-REPORT-A-BUG.md>`_
224
224
* The HISTORY_ file.
225
225
* https://github.com/rocky/python-xdis : Cross Python version disassembler
0 commit comments