{"id":14979935,"url":"https://github.com/spongepowered/mixin","last_synced_at":"2025-04-11T19:14:23.094Z","repository":{"id":24133098,"uuid":"27522093","full_name":"SpongePowered/Mixin","owner":"SpongePowered","description":"Mixin is a trait/mixin and bytecode weaving framework for Java using ASM","archived":false,"fork":false,"pushed_at":"2024-08-05T04:16:27.000Z","size":7718,"stargazers_count":1546,"open_issues_count":102,"forks_count":196,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-04-11T19:14:15.101Z","etag":null,"topics":["annotations","asm","gradle","java","minecraft","mixin-framework","mixins","processor","trait"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SpongePowered.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"Sponge"}},"created_at":"2014-12-04T03:57:51.000Z","updated_at":"2025-04-10T18:27:10.000Z","dependencies_parsed_at":"2023-12-19T04:22:55.812Z","dependency_job_id":"1cc77a68-da3f-4de3-a4eb-8af8386d04f3","html_url":"https://github.com/SpongePowered/Mixin","commit_stats":{"total_commits":776,"total_committers":24,"mean_commits":"32.333333333333336","dds":0.0760309278350515,"last_synced_commit":"4053421aa10aaac6127d969028a29c94fe3054f6"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FMixin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FMixin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FMixin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpongePowered%2FMixin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpongePowered","download_url":"https://codeload.github.com/SpongePowered/Mixin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248465345,"owners_count":21108244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotations","asm","gradle","java","minecraft","mixin-framework","mixins","processor","trait"],"created_at":"2024-09-24T14:00:57.465Z","updated_at":"2025-04-11T19:14:23.053Z","avatar_url":"https://github.com/SpongePowered.png","language":"Java","readme":"\n### [![Build Status](http://ci.liteloader.com/view/Other/job/Mixin/badge/icon)](http://ci.liteloader.com/view/Other/job/Mixin/lastSuccessfulBuild/)\n\n![Mixin Logo](docs/javadoc/resources/logo.png?raw=true)\n\n**Mixin** is a trait/mixin framework for Java using [ASM](https://asm.ow2.io/)\nand hooking into the runtime classloading process via a set of pluggable\nbuilt-in or user-provided services. Built-in services currently support Mojang's\n[LegacyLauncher](https://github.com/Mojang/LegacyLauncher) system, though this\nis deprecated in favour of [ModLauncher](https://github.com/cpw/modlauncher) by\ncpw, which has greater extensibility and has support for Java 8 and later.\n\n### Documentation\n\nThe main documentation for **Mixin** can be found in the\n[Wiki](https://github.com/SpongePowered/Mixin/wiki).\n\nAdditional documentation for individual features and annotations can be found in\nthe extensive [Javadoc](http://jenkins.liteloader.com/job/Mixin/javadoc/). For\nadditional help use the channel [`#mixin` on the Sponge Discord Server](https://discord.gg/tBcwxz2).\n\n### Binaries\n\nMixin binaries are available via [Jenkins](https://jenkins.liteloader.com/view/Other/job/Mixin/)\nand are published to the following maven repositories:\n\n* https://repo.spongepowered.org/repository/maven-public/ - SNAPHOTs and RELEASE\n  builds\n* https://files.minecraftforge.net/maven/ - RELEASE builds only\n\n### Tooling\n\nFor handling obfuscation tasks, Mixin provides an [Annotation Processor](https://github.com/SpongePowered/Mixin/wiki/Using-the-Mixin-Annotation-Processor)\nwhich works at compile time to generate obfuscation mappings for your toolchain\nto apply. If using Gradle 5 or later, annotation processors are no longer\nautomatically loaded from `compile` configurations and must be specified\nexplicitly via `annotationProcessor` configurations. For this purpose, Mixin\nprovides \"fat jar\" artefacts containing all required dependencies via the\n`:processor` classifier. For example if your build uses the dependency\n`org.spongepowered:mixin:1.2.3` then your annotationProcessor configuration\nshould specify dependency `org.spongepowered:mixin:1.2.3:processor`.\n\nIf you are using Mixin in a [Minecraft Forge](https://minecraftforge.net/)\nproject then the [MixinGradle](https://github.com/SpongePowered/MixinGradle)\nplugin can be used to simplify the configuration of the Mixin Annotation\nProcessor. It provides a simple syntax for configuring the Mixin AP for your\nproject, see the [MixinGradle README](https://github.com/SpongePowered/MixinGradle/blob/master/README.md)\nfor how to configure MixinGradle.  \n\n### Integration with Eclipse\n\nWhen developing using **Mixin**, you can use the **Mixin Annotation Processor**\nwithin Eclipse to provide context-sensitive errors and warnings to help you more\neasily troubleshoot your mixins. To do so:\n\n1. Run the `gradle build` command to generate the mixin jar\n2. Open the properties of your eclipse project and navigate to `Java Compiler`\n  -\u003e `Annotation Processing` -\u003e `Factory Path`  \n3. Check the `Enable project specific settings` checkbox\n4. Click the `Add External JARs` button and select the generated mixin jar with\n the suffix **-processor** (hint: it should be in `Mixin/build/libs`)\n5. Navigate up one level to `Java Compiler` -\u003e `Annotation Processing`\n6. Check the `Enable project specific settings` checkbox\n7. Check the `Enable annotation processing` checkbox\n8. Click the `New...` button next to the `Processor options` box\n * Set `Key` to **reobfSrgFile**\n * Set `Value` to the fully-qualified path to the `mcp-srg.srg` file (the\n   location of the mapping file varies by platform, if you are unsure where to\n   find it please follow the discord link below). \n9. Click `OK` to apply the changes\n\n### Integration with IntelliJ IDEA\n\nEnhanced functionality for working with **Mixin** in IntelliJ IDEA is available\nvia the [Minecraft Development for IntelliJ IDEA](https://plugins.jetbrains.com/idea/plugin/8327)\nplugin developed by [DemonWav](https://github.com/demonwav).  \n\n### Version History\n\n[Specifying the `minVersion` property in your configurations](https://github.com/SpongePowered/Mixin/wiki/PSA-Forward-Compatibility-Features-in-Mixin)\nis extrememly important. The following version history can be used to determine\nwhen features were introduced (and sometimes when major bugs are squashed) in\norder to help you determine which `minVersion` you should specify.\n\n\u003ctable width=\"100%\"\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth width=\"15%\"\u003eVersion\u003c/th\u003e\n      \u003cth width=\"20%\"\u003eDate\u003c/th\u003e\n      \u003cth width=\"65%\"\u003eFeatures / Changes\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.8.3\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2021\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdded dynamic target selector support and \u003ctt\u003e\u0026#64;Desc\u003c/tt\u003e\n            target selector\u003c/li\u003e\n          \u003cli\u003eAdded pattern target selector\u003c/li\u003e\n          \u003cli\u003eAdded more expressive quantifier support to explicit target\n            selectors\u003c/li\u003e\n          \u003cli\u003eFacelift and overall improvements to javadoc\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e\u003cs\u003e0.8.1\u003c/s\u003e (0.8.2)\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eSeptember 2020\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cb\u003eHotfix for supporting ModLauncher 7.0\u003c/b\u003e\u003c/li\u003e\n          \u003cli\u003eFix critical issue with resolving obfuscated members in inherited\n            interfaces\u003c/li\u003e\n          \u003cli\u003e\u003cb\u003eUpdated to ASM 7.2\u003c/b\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.8\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2020\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cb\u003eUpdated to ASM 6.2\u003c/b\u003e\u003c/li\u003e\n          \u003cli\u003e\u003cb\u003eSupport for \u003ca href=\"https://github.com/cpw/modlauncher/\"\u003e\n            ModLauncher\u003c/a\u003e\u003c/b\u003e\u003c/li\u003e\n          \u003cli\u003eAdded recognition for Java 9 and 10\u003c/li\u003e\n          \u003cli\u003eSupport for \u003cem\u003eForgeGradle 3+\u003c/em\u003e tsrg obfuscation tables\n          \u003cli\u003eConfigs can now inherit from other configs\u003c/li\u003e\n          \u003cli\u003e\u003ctt\u003e\u0026#064;Invoke\u003c/tt\u003e can now be used to expose constructors\u003c/li\u003e\n          \u003cli\u003eDramatically improved context reporting of unexpected applicator\n            and preprocessor exceptions, making it easier to diagnose when an\n            agent chokes on a specific opcode\u003c/li\u003e\n          \u003cli\u003eBug fixes for\n            \u003cul\u003e\n              \u003cli\u003eCalling members of accessor mixins from inside mixin code\u003c/li\u003e\n              \u003cli\u003eIncorrect handling of spaces in explicit target declarations\u003c/li\u003e\n              \u003cli\u003eUnexpected behaviour when attempting to redirect a ctor\u003c/li\u003e\n              \u003cli\u003eProperly detect incompatible accessor overlap and ignore valid\n                ones (don't warn)\u003c/li\u003e\n              \u003cli\u003eInterface static accessors now correctly conform target if\n                interface is classloaded before target class\u003c/li\u003e\n              \u003cli\u003eStaticness mismatch for accessor correctly detected and\n                reported instead of causing crash\u003c/li\u003e\n              \u003cli\u003eFixed generator and injector errors relating to double-word\n                operands on the stack needing DUP2\u003c/li\u003e\n              \u003cli\u003eFixed issue in LVT generator folded in from FabricMC\u003c/li\u003e\n              \u003cli\u003eFail-fast when a \u003ctt\u003efinal\u003c/tt\u003e method is accidentally hidden\n                by a mixin\u003c/li\u003e  \n              \u003cli\u003eFix the appearance of stray \u003ctt\u003eCallbackInfo\u003c/tt\u003e instances in\n                local capture injector LVTs\u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n          \u003cli\u003eApache Commons-IO Dependency removed\u003c/li\u003e\n          \u003cli\u003eRenamed shaded ASM removed\u003c/li\u003e\n          \u003cli\u003eImproved resolution of local variables for local variable capture\n            injections\u003c/li\u003e\n          \u003cli\u003e\u003ctt\u003e\u0026#064;Coerce\u003c/tt\u003e on callback injectors and redirects can now\n            resolve super interfaces including mixed-in interfaces\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.11\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJuly 2018\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eFixes for 3 minor bugs: handling of maxShiftBy fixed, improved\n            BeforeInvoke permissive search, disable generic signature merging\n            unless decompiler is active.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.10\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2018\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eLog an error when a mixin class is subject to classloader restrictions\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.9\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eApril 2018\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAllow certain injectors to target mixin methods.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.8\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eApril 2018\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eBug fixes for member declaration validation, non-wild ctor redirects,\n            and internal errors in \u003ctt\u003eArgs\u003c/tt\u003e subclass generator\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.7\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMarch 2018\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eFixes for handling of log message triggers for INIT phase and error\n            when running with unexpected logger configurations\u003c/li\u003e\n          \u003cli\u003eAdd warnings for invalid slice points and narrowing conversion in\n            ModifyConstant handlers\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.6\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eNovember 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eFix inheritance for string system properties\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.5\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eOctober 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for \u003ctt\u003e\u0026#064;Coerce\u003c/tt\u003e on redirect injectors.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.4\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eSeptember 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdded \u003ctt\u003e\u0026#064;Dynamic\u003c/tt\u003e annotation for decorating mixin\n          elements with dynamically-injected targets.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.3\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eAugust 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eInternal changes to provide for support modlauncher and java 9\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.2\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eAugust 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd profiler for inspecting mixin performance.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7.1\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eAugust 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eFixes and improvements to the Mixin AP, fixing handling of multi-\n          dimensional arrays and resolving methods in superclasses of derived\n          types of obfuscated classes\u003c/li\u003e\n          \u003cli\u003eAdd runtime refmap remapping to support using deobfCompile\n          dependencies with different mapping versions.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.7\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJuly 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAll official binaries are now signed\u003c/li\u003e\n          \u003cli\u003eUpgrade to ASM 5.2\u003c/li\u003e\n          \u003cli\u003eAdd support for inner classes in Mixins\u003c/li\u003e\n          \u003cli\u003eInjectors can now have multiple explicit targets\u003c/li\u003e\n          \u003cli\u003e\u003ctt\u003e\u0026#064;At\u003c/tt\u003e annotations can now have their own \u003ctt\u003eid\u003c/tt\u003e\u003c/li\u003e\n          \u003cli\u003eAdd support for using \u003ctt\u003e\u0026#064;Overwrite\u003c/tt\u003e on non-obfuscated\n          methods as a way of verifying that an overwrite target exists\u003c/li\u003e\n          \u003cli\u003eImprove support for synthetic bridges, detect conflicting bridge\n          methods\u003c/li\u003e\n          \u003cli\u003eDetect and warn of excessive At.Shift.BY values\u003c/li\u003e\n          \u003cli\u003e\u003ctt\u003eModifyConstant\u003c/tt\u003e can now support multiple slices\u003c/li\u003e\n          \u003cli\u003eAdd \u003ctt\u003eallow\u003c/tt\u003e to injectors to detect over-injection\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.15\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJuly 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for multiple constants in \u003ctt\u003eModifyConstant\u003c/tt\u003e\u003c/li\u003e\n          \u003cli\u003eAdd \u003ctt\u003eCONSTANT\u003c/tt\u003e as general-purpose injection point\u003c/li\u003e\n          \u003cli\u003eAdd support for redirecting array length access in field\n          redirectors\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.14\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJuly 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for using \u003ctt\u003e\u0026#064;Coerce\u003c/tt\u003e on reference types in\n          Callback Injectors to support derived types.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.13\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJuly 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for conforming visibility of overwrite methods to\n          match target class. Fixes issues where a target class method has been\n          modified by an \u003cem\u003eAccess Transformer\u003c/em\u003e to have higher visibility\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.12\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd \u003ctt\u003eslice\u003c/tt\u003e argument to \u003ctt\u003e\u0026#064;ModifyConstant\u003c/tt\u003e\u003c/li\u003e\n          \u003cli\u003eAdd \u003ctt\u003e\u0026#064;ModifyArgs\u003c/tt\u003e injector which can change multiple\n          method call arguments with a single handler.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.11\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eFix handling of \u003ctt\u003e\u0026#064;Unique\u003c/tt\u003e when the same unique method\n          exists in more than one mixin targetting the same class\u003c/li\u003e\n          \u003cli\u003eFix handling of merged lambdas so that lambdas from mixins are\n          applied correctly when lambdas already exist in the target class (both\n          in the original class and when applied by earlier mixins)\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.10\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMay 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e(0.6.9) Minor fix to remove dependence on deprecated helper\u003c/li\u003e\n          \u003cli\u003eRespect \u003ctt\u003eremap\u003c/tt\u003e on Mixin for contained \u003ctt\u003e\u0026#064;At\u003c/tt\u003e\u003c/li\u003e\n          \u003cli\u003eRequire redirectors which occur before call to superctor to be static\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.8\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAllow \u0026#064;ModifyConstant to hook implicit zero in comparisons\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.7\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for \u0026#064;Redirect on array access\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.6\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAllow static methods in accessor mixins in Java 8 and above\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.5\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for injector slices\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.4\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2017\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAllow descriptors on NEW injection points\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.3\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eDecember 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eSourceDebugExtension support\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.2\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eDecember 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for \u0026#064;Pseudo (virtual target) mixins\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6.1\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eNovember 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eProcess soft-implements annotations in the AP\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.6\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eOctober 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003e\u003cem\u003eAccessor Mixin\u003c/em\u003e support\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.17\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eOctober 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAllow \u0026#064;Redirect injectors to target \u003ctt\u003eNEW\u003c/tt\u003e opcodes for\n          constructor redirection\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.16\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eOctober 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAnnotation Processor improvements. Support shadows and overrides\n          in multi-target mixins\u003c/li\u003e\n          \u003cli\u003eSupport pluggable obfuscation environments in AP\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.14\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eSeptember 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd async decompilation support\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.13\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eSeptember 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd alternative strategy for injecting field initialisers\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.10\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eSupport \u0026#064;Unique on fields\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.9\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eHard fail if a required mixin target was already transformed\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.8\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eSupport constraints on injectors\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.7\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJune 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd \u0026#064;Unique annotation\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.6\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMay 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eEnvironment changes, support environment via agents\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.5\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eApril 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd \u0026#064;ModifyConstant injector\u003c/li\u003e\n          \u003cli\u003eAdd \u0026#064;Debug annotation\u003c/li\u003e\n          \u003cli\u003eAllow static \u0026#064;ModifyArg handlers in instance methods\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.4\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eApril 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eError handlers also receive mixin prepare errors\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.3\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eConform injectors\u003c/li\u003e\n          \u003cli\u003eEnable hotswapper automatically if agent is active\u003c/li\u003e\n          \u003cli\u003eFix multiple issues with generics in Annotation Processors\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.2\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eSupport ID on injectors\u003c/li\u003e\n          \u003cli\u003eSupport priority for injectors\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.5.1\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eOverhaul injectors, injectors from all mixins now scan before any\n          injectors are actually processed. Makes injectors more deterministic.\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.19\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for \u0026#064;Redirect on fields as well as methods\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.18\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eFebruary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd \u0026#064;ModifyLocal injector\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.17\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eSupport ExtraSRGs in Annotation Processor\u003c/li\u003e\n          \u003cli\u003eInclude constructors in reference map\u003c/li\u003e\n          \u003cli\u003eAdd \u0026#064;Mutable annotation to suppress \u0026#064;Final warnings\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.15\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eInclude soft targets in refmap\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.14\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for interface mixins\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.13\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd \u0026#064;Final annotation\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.11\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2016\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd support for injector grouping and config-wide require value\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.10\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eDecember 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eRuntime remapping support using RemapperChain\u003c/li\u003e\n          \u003cli\u003eIgnore class transformers decorated with \u0026#064;Resource\u003c/li\u003e\n          \u003cli\u003eSupport \u0026#064;reason and \u0026#064;author validation on overwrites\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.8\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eDecember 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAnnotation Processor improved to support\n            \u003ca href=\"https://github.com/SpongePowered/MixinGradle\"\u003e\n            MixinGradle\u003c/a\u003e\n          \u003c/li\u003e\n          \u003cli\u003eSupport multiple target obfuscation environments in refmaps\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.6\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eSeptember 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd INIT phase for handling early FML startup\u003c/li\u003e\n          \u003cli\u003eAdd support for lambdas in mixins\u003c/li\u003e\n          \u003cli\u003eAdd support for hot code replacement in mixins\u003c/li\u003e\n          \u003cli\u003eImprove Java 8 feature support\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.4\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJuly 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd constraints for overwrites\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4.3\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMay 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdd \u003ctt\u003eINVOKE_ASSIGN\u003c/tt\u003e injection point\u003c/li\u003e\n          \u003cli\u003eSupport injector callbacks without args\u003c/li\u003e\n          \u003cli\u003eSupport coercion of covariant parameter types in callbacks\u003c/li\u003e\n          \u003cli\u003eSupport truncating local-capturing injector handlers\u003c/li\u003e\n          \u003cli\u003eRuntime decompilation of exported classes using fernflower\u003c/li\u003e\n          \u003cli\u003eAdd export filter\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.4\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMay 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eShade relocated ASM package and use throughout\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.3.2\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eApril 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eError handler support\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.3.1\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eApril 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAnnotation Merging\u003c/li\u003e\n          \u003cli\u003eAllow Overwrite methods to be aliased\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.3\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMarch 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eImplemented Environments\u003c/li\u003e\n          \u003cli\u003eIntrinsic method support\u003c/li\u003e\n          \u003cli\u003eEnabled local variable capture\u003c/li\u003e\n          \u003cli\u003eAlias support\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.2\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eMarch 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eAdded supermixin support (mixins inheriting from other mixins)\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd valign=\"top\"\u003e\u003cb\u003e0.1\u003c/b\u003e\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003eJanuary 2015\u003c/td\u003e\n      \u003ctd valign=\"top\"\u003e\n        \u003cul\u003e\n          \u003cli\u003eBasic Mixin Support\u003c/li\u003e\n          \u003cli\u003eBasic Injector Support\u003c/li\u003e\n          \u003cli\u003eAnnotation Processor\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n","funding_links":["https://patreon.com/Sponge"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspongepowered%2Fmixin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspongepowered%2Fmixin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspongepowered%2Fmixin/lists"}