Konloch / Konloch/bytecode-viewer

Add support for Quiltflower

Open
#427 10 comments 1 reaction 0 assignees View on GitHub
Dependency Related Enhancement
Dominant language
Java
Stars
15.6k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

[Quiltflower](https://github.com/QuiltMC/quiltflower) is a fork of Fernflower aiming to be faster, produce more readable Java code, and has additional features and fixes.

There is one significant issue: it is a fork that leaves the original package and class names untouched, and I cannot find a way to relocate the package under Maven—so, either an issue is filed and the maintainers of Quiltflower decide to relocate their packages to prevent conflicts with Fernflower (unlikely), or a fork is created to (potentially automatically) handle upstream changes to Quiltflower and put them in a relocated package that doesn't conflict (more time-consuming).

[Here is an example](https://www.diffchecker.com/XsTQMgfN) of some ugly code from a personal project decompiled with Fernflower vs. Quiltflower. Some code has more changes than others, as well as a few possible regressions. This was decompiled using a single Java 8 class with the latest of both decompilers.

I currently have a working local build of bytecode-viewer up and running with this decompiler (replacing original Fernflower). Let me know what you think and if you think work on a proper Pull Request should be done.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing how bytecode-viewer currently integrates Fernflower and how its Maven packaging handles that dependency. Compare the local Quiltflower build described in the issue with the existing decompiler setup, then determine whether package relocation or an upstream fork is required before support can be considered complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
reverse-engineering, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.