Skip to content
This repository has been archived by the owner on Oct 4, 2024. It is now read-only.

ASM long -> 3 int transformation for light engine #84

Open
wants to merge 65 commits into
base: MC_1.18
Choose a base branch
from

Conversation

BelgianSalamander
Copy link
Contributor

No description provided.

@BelgianSalamander
Copy link
Contributor Author

I will probably be re-writing/simplifying a big portion of this soon.

@BelgianSalamander BelgianSalamander changed the base branch from MC_1.17 to MC_1.18 November 18, 2022 03:21
Copy link
Member

@CursedFlames CursedFlames left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't see any major issues.

  • type-transformer-config-docs.md still needs to be finished
  • the transformer stuff could do with more comments/javadocs, of course; don't necessarily need this before merge though, it can be done later
  • there's a bunch of things missing @Nullable since you use NonnullByDefault - I'm not gonna go through and comment on them all; it's pretty minor.
  • It might be worth chucking List<Integer>[][] in a record class somewhere with a javadoc explaining what the indices actually do - I've read this entire PR and I'm still not sure what they are.
  • "indices" and "indexes" seem to be used inconsistently. Very minor
  • can the int3 list/map/set/etc in cubicchunks/utils be moved to cubicchunkscore?

To do before merge:

  • Salamander addresses my comments
  • Salamander finishes documentation in type-transformer-config-docs.md
  • Would like others to carefully review the following:
    • The int3 list/map/set stuff in cubicchunks/utils
    • TransformTrackingInterpeter.invokeDynamicOperation
    • TypeTransformer.transformInvokeDynamicInsn
      (I'm not confident enough in my knowledge of lambdas and invokeDynamic in bytecode; I could have missed issues with the relevant methods.)
  • If possible, would like at least one other person to review this entire PR; I understand that reviewing 11k LoC diff is a big ask though 😅

.idea/codeStyles/Project.xml Outdated Show resolved Hide resolved
<module name="CyclomaticComplexity">
<property name="switchBlockAsSingleDecisionPoint" value="true"/>
<property name="max" value="15"/>
<property name="tokens" value="LITERAL_WHILE , LITERAL_DO , LITERAL_FOR , LITERAL_IF , LITERAL_SWITCH , LITERAL_CASE , LITERAL_CATCH , QUESTION"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure of the consequences of this; would like others to review


import org.objectweb.asm.Type;

public interface Ancestralizable<T extends Ancestralizable<T>> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like this could use a better name, but I don't have suggestions.

(Is "ancestralizable" even a word?)

@CursedFlames
Copy link
Member

Also another thing Salamander and I discussed that I forgot to mention here:

For clarity, I think we should use indices or similar to refer to regular variable indices, and offsets for the case where longs and doubles take two slots rather than one.

BelgianSalamander and others added 5 commits July 16, 2023 14:48
rename static getKind to getKindFor in DerivedTransformType, as otherwise checkstyle complains about overloads that aren't together
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
No open projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

5 participants