Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node-based graphing bytecode transformer #19

Draft
wants to merge 2 commits into
base: 1.18.x/dev
Choose a base branch
from

Conversation

Ampflower
Copy link
Member

@Ampflower Ampflower commented Feb 28, 2022

Goals

  • Implement a node-based view of the relations between producers & consumers, including any stack mutations such as DUP, SWAP and POP.
  • Be able to work around IF*, *SWITCH, GOTO and JSR instructions.
    • Verify at junctions that the stack is even and all the types are consistent.
    • Note that the stack must be consistent at junctions.
    • Locals maybe freely mutated, requiring scope handlers to capture what may have changed..
  • Static analysis of variables to attempt to prove validity at consumers?
    • Mixin does interfere a fair bit here however. This maybe only useful as a warning rather than a hard error.
  • Allow better mod compatibility, see Crash with Fabric LANd #18
  • Introduce acid tests as extreme units of verifying that the node view is correct.
    • A fair amount may have to be created via Jasmin as Java doesn't allow a sufficient amount of control for stack-based execution over locals-based.
    • Kotlin may also be a decent option due to a fair amount of instructions

Non-goals

  • Turn Anti-Xray into a giant transformer library. Don't touch the internals.

Fixes #18

This is a remote stash more than anything.
@Ampflower Ampflower added enhancement New feature or request anti-xray module This issues relates to the anti-xray engine. mod compatibility This issue is about an incompatible mod. labels Feb 28, 2022
@Ampflower Ampflower added this to the Release 0.0.0 milestone Feb 28, 2022
@Ampflower Ampflower self-assigned this Feb 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
anti-xray module This issues relates to the anti-xray engine. enhancement New feature or request mod compatibility This issue is about an incompatible mod.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash with Fabric LANd
1 participant