Releases: Chocohead/Fabric-ASM
The New Age One
The first release supporting (and thus depending on a minimum of) Fabric Loader 0.7. Therefore also being designed for Mixin 0.8. Feature identical to 1.9.1 although with two important notes which likely make existing code incompatible:
ASM Lib Shift
Mixin no longer repackages ASM, thus the standard imports can finally be used in preference to the Mixin ones. Care should be taken to not leave any dangling references given Mixin's remaining stub implementation will crash at runtime.
Early Risers load from Entry Points
Although not a Loader 0.7 change, now that it is the minimum version Early Risers can be loaded as entry points now rather than requiring to be custom JSON entries. The old system also works, but using entry points is preferred. The required changes should be minimal.
The Quite Creative One
The final feature filled release until v2.0 which will introduce Fabric Loader 0.7 support (and therefore Mixin 0.8).
Adds support for explicit class transformers which replace enough to run before any other Mixins. Called class replacers, although they don't necessarily have to replace everything, they act the same as any other class transformer with the caveat that only one can be defined for any given class. Designed drastic changes like binary patches which would otherwise squish anything and everything that came before them.
Also adds support for subclassing enums. This allows not only finally being able to extend abstract enums, but also allows arbitrarily overriding enum methods in any added values. Subclasses are defined as they would be at the source level in the same package as the enum itself, so only private methods need an access transformer if they are wanted to be used/overriden. A complex but powerful feature even compared to extending enums normally.
Finally, support is added for exporting generated classes. Before there was no way of seeing what was produced from defining new classes from a byte array, now they are exported according to Mixin's export debug flag (including class filtering).
As always, the release still includes the standard runtime mod and proof of concept example mod. The example mod has gained a pair of examples extending both a test enum, and a real one from Minecraft (EnchantmentTarget
), meaning it definitely requires at least v1.9.1 of the standard runtime.
The Weller Tested One
Fixes a range of method stack related possible problems extending enums. Slightly reduces memory pressure when extending enums which use the default (Enum
inherited) constructor. Also adds a Mod Menu icon as inspired from #3 and PR'd from #4.
Example mod is heavily expanded compared to previous versions and now accounts for a wider array of possible enum constructors. Dev time remapping has switched to Fabric Loader's MappingResolver
so now needs at least 0.4.3 to run, running in production and the normal jar remain needing at least 0.4.0.
The Well Tested One
Fixes a range of method stack related possible problems extending enums. Slightly reduces memory pressure when extending enums which use the default (Enum
inherited) constructor. Also adds a Mod Menu icon as inspired from #3 and PR'd from #4.
Example mod is heavily expanded compared to previous versions and now accounts for a wider array of possible enum constructors. Dev time remapping has switched to Fabric Loader's MappingResolver
so now needs at least 0.4.3 to run, running in production and the normal jar remain needing at least 0.4.0.
The Socially Helpful One
Adds the ability to add new URLs onto the classpath without having to copy the technique used. Best time to use it is in an early riser if it is wanted to both be done early and always succeed. Is also definitely the backing for OptiSine now too.
Still includes the standard runtime mod and proof of concept example mod. Example mod is unchanged compared to v1.4 besides requiring at least v1.6 of the standard runtime.
The Socially Acceptable One
Allows transforming interfaces now that Fabric's Mixin fork allows doing so. Appears to be the backing for OptiSine now too.
Still includes the standard runtime mod and proof of concept example mod. Example mod is unchanged compared to v1.4 besides requiring at least v1.5 of the standard runtime.
The Rogue One
Includes standard runtime mod and proof of concept example mod. Remember to mod responsibly with your new found power.