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.
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.
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.
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.
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.