Turn "continue" into "pass" based on line number information
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- python
- Domain
- compilers, reverse-engineering
Research direction
Start with test/simple_source/looping/12_if_while_true_pass.py, the example identified in the issue. Read how Python 3 jump optimization currently produces continue statements, then investigate whether a separate control flow pass can use line-number boundaries around JUMP_ABSOLUTE offsets. Done means the decompiler distinguishes continue, pass, and no statement for this case.
Written by the indexing model from the issue text.
Description
In Python 3 with jump optimization, uncomplyle6 often adds "continue" statements where it is not needed or where "pass" statements were probably used. https://github.com/rocky/python-uncompyle6/blob/master/test/simple_source/looping/12_if_while_true_pass.py is a good example.
We can probably use line number information to disambiguate. Often these instructions are JUMP_ABSOLUTE. If the offset that these appear at are at a line boundary then probably the source had continue, otherwise pass, when a statement is needed, and nothing otherwise.
We'll probably have to wait until we have a separate control flow pass for this.
- Dominant language
- Python
- Stars
- 4.3k
- Forks
- 463
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rocky/python-uncompyle6
-
Works on decompyle3
Difficulty 4/5 3-5 days Newbie friendliness 35/100
rocky/python-uncompyle6#506 · 1 comment ·
-
Python 3.8 Volunteer wanted Works on decompyle3
Difficulty 4/5 3-5 days Newbie friendliness 35/100
rocky/python-uncompyle6#492 · 4 comments ·
-
Redundant "else:" OpenControl Flow Python 3.8 Volunteer wanted Works on decompyle3
Difficulty 4/5 3-5 days Newbie friendliness 45/100
rocky/python-uncompyle6#486 ·
-
Missing "While True" OpenControl Flow Python 3.8 Volunteer wanted Works on decompyle3
Difficulty 4/5 3-5 days Newbie friendliness 45/100
rocky/python-uncompyle6#485 · 4 comments ·
-
Duplicate Python 3.9+
Difficulty 5/5 Over a week Newbie friendliness 25/100
rocky/python-uncompyle6#484 · 9 reactions ·
All issues in rocky/python-uncompyle6
Similar issues
-
area: harness bug status: needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Human-Agent-Society/reef#625 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 1/5 Under an hour Newbie friendliness 80/100
learningequality/kolibri#15351 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Name consistency Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
eellak/triplestore#65 · 1 comment ·