diff --git a/README.MD b/README.MD
index c5a6598f1..c862da1d4 100644
--- a/README.MD
+++ b/README.MD
@@ -4,10 +4,14 @@
**Mixin** is a trait/mixin framework for Java using [ASM](http://asm.ow2.org/)
and hooking into the runtime class-loading process via Mojang's
-[LegacyLauncher](https://github.com/Mojang/LegacyLauncher) system. The main
-documentation for **Mixin** can be found in the [Wiki](../../wiki). Additional
-documentation for individual features and annotations can be found in the
-extensive [Javadoc](http://jenkins.liteloader.com/job/Mixin/javadoc/). For
+[LegacyLauncher](https://github.com/Mojang/LegacyLauncher) system.
+
+### Documentation
+
+The main documentation for **Mixin** can be found in the [Wiki](../../wiki).
+
+Additional documentation for individual features and annotations can be found in
+the extensive [Javadoc](http://jenkins.liteloader.com/job/Mixin/javadoc/). For
additional help use the channel `#spongedev` on the Espernet IRC network.
### Building Mixin
@@ -21,8 +25,7 @@ your system you can instead run the supplied Gradle wrapper `gradlew`)*
### Integration with Eclipse IDE
-The **Mixin** project can be integrated easily with Eclipse using the [Gradle
-Plugin](http://marketplace.eclipse.org/content/gradle-integration-eclipse-44).
+The **Mixin** project can be integrated easily with Eclipse using Buildship.
Simply choose `Import` -> `Gradle Project` and follow the prompts.
When developing using **Mixin**, you can use the **Mixin Annotation Processor**
@@ -56,550 +59,599 @@ plugin developed by [DemonWav](https://github.com/demonwav).
Version |
- Features / Changes |
Date |
+ Features / Changes |
- 0.1 |
+ 0.7.10 |
+ June 2018 |
- - Basic Mixin Support
- - Basic Injector Support
- - Annotation Processor
+ - Log an error when a mixin class is subject to classloader restrictions
|
- January 2015 |
- 0.2 |
+ 0.7.9 |
+ April 2018 |
- - Added supermixin support (mixins inheriting from other mixins)
+ - Allow certain injectors to target mixin methods.
|
- March 2015 |
- 0.3 |
+ 0.7.8 |
+ April 2018 |
- - Implemented Environments
- - Intrinsic method support
- - Enabled local variable capture
- - Alias support
+ - Bug fixes for member declaration validation, non-wild ctor redirects,
+ and internal errors in Args subclass generator
|
- March 2015 |
- 0.3.1 |
+ 0.7.7 |
+ March 2018 |
- - Annotation Merging
- - Allow Overwrite methods to be aliased
+ - Fixes for handling of log message triggers for INIT phase and error
+ when running with unexpected logger configurations
+ - Add warnings for invalid slice points and narrowing conversion in
+ ModifyConstant handlers
|
- April 2015 |
- 0.3.2 |
+ 0.7.6 |
+ November 2017 |
- - Error handler support
+ - Fix inheritance for string system properties
|
- April 2015 |
- 0.4 |
+ 0.7.5 |
+ October 2017 |
- - Shade relocated ASM package and use throughout
+ - Add support for @Coerce on redirect injectors.
|
- May 2015 |
- 0.4.3 |
+ 0.7.4 |
+ September 2017 |
- - Add INVOKE_ASSIGN injection point
- - Support injector callbacks without args
- - Support coercion of covariant parameter types in callbacks
- - Support truncating local-capturing injector handlers
- - Runtime decompilation of exported classes using fernflower
- - Add export filter
+ - Added @Dynamic annotation for decorating mixin
+ elements with dynamically-injected targets.
|
- May 2015 |
- 0.4.4 |
+ 0.7.3 |
+ August 2017 |
- - Add constraints for overwrites
+ - Internal changes to provide for support modlauncher and java 9
|
- July 2015 |
- 0.4.6 |
+ 0.7.2 |
+ August 2017 |
- - Add INIT phase for handling early FML startup
- - Add support for lambdas in mixins
- - Add support for hot code replacement in mixins
- - Improve Java 8 feature support
+ - Add profiler for inspecting mixin performance.
|
- September 2015 |
- 0.4.8 |
+ 0.7.1 |
+ August 2017 |
- - Annotation Processor improved to support
-
- MixinGradle
-
- - Support multiple target obfuscation environments in refmaps
+ - Fixes and improvements to the Mixin AP, fixing handling of multi-
+ dimensional arrays and resolving methods in superclasses of derived
+ types of obfuscated classes
+ - Add runtime refmap remapping to support using deobfCompile
+ dependencies with different mapping versions.
|
- December 2015 |
- 0.4.10 |
+ 0.7 |
+ July 2017 |
- - Runtime remapping support using RemapperChain
- - Ignore class transformers decorated with @Resource
- - Support @reason and @author validation on overwrites
+ - All official binaries are now signed
+ - Upgrade to ASM 5.2
+ - Add support for inner classes in Mixins
+ - Injectors can now have multiple explicit targets
+ - @At annotations can now have their own id
+ - Add support for using @Overwrite on non-obfuscated
+ methods as a way of verifying that an overwrite target exists
+ - Improve support for synthetic bridges, detect conflicting bridge
+ methods
+ - Detect and warn of excessive At.Shift.BY values
+ - ModifyConstant can now support multiple slices
+ - Add allow to injectors to detect over-injection
|
- December 2015 |
- 0.4.11 |
+ 0.6.15 |
+ July 2017 |
- - Add support for injector grouping and config-wide require value
+ - Add support for multiple constants in ModifyConstant
+ - Add CONSTANT as general-purpose injection point
+ - Add support for redirecting array length access in field
+ redirectors
|
- January 2016 |
- 0.4.13 |
+ 0.6.14 |
+ July 2017 |
- - Add @Final annotation
+ - Add support for using @Coerce on reference types in
+ Callback Injectors to support derived types.
|
- January 2016 |
- 0.4.14 |
+ 0.6.13 |
+ July 2017 |
- - Add support for interface mixins
+ - Add support for conforming visibility of overwrite methods to
+ match target class. Fixes issues where a target class method has been
+ modified by an Access Transformer to have higher visibility
+
|
- January 2016 |
- 0.4.15 |
+ 0.6.12 |
+ June 2017 |
- - Include soft targets in refmap
+ - Add slice argument to @ModifyConstant
+ - Add @ModifyArgs injector which can change multiple
+ method call arguments with a single handler.
|
- January 2016 |
- 0.4.17 |
+ 0.6.11 |
+ June 2017 |
- - Support ExtraSRGs in Annotation Processor
- - Include constructors in reference map
- - Add @Mutable annotation to suppress @Final warnings
+ - Fix handling of @Unique when the same unique method
+ exists in more than one mixin targetting the same class
+ - Fix handling of merged lambdas so that lambdas from mixins are
+ applied correctly when lambdas already exist in the target class (both
+ in the original class and when applied by earlier mixins)
|
- January 2016 |
- 0.4.18 |
+ 0.6.10 |
+ May 2017 |
- - Add @ModifyLocal injector
+ - (0.6.9) Minor fix to remove dependence on deprecated helper
+ - Respect remap on Mixin for contained @At
+ - Require redirectors which occur before call to superctor to be static
|
- February 2016 |
- 0.4.19 |
+ 0.6.8 |
+ February 2017 |
- - Add support for @Redirect on fields as well as methods
+ - Allow @ModifyConstant to hook implicit zero in comparisons
|
- February 2016 |
- 0.5.1 |
+ 0.6.7 |
+ January 2017 |
- - Overhaul injectors, injectors from all mixins now scan before any
- injectors are actually processed. Makes injectors more deterministic.
-
+ - Add support for @Redirect on array access
|
- February 2016 |
- 0.5.2 |
+ 0.6.6 |
+ January 2017 |
- - Support ID on injectors
- - Support priority for injectors
+ - Allow static methods in accessor mixins in Java 8 and above
|
- February 2016 |
- 0.5.3 |
+ 0.6.5 |
+ January 2017 |
- - Conform injectors
- - Enable hotswapper automatically if agent is active
- - Fix multiple issues with generics in Annotation Processors
+ - Add support for injector slices
|
- February 2016 |
- 0.5.4 |
+ 0.6.4 |
+ January 2017 |
- - Error handlers also receive mixin prepare errors
+ - Allow descriptors on NEW injection points
|
- April 2016 |
- 0.5.5 |
+ 0.6.3 |
+ December 2016 |
- - Add @ModifyConstant injector
- - Add @Debug annotation
- - Allow static @ModifyArg handlers in instance methods
+ - SourceDebugExtension support
|
- April 2016 |
- 0.5.6 |
+ 0.6.2 |
+ December 2016 |
- - Environment changes, support environment via agents
+ - Add support for @Pseudo (virtual target) mixins
|
- May 2016 |
- 0.5.7 |
+ 0.6.1 |
+ November 2016 |
- - Add @Unique annotation
+ - Process soft-implements annotations in the AP
|
- June 2016 |
- 0.5.8 |
+ 0.6 |
+ October 2016 |
- - Support constraints on injectors
+ - Accessor Mixin support
|
- June 2016 |
- 0.5.9 |
+ 0.5.17 |
+ October 2016 |
- - Hard fail if a required mixin target was already transformed
+ - Allow @Redirect injectors to target NEW opcodes for
+ constructor redirection
+
+ |
+
+
+ 0.5.16 |
+ October 2016 |
+
+
+ - Annotation Processor improvements. Support shadows and overrides
+ in multi-target mixins
+ - Support pluggable obfuscation environments in AP
+
+ |
+
+
+ 0.5.14 |
+ September 2016 |
+
+
+ - Add async decompilation support
+
+ |
+
+
+ 0.5.13 |
+ September 2016 |
+
+
+ - Add alternative strategy for injecting field initialisers
|
- June 2016 |
0.5.10 |
+ June 2016 |
- Support @Unique on fields
|
+
+
+ 0.5.9 |
June 2016 |
+
+
+ - Hard fail if a required mixin target was already transformed
+
+ |
- 0.5.13 |
+ 0.5.8 |
+ June 2016 |
- - Add alternative strategy for injecting field initialisers
+ - Support constraints on injectors
|
- September 2016 |
- 0.5.14 |
+ 0.5.7 |
+ June 2016 |
- - Add async decompilation support
+ - Add @Unique annotation
|
- September 2016 |
- 0.5.16 |
+ 0.5.6 |
+ May 2016 |
- - Annotation Processor improvements. Support shadows and overrides
- in multi-target mixins
- - Support pluggable obfuscation environments in AP
+ - Environment changes, support environment via agents
|
- October 2016 |
- 0.5.17 |
+ 0.5.5 |
+ April 2016 |
- - Allow @Redirect injectors to target NEW opcodes for
- constructor redirection
+ - Add @ModifyConstant injector
+ - Add @Debug annotation
+ - Allow static @ModifyArg handlers in instance methods
|
- October 2016 |
- 0.6 |
+ 0.5.4 |
+ April 2016 |
- - Accessor Mixin support
+ - Error handlers also receive mixin prepare errors
|
- October 2016 |
- 0.6.1 |
+ 0.5.3 |
+ February 2016 |
- - Process soft-implements annotations in the AP
+ - Conform injectors
+ - Enable hotswapper automatically if agent is active
+ - Fix multiple issues with generics in Annotation Processors
|
- November 2016 |
- 0.6.2 |
+ 0.5.2 |
+ February 2016 |
- - Add support for @Pseudo (virtual target) mixins
+ - Support ID on injectors
+ - Support priority for injectors
|
- December 2016 |
- 0.6.3 |
+ 0.5.1 |
+ February 2016 |
- - SourceDebugExtension support
+ - Overhaul injectors, injectors from all mixins now scan before any
+ injectors are actually processed. Makes injectors more deterministic.
+
|
- December 2016 |
- 0.6.4 |
+ 0.4.19 |
+ February 2016 |
- - Allow descriptors on NEW injection points
+ - Add support for @Redirect on fields as well as methods
|
- January 2017 |
- 0.6.5 |
+ 0.4.18 |
+ February 2016 |
- - Add support for injector slices
+ - Add @ModifyLocal injector
|
- January 2017 |
- 0.6.6 |
+ 0.4.17 |
+ January 2016 |
- - Allow static methods in accessor mixins in Java 8 and above
+ - Support ExtraSRGs in Annotation Processor
+ - Include constructors in reference map
+ - Add @Mutable annotation to suppress @Final warnings
|
- January 2017 |
- 0.6.7 |
+ 0.4.15 |
+ January 2016 |
- - Add support for @Redirect on array access
+ - Include soft targets in refmap
|
- January 2017 |
- 0.6.8 |
+ 0.4.14 |
+ January 2016 |
- - Allow @ModifyConstant to hook implicit zero in comparisons
+ - Add support for interface mixins
|
- February 2017 |
- 0.6.10 |
+ 0.4.13 |
+ January 2016 |
- - (0.6.9) Minor fix to remove dependence on deprecated helper
- - Respect remap on Mixin for contained @At
- - Require redirectors which occur before call to superctor to be static
+ - Add @Final annotation
|
- May 2017 |
- 0.6.11 |
+ 0.4.11 |
+ January 2016 |
- - Fix handling of @Unique when the same unique method
- exists in more than one mixin targetting the same class
- - Fix handling of merged lambdas so that lambdas from mixins are
- applied correctly when lambdas already exist in the target class (both
- in the original class and when applied by earlier mixins)
+ - Add support for injector grouping and config-wide require value
|
- June 2017 |
- 0.6.12 |
+ 0.4.10 |
+ December 2015 |
- - Add slice argument to @ModifyConstant
- - Add @ModifyArgs injector which can change multiple
- method call arguments with a single handler.
+ - Runtime remapping support using RemapperChain
+ - Ignore class transformers decorated with @Resource
+ - Support @reason and @author validation on overwrites
|
- June 2017 |
- 0.6.13 |
+ 0.4.8 |
+ December 2015 |
- - Add support for conforming visibility of overwrite methods to
- match target class. Fixes issues where a target class method has been
- modified by an Access Transformer to have higher visibility
+
- Annotation Processor improved to support
+
+ MixinGradle
+ - Support multiple target obfuscation environments in refmaps
|
- July 2017 |
- 0.6.14 |
+ 0.4.6 |
+ September 2015 |
- - Add support for using @Coerce on reference types in
- Callback Injectors to support derived types.
+ - Add INIT phase for handling early FML startup
+ - Add support for lambdas in mixins
+ - Add support for hot code replacement in mixins
+ - Improve Java 8 feature support
|
- July 2017 |
- 0.6.15 |
+ 0.4.4 |
+ July 2015 |
- - Add support for multiple constants in ModifyConstant
- - Add CONSTANT as general-purpose injection point
- - Add support for redirecting array length access in field
- redirectors
+ - Add constraints for overwrites
|
- July 2017 |
- 0.7 |
+ 0.4.3 |
+ May 2015 |
- - All official binaries are now signed
- - Upgrade to ASM 5.2
- - Add support for inner classes in Mixins
- - Injectors can now have multiple explicit targets
- - @At annotations can now have their own id
- - Add support for using @Overwrite on non-obfuscated
- methods as a way of verifying that an overwrite target exists
- - Improve support for synthetic bridges, detect conflicting bridge
- methods
- - Detect and warn of excessive At.Shift.BY values
- - ModifyConstant can now support multiple slices
- - Add allow to injectors to detect over-injection
+ - Add INVOKE_ASSIGN injection point
+ - Support injector callbacks without args
+ - Support coercion of covariant parameter types in callbacks
+ - Support truncating local-capturing injector handlers
+ - Runtime decompilation of exported classes using fernflower
+ - Add export filter
|
- July 2017 |
- 0.7.1 |
+ 0.4 |
+ May 2015 |
- - Fixes and improvements to the Mixin AP, fixing handling of multi-
- dimensional arrays and resolving methods in superclasses of derived
- types of obfuscated classes
- - Add runtime refmap remapping to support using deobfCompile
- dependencies with different mapping versions.
+ - Shade relocated ASM package and use throughout
|
- August 2017 |
- 0.7.2 |
+ 0.3.2 |
+ April 2015 |
- - Add profiler for inspecting mixin performance.
+ - Error handler support
|
- August 2017 |
- 0.7.3 |
+ 0.3.1 |
+ April 2015 |
- - Internal changes to provide for support modlauncher and java 9
+ - Annotation Merging
+ - Allow Overwrite methods to be aliased
|
- August 2017 |
- 0.7.4 |
+ 0.3 |
+ March 2015 |
- - Added @Dynamic annotation for decorating mixin
- elements with dynamically-injected targets.
+ - Implemented Environments
+ - Intrinsic method support
+ - Enabled local variable capture
+ - Alias support
|
- September 2017 |
- 0.7.5 |
+ 0.2 |
+ March 2015 |
- - Add support for @Coerce on redirect injectors.
+ - Added supermixin support (mixins inheriting from other mixins)
+
+ |
+
+
+ 0.1 |
+ January 2015 |
+
+
+ - Basic Mixin Support
+ - Basic Injector Support
+ - Annotation Processor
|
- October 2017 |