MinecraftForge / ForgeFlower

Forge's modifications to FernFlower. Fixing various bugs/inconsistencies. Main Repo: https://github.com/MinecraftForge/FernFlower
Apache License 2.0
80 stars 44 forks source link

Simplify threaded output handling/stabilize output #115

Closed zml2008 closed 2 years ago

zml2008 commented 2 years ago

This removes a variety of executor rebuilding, and the queueing logic in ThreadSafeResultSaver, in favor of queueing output with the existing class context list.

This has the benefit of simplifying any IResultSaver implementation, and allows preserving archive order when generating output.

The Fernflower constructor has been modified to ensure all Fernflower instances follow similar argument parsing logic, rather than just ConsoleDecompiler instances.

zml2008 commented 2 years ago

note to self: this improves file ordering -- it would be nice to work towards fully reproducible output though, doing things like zeroing out zip entry timestamps

zml2008 commented 2 years ago

Alright, updated this PR to also do stable archive output with a little lifting from FART :)