You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-02 16:44:46 +08:00
Sync with Python 2.4 branch
This commit is contained in:
@@ -10,23 +10,36 @@ decompile everything. Overall, I think this one probably does the best
|
||||
job of *any* Python decompiler that handles such a wide range of
|
||||
versions.
|
||||
|
||||
But at any given time, there are maybe dozens of valid Python bytecode
|
||||
files that I know of that will cause problems. And when I get through
|
||||
those and all the issues of decompiler bugs that are currently logged,
|
||||
I could probably easily find dozens more bugs just by doing a
|
||||
decompile of all the Python bytecode on any one of my
|
||||
computers. Unless you want to help out by _fixing_ bugs, or are
|
||||
willing to do work by isolating and narrowing bugs, don't feel you are
|
||||
doing me a favor by doing scans on your favorite sets of bytecode
|
||||
files.
|
||||
But at any given time, there are a number of valid Python bytecode
|
||||
files that I know of that will cause problems. See, for example, the
|
||||
list in
|
||||
[`test/stdlib/runtests.sh`](https://github.com/rocky/python-uncompyle6/blob/master/test/stdlib/runtests.sh).
|
||||
|
||||
In sum, it is not uncommon that you will find a mistranslation in
|
||||
decompiling. Furthermore, you may be expected to do some work in order
|
||||
to have your bug worthy of being considered above other bugs.
|
||||
But I understand: you would the bugs _you_ encounter addressed before
|
||||
all the other known bugs.
|
||||
|
||||
No one is getting paid to work to work on this project, let alone bugs
|
||||
you may have an interest in. If you require decompiling bytecode
|
||||
immediately, consider using a decompilation service.
|
||||
From my standpoint, the good thing about the bugs listed in
|
||||
`runtests.sh` is that each test case is small and isolated to a single
|
||||
kind of problem. And I'll tend to fix easier, more isolated cases than
|
||||
generic "something's wrong" kinds of bugs where I'd have to do a bit
|
||||
of work to figure out what's up, if not use some sort of mind reading,
|
||||
make some guesses, and perform some experiments to see if the guesses
|
||||
are correct. I can't read minds, nor am I into guessing games; I'd
|
||||
rather devote the effort spent instead towards fixing bugs that are
|
||||
precisely defined.
|
||||
|
||||
And it often turns out that by just fixing the well-defined and
|
||||
prescribed cases, the ill-defined amorphous cases as well will get
|
||||
handled as well.
|
||||
|
||||
In sum, you may need to do some work to have the bug you have found
|
||||
handled before the hundreds of other bugs, and things I could be
|
||||
doing.
|
||||
|
||||
No one is getting paid to work to work on this project, let alone the
|
||||
bugs you may have an interest in. If you require decompiling bytecode
|
||||
immediately, consider using a decompilation service, listed further
|
||||
down in this document.
|
||||
|
||||
## Is it really a bug?
|
||||
|
||||
@@ -114,7 +127,7 @@ Also try to narrow the bug. See below.
|
||||
Some kind folks also give the invocation they used and the output
|
||||
which usually includes an error message produced. This is
|
||||
helpful. From this, I can figure out what OS you are running this on
|
||||
and what version of *uncomplye6* was used. Therefore, if you don't
|
||||
and what version of *uncomplye6* was used. Therefore, if you _don't_
|
||||
provide the input command and the output from that, please give:
|
||||
|
||||
* _uncompyle6_ version used
|
||||
|
14
README.rst
14
README.rst
@@ -163,10 +163,9 @@ python 2.3-2.4 since a lot of the goodness of early the version of the
|
||||
decompiler from that era has been preserved (and Python compilation in
|
||||
that era was minimal)
|
||||
|
||||
Later distributions average about 200 files. There is some work to do
|
||||
on the lower end Python versions which is more difficult for us to
|
||||
handle since we don't have a Python interpreter for versions 1.5, 1.6,
|
||||
and 2.0.
|
||||
There is some work to do on the lower end Python versions which is
|
||||
more difficult for us to handle since we don't have a Python
|
||||
interpreter for versions 1.5, 1.6, and 2.0.
|
||||
|
||||
In the Python 3 series, Python support is is strongest around 3.4 or
|
||||
3.3 and drops off as you move further away from those versions. Python
|
||||
@@ -187,7 +186,11 @@ handled.
|
||||
|
||||
We also don't handle PJOrion_ obfuscated code. For that try: PJOrion
|
||||
Deobfuscator_ to unscramble the bytecode to get valid bytecode before
|
||||
trying this tool.
|
||||
trying this tool. This program can't decompile Microsoft Windows EXE
|
||||
files created by Py2EXE_, although we can probably decompile the code
|
||||
after you extract the bytecode properly. For situations like this, you
|
||||
might want to consider a decompilation service like [Crazy
|
||||
Compilers](http://www.crazy-compilers.com/decompyle/).
|
||||
|
||||
Handling pathologically long lists of expressions or statements is
|
||||
slow.
|
||||
@@ -219,3 +222,4 @@ See Also
|
||||
:target: https://travis-ci.org/rocky/python-uncompyle6
|
||||
.. _PJOrion: http://www.koreanrandom.com/forum/topic/15280-pjorion-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%B4%D0%B5%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BE%D0%B1%D1%84
|
||||
.. _Deobfuscator: https://github.com/extremecoders-re/PjOrion-Deobfuscator
|
||||
.. _Py2EXE: https://en.wikipedia.org/wiki/Py2exe
|
||||
|
@@ -36,8 +36,10 @@ case $PYVERSION in
|
||||
[test_codecs.py]=1 # need to fix tryelse
|
||||
[test_decorators.py]=1 # Syntax error decorators?
|
||||
[test_dis.py]=1 # We change line numbers - duh!
|
||||
[test_exceptions.py]=1
|
||||
[test_extcall.py]=1 # TypeError: saboteur() takes no arguments (1 given)
|
||||
[test_format.py]=1 # Control flow?
|
||||
[test_functools.py]=1
|
||||
[test_grammar.py]=1 # Too many stmts. Handle large stmts
|
||||
[test_grp.py]=1 # Long test - might work Control flow?
|
||||
[test_long_future.py]=1 # Control flow?
|
||||
|
Reference in New Issue
Block a user