-
-
Notifications
You must be signed in to change notification settings - Fork 411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge decompyle3's 3.7 and 3.8 goodness into uncompyle6 #307
Comments
Hi, But there seems to be an issue and need to be verified. I tried to run
Thank you. |
Great to see you back! A lot has changed. It is hard to even know where to begin. In decompyle3 I have been exclusively working in the "and-or-refactor" branch. which I am getting ready to merge back into master. With that,
As a result of this, I think now have a very good handle on fixing parsing bugs and being able to have a grammar that is more comprehensible, and understand when something needs to be fixed as a reduction rule or grammar rule or something else. And all of this I think will be a prelude to yet another fork to really try to reduce the reduction rule complexity by adding more higher-level constructs that can be obtained with basic blocks and dominator, reverse dominator information. It has and continues to be a long tough slog, but at the end I think I have a much better handle on decompilation for higher-level VMs. If I could get paid for this or there is a market for it, I might do this for some other pair of high-level language and assembly. |
Oh, and as for that specific error. Travis CI is not showing it and in my own locally-checked out master I am not seeing that error. The filename on that is weird but assuming this is supposed to be bytecode_3.0/02_try_except_except.pyc Here is the tree for that:
|
Okay, let me try again. I'll let you know about the result.
So i think i should wait for it to be merged. Correct? Anyway as of these progresses, what is your priorities in tasks, issues and parts? I think i can adapt myself to the new changes soon. (Maybe this is not a good place to discuss)
And about merging changes, do you have plan to separate each version into directories like decompyle3? Seems to be a lot of questions. Sorry about that! |
Yes. I don't think it will take too long. In the meantime you can get up to speed on what's up in that branch. Since this is a largish change, the way I'd handle it is to go over the commit history and pick out specific parts to do. For example That sort of weird thing was caught via running one of the stdlib tests for 3.7. |
and/or-refactor merging in decompiling may take a while. It looks like more rot was discovered and so yet another detour to fix that up is going on. However... I've just squashed some of the commits in that branch and gone over things that should be ported here that are not part over the overall big refactor: It looks like commit sha's have changed. I was able to match things up by commit message though.
listcomp -> list_comp (to match AST ListComp)
|
Thanks, you made my work easy! Do you mind using separate commit for each? I'll give it a try and let you know about the result. |
You may want to pass judgement until afterwards. I wouldn't say "easy", but hopefully "easier".
Please do. And just work in the way that makes the most sense and is the most comfortable for you.
Many thanks! About the diffs: Changes strictly to 3.7-excludes.sh or 3.8-excludes, especially if it is only comments take with a grain of salt. There were regressions as well as progressions. Best is to just run those particular tests to see what is reported. I am sure you know this but as a reminder: $ cd test/stdlib
$ ./runtest.sh test_[whatever].sh What is helpful in the comment in the 3.x-exclude is a rough categorization:
Also I try to keep track of regressions by placing a newly-excluded test at the top. If this test worked sometime in the past that's great because I can compare the decompilled source which is of course less different than the original source and a faulty decompiled source. So regressions I generally put a the top of the exclude list since those are easiest to fix. And in the case of decompiyle3 once I get all the regressions fixed, I'll merge into master. |
I pushed some commits to Also i saw your changes in commits for Changes in that branch:
I'll continue working on this and then send a PR. Thanks. |
Yes, i noticed. Looks fine as far as I could tell form first glance. Nothing fancy. Thanks for doing this.
I don't think this is complete. If you grep for |
I spent some time to figure out the async def x():
q = [i for x in p async for i in f]
return 1 In the meantime i reviewed pep530 and we should support more cases. I'm going to continue this work and fix all the issues. Anyway about these lines do you remember the test case for this? I assumed Thanks |
Thanks for undertaking to clean up listcomp and add pep530. Reminds me of the time you did the same for the function signatures which was a big mess that I doubt I would have gotten around to and fixed properly. As for This does bring up the broader point that syncronizing grammar rules with indexes in the semantics directory and the reducecheck directory is becoming a pain and it would be nice to have and use a more automated system to keep these in sync. Or at least more automated checks. |
Also, I see that in |
At this point probably 3.7 and 3.8 decompilation with its refactored parsing and reduction-rule checking is better than the code in uncompyle6.
Although there still is much to do in decompyle3, there is benefit in backporting it here.
Any volunteers?
The text was updated successfully, but these errors were encountered: