Fix cfr compatibility with the client #80

Open
opened 4 years ago by gpe · 1 comments
gpe commented 4 years ago
Owner

It'd be nice to use cfr instead of Fernflower.

cfr has much better type inference, try/finally handling, SSA support and so on.

However, it struggles with a small number of methods in the client.

We should try to figure out what the problems are and either submit cfr patches upstream to fix them or work around them in the deobfuscator.

It'd be nice to use cfr instead of Fernflower. cfr has much better type inference, try/finally handling, SSA support and so on. However, it struggles with a small number of methods in the client. We should try to figure out what the problems are and either submit cfr patches upstream to fix them or work around them in the deobfuscator.
gpe added the
deobfuscator
research
labels 4 years ago
Poster
Owner

One thing I have noticed is that cfr's variable scoping doesn't seem to be quite as good (after patching Fernflower to avoid merging variables). I guess we might need to do similar tweaking in cfr.

I came across https://github.com/MinecraftForge/ForgeFlower yesterday, which is a bunch of Fernflower patches. Might be interesting to look at those.

One thing I have noticed is that cfr's variable scoping doesn't seem to be quite as good (after patching Fernflower to avoid merging variables). I guess we might need to do similar tweaking in cfr. I came across https://github.com/MinecraftForge/ForgeFlower yesterday, which is a bunch of Fernflower patches. Might be interesting to look at those.
Sign in to join this conversation.
Loading…
There is no content yet.