[diffoscope] diffoscope (JVM bytecode) is not supported for Java 21

Aman Sharma amansha at kth.se
Mon Jul 29 09:59:43 UTC 2024


Hi Chris,


> Do you know why it doesn't decompile the code? I see in your output:


Thanks for responding! I knew there was a problem with procyon but I thought it was packaged with diffoscope. However, it is not. I manually updated procyon to the latest release<https://github.com/mstrobel/procyon/releases/tag/v0.6.0> as of today and it does not throw an exception anymore.


> diffoscope tries procyon first and determines whether that shows any
difference. If it doesn't, it will fallback to javap. (And then to
hexdump.)


Sounds good! Thank you!


Regards,
Aman Sharma

PhD Student
KTH Royal Institute of Technology
School of Electrical Engineering and Computer Science (EECS)
Department of Theoretical Computer Science (TCS)
<http://www.kth.se><https://www.kth.se/profile/amansha><https://www.kth.se/profile/amansha>
<https://www.kth.se/profile/amansha>https://algomaster99.github.io/
________________________________
From: Chris Lamb <chris at reproducible-builds.org>
Sent: Thursday, July 25, 2024 2:11:37 PM
To: Aman Sharma
Cc: diffoscope
Subject: Re: [diffoscope] diffoscope (JVM bytecode) is not supported for Java 21

Hello Aman,

> I have been using diffoscope to diff between Java classfiles. However,
> it seems to be unsupported for JDK >= 21 because procyon fails to
> decompile the code.

Do you know why it doesn't decompile the code? I see in your output:

> │┄ Command `'procyon -ec {}'` failed with exit code 1. Standard output:

Can you run that on the command line? In the first instance, it would
be great to get confirmation that your procyon installation works
fine. Or, putting it another way: if procyon cannot disassemble the
code, there is very little that diffoscope can do.

> With JDK 17, diffoscope either shows the diff between the disassembled
> output or decompiled output (side question, how does it decide between
> the two?).

diffoscope tries procyon first and determines whether that shows any
difference. If it doesn't, it will fallback to javap. (And then to
hexdump.)


Best wishes,

--
      o
    ⬋   ⬊      Chris Lamb
   o     o     reproducible-builds.org 💠
    ⬊   ⬋
      o
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/diffoscope/attachments/20240729/3cdfa0a1/attachment.htm>


More information about the diffoscope mailing list