Skip to content

Please add python3.9 and above to uncompyle6 #331

Description

@GUANCAIBAN

Note by maintainer: [I removed the unfilled template which was appearing here. That contained instructions as comments that were supposed to be filled out. Pro tip: if you are seeking help, it is either a good idea to follow instructions or explain why you are not. If you just didn't notice, were too lazy to do, or don't really care, that too does encourage response or assistance.]

Activity

  1. added
    Volunteer wantedVolunteer wanted to fix if a bug or to implement if a new feature.
    on Oct 10, 2020
  2. rocky commented on Oct 10, 2020

    @rocky
    Owner

    Not something I am interested in for a while. There is decompyle3 and even there 3.9 will be a bit be the weakest.

    A reworking on how control flow is handled has long been overdue. 3.9 was my thought on where to draw the line for this.

  3. GUANCAIBAN commented on Oct 10, 2020

    @GUANCAIBAN
    Author
  4. Gowixx commented on Mar 9, 2021

    @Gowixx

    I beg a volunteer lol, I really need a 3.9 decompiler

  5. rocky commented on Mar 9, 2021

    @rocky
    Owner

    Does begging imply that you'd pay money for this? (The conventional definition of beg though is not.)

  6. Gowixx commented on Mar 9, 2021

    @Gowixx

    I could pay for it depending on how long it takes.

  7. rocky commented on Mar 10, 2021

    @rocky
    Owner

    Right now I have a full-time job which keeps me very busy.

    I'd have to do this on the weekends. Getting a rudimentary 3.9 that works almost as well as 3.8 might be 3 or 4 weekends and would be in the decompyle3 project.

    To do a proper job would require a reworking of control flow using https://github.com/rocky/python-control-flow . If that were that done, we'd see a general improvement, and probably would be able to handle future Python bytecode and also use this approach in other decompilers. But even after I start, it will to take a long time.

    So, what I propose for now is support me in this project for whatever amount seems right to you. When there are enough people interested and about is collected1, I'll spend the time to do it.

    See also that link for how to lower the barrier fee listed above.

    Footnotes

    1. over time the dollar amount may go up, especially at times when I get duplicate requests of this issue such as in https://github.com/rocky/python-uncompyle6/issues/347. Even as the figure stands now, it is a bit low for the amount of effort to do a decent job. See the bottom of https://github.com/rocky/python-decompile3/issues/45 where the tally stands. ↩

  8. changed the title [-]please add python3.9 to umcompyle6[/-] [+]please add python3.9 to uncompyle6[/+] on Mar 14, 2021
  9. paowongsakorn commented on Jul 19, 2021

    @paowongsakorn

    i just sponsor you please give me solution pyc to py 3.9 thanks.

  10. rocky commented on Jul 19, 2021

    @rocky
    Owner

    Thanks!

    Right now though, I am not seeing you listed. I see 3 other people, and my thanks to them as well!

    As stated in above, when about $5K1 accumulates, I will start working on it or make what is experimental more publically available. At the current level of subscription that would be in about 4 years if monthly subscribers hold out for that long.

    I looked at 3.10 and that's doable, but it looks like the simplest and logical thing to do is first do 3.9 and then 3.10. Since 3.10 and 3.11 is additional work that means $5K for each version.

    Footnotes

    1. The exact amount will be listed at the end of https://github.com/rocky/python-decompile3/issues/45 ↩

  11. paowongsakorn commented on Jul 20, 2021

    @paowongsakorn

    i sponsor as private, now accumulate how much?

  12. 1 remaining item

  13. changed the title [-]please add python3.9 to uncompyle6[/-] [+]Please add python3.9 and above to uncompyle6[/+] on Dec 14, 2021
  14. rocky commented on Feb 14, 2022

    @rocky
    Owner

    I could pay for it depending on how long it takes.

    How long it takes depends on how many people are interested in paying and to what level :-)

  15. jhhcs commented on Mar 5, 2022

    @jhhcs

    Is there some place where the community can see the amount of money that is currently being generated through sponsors for this?

  16. rocky commented on Mar 5, 2022

    @rocky
    Owner

    Not that I am aware of and it fluctuates. Right now it is at $40 a month and it has been about that for a while.

    Let's see, at about $60/hr that would be 40 minutes a month. $60/hr is much less than what I get paid at work.

    Also, I don't really have a handle on what sponsors are interested in. Some have only starred projects that are not any decompiler.

    If someone knows of a setting or way to have answer this happen automatically, let me know.

    This seems more of a question though for github since I am using their mechanism.

  17. Zunea commented on Aug 23, 2022

    @Zunea

    Hi! ! I can pay 200$ in advance, how can I pay

  18. rocky commented on Aug 23, 2022

    @rocky
    Owner
  19. Zunea commented on Aug 23, 2022

    @Zunea

    sry, sponsorship can only be selected up to 120$

  20. rocky commented on Aug 23, 2022

    @rocky
    Owner

    No problem and thanks! I'll wait a month and you can reduce the next month to $80.

  21. FantasqueX commented on Aug 26, 2022

    @FantasqueX

    Hi! First of all, I really value work you have done. it's exciting to know a decompiler which supports print(*[1, 2]). As I have some decompile experience on ELF, maybe I can help with coding. I wonder if there are some TODO before supporting 3.9. Maybe the first step is to finish uncompyle6.scanners.scanner39.py?

  22. rocky commented on Aug 26, 2022

    @rocky
    Owner

    Hi - for 3.9 and above, the code will be based more along the lines of the code in https://github.com/rocky/python-decompile3 not here. That code uses more modern Python and has been reorganized a little bit as well. #307 asks for someone to make the two code bases more alike. This would be a good place to start understanding the kinds of things that happen when a new Python version is added.

    Also, as I recall the little change that you did here needs to also be applied there. So that's another small step thing to do.

    And the weakest areas is in control flow, so that needs better technology. For that I started https://github.com/rocky/python-control-flow. I'll suggest the next step there though after I see more work in either of these two simpler areas.

    Maybe the first step is to finish uncompyle6.scanners.scanner39.py?

    Not really, I think I have versions of this stuff around somewhere for 3.9 and 3.10. This kind of thing is pretty trivial. I don't need and am not interested in the trivial stuff, If you are interested in working on a superficial decompiler that purports to work for a later version of Python see pycdc or unpy7-3.20.

  23. FantasqueX commented on Aug 26, 2022

    @FantasqueX

    Hi - for 3.9 and above, the code will be based more along the lines of the code in https://github.com/rocky/python-decompile3 not here. That code uses more modern Python and has been reorganized a little bit as well. #307 asks for someone to make the two code bases more alike. This would be a good place to start understanding the kinds of things that happen when a new Python version is added.

    Also, as I recall the little change that you did here needs to also be applied there. So that's another small step thing to do.

    And the weakest areas is in control flow, so that needs better technology. For that I started https://github.com/rocky/python-control-flow. I'll suggest the next step there though after I see more work in either of these two simpler areas.

    Thanks for your reply. I'll take a look at those places you mentioned.

    Not really, I think I have versions of this stuff around somewhere for 3.9 and 3.10. This kind of thing is pretty trivial. I don't need and am not interested in the trivial stuff, If you are interested in working on a superficial decompiler that purports to work for a later version of Python see pycdc or unpy7-3.20.

    That question is just naive. I quickly looked through the code and made some small modifications to bypass version checks. I have taken a look at pycdc code, want to add support of LIST_TO_TUPLE. Finally, I realize the real problem is that pycdc doesn't support CALL_FUNCTION_EX. So, I think porting uncompycle6 to python3.9 may be easier. As you said, porting uncompyle6 to more recent version of Python is trivial work, I'll try to do it. Maybe I need some review suggestions. Not moving forward is not a good thing.

  24. Zunea commented on Sep 28, 2022

    @Zunea

    Hi rocky. I have currently sponsored 240$, I very much hope to decompile python3.9, I hope to communicate with you further, I can pay the fee separately

  25. rocky commented on Sep 29, 2022

    @rocky
    Owner

    Hi Zunea - thanks for the sponsorship! During the week, things are busy for me.

    This weekend though, I will write up thoughts about rolling in python 3.9.

    For the record, $120 has been received and Oct 22 is when the next $120 (for a total of $240) will arrive.

  26. rocky commented on Oct 2, 2022

    @rocky
    Owner

    @Zunea #412 contains the writeup I said I'd do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Python 3.9+Python 3.9, 3.10, 3.11, 3.12, 3.13Volunteer wantedVolunteer wanted to fix if a bug or to implement if a new feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions