-
-
Notifications
You must be signed in to change notification settings - Fork 430
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Parse error at or near `JUMP_FORWARD' instruction #150
Comments
With respect to the recent 2.7 failures, although I think each can be fixed in the current framework, what is really needed is a refactor of the code: separate pass using control-flow analysis over the instructions to mark and insert additional instructions which delimit the control flow structures. My current thought is to do create a branch for 3.6 or maybe a separate project to strip the code down to just that version and then work on that aspect. (3.6 probably has the worst handling of control flow while the overall handling of instructions for 3.x is a little cleaner than for 2.x). However it could also be done in 2.7 or some other version. If you or someone else wants to jump in to handle the refactor that would be most appreciated. Otherwise I'll probably will defer these kinds of issues for a little while. |
I want to help but I don't have much knowledge on compiling and decompiling. I'll try to get familiar with compiler tech and this project. |
That's the spirit! No one is born knowing compiling or decompiling. And the particular method used here I think is a little bit new and different even if you were familiar with decompiling. The wiki has a bit of information on how the code works. https://github.com/rocky/python-uncompyle6/wiki/How-does-this-code-work%3F is the oldest and shortest version. https://github.com/rocky/python-uncompyle6/wiki/Deparsing-Paper.pdf has the most detailed information but it is a little bit like a research paper. One thing you might do to see what's up is see if you can fix this particular bug using the existing code. Since this does work with the older uncompyle2, run that with the If you have questions, jut ask. |
In commit 5edcc7c , I believe this issue is fixed. So you and other might get a sense of what was done, I tracked the steps that I took and those are in the wiki: https://github.com/rocky/python-uncompyle6/wiki/Fixing-Issue-%23150 |
Thanks! That's very helpful. |
Python bytecode version: 2.7, compiled with 2.7.10
uncompyle6 71e7120 on Python 3.6.4
Code example:
Instruction context:
This is a rare condition but this code is valid. Thanks.
The text was updated successfully, but these errors were encountered: