User Tools

Site Tools


drafts:mixin_glossary

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
drafts:mixin_glossary [2025/12/12 02:00] – Misc. modifications to definitions; anon class def fixed to be less misleading (thx skycatminepokie); Target Class def made easier to read (thx skycatminepokie) gauntreclusedrafts:mixin_glossary [2026/01/01 13:14] (current) – Add link to Java Bytecode Docs page under Bytecode segment gauntrecluse
Line 3: Line 3:
 ====== Mixin Glossary (DRAFT) ====== ====== Mixin Glossary (DRAFT) ======
  
-===== Preamble ===== +===== About This Page =====
- +
-This page aims to address terms, acronyms, abbreviations, expressions, etc. and define them within as broad a scope as possible without instructing how to use the associated tools. It is complementary to actual documentation on how to use the tools and subsystem of Mixin and should only be used to get a quick, general idea of what a term means in the context of Mixin usage and learning. This glossary should also be taken with a grain of salt, as much as feedback will try to be used to make the definitions as accurate as possible, it can be as unreliable as any Wiki page.\\ +
-It is advised to read the [[[[tutorial:mixin_introduction|Introduction to Mixins (WIP)]] page. +
- +
-==== Contributing ==== +
- +
-Seeing as this page is likely to change a lot with time as terms, both official and common usage ones, may vary over time and need many amendments as both Mixin and associated libraries evolve and get used in different contexts; it feels wise to add a section on best practices for contributing to this page in the long run. +
- +
-If you wish to contribute it is appreciated to use references to external sources when relevant, preferably the [[https://github.com/spongepowered/mixin/wiki|official Mixin Wiki]], the [[https://jenkins.liteloader.com/job/Mixin/javadoc/|Mixin javadoc]] and the [[https://github.com/LlamaLad7/MixinExtras/wiki|official MixinExtras Wiki]]. If not, base your definitions on feedback from experienced devs and be willing to be scrutinized.\\ +
-Due to the amount of potential areas that could be edited, it would also be appreciated to always specify which definitions you're adding or editing in your edit summary messages. If necessary, split your edit into different smaller edits to be able to more clearly indicate which definitions were modified. +
- +
-=== Formatting and TODOs === +
- +
-When you are doubtful on a term's definition, add a %%FIXME%% above the relevant text with text in //italics// until a more confident definition can be found. Definitions should generally take the form of itemized lists with the term above the list's first items. Synonyms should be grouped together. Footnotes references describing the same resource and so on should use the **exact** same text so that they both redirect to the same footnote. +
- +
-TODO notes should always describe what should be added there and should ideally be in //italics// +
- +
-Example definition: +
- +
-== Words! == +
-  - First def +
-    - Sub-def +
-    * Note on First def +
-  - Second def +
-    * Note on Second def +
- +
-=== Referencing other definitions === +
- +
-You can reference another definition on the page by referencing the definition's header: ''[[#header_name|text displayed for the link]]'', for example:\\ +
-[[#bytecode|The bytecode segment]] - ''%%[[#bytecode|The bytecode segment]]%%''\\ +
-[[#asm|The ASM definition]] - ''%%[[#asm|The ASM definition]]%%''+
  
 +This page aims to address terms, acronyms, abbreviations, expressions, etc. and define them within as broad a scope as possible without instructing how to use the associated tools. It is complementary to actual documentation on how to use the tools and subsystem of Mixin and should only be used to get a quick, general idea of what a term means in the context of Mixin usage and learning. This glossary should also be taken with a grain of salt, as much as it will be attempted to use feedback to make the definitions as accurate as possible, it can be as unreliable as any Wiki page.\\
 +It is advised to read the [[tutorial:mixin_introduction|Introduction to Mixins]] page for an introduction to the concept.
  
 ---- ----
Line 112: Line 83:
  
 ==== Bytecode ===== ==== Bytecode =====
 +
 +For a more thorough look at JVM Bytecode, see [[https://docs.fabricmc.net/develop/mixins/bytecode|the Docs Page]].
  
 == As opposed to Source code == == As opposed to Source code ==
Line 247: Line 220:
   - A discriminator which, between all valid targets once other filters and discriminators are applied, uses a zero-indexed value to select one of the remaining targets for the injector to target.   - A discriminator which, between all valid targets once other filters and discriminators are applied, uses a zero-indexed value to select one of the remaining targets for the injector to target.
     * Ordinals are generally a more [[#brittle|brittle]] and less recommended discriminator for targeting using injectors. Using [[#slice,_slicing|slices]] or [[#expressions|expressions]] is recommended instead in cases where an ordinal would be only used as a disambiguation tool between different targets for an injection point.     * Ordinals are generally a more [[#brittle|brittle]] and less recommended discriminator for targeting using injectors. Using [[#slice,_slicing|slices]] or [[#expressions|expressions]] is recommended instead in cases where an ordinal would be only used as a disambiguation tool between different targets for an injection point.
 +
 +
 +
 +===== Contributing =====
 +
 +Seeing as this page is likely to change a lot with time as terms, both official and common usage ones, may vary over time and need many amendments as both Mixin and associated libraries evolve and get used in different contexts; it feels wise to add a section on best practices for contributing to this page in the long run.
 +
 +If you wish to contribute it is appreciated to use references to external sources when relevant, preferably the [[https://github.com/spongepowered/mixin/wiki|official Mixin Wiki]], the [[https://jenkins.liteloader.com/job/Mixin/javadoc/|Mixin javadoc]] and the [[https://github.com/LlamaLad7/MixinExtras/wiki|official MixinExtras Wiki]]. If not, base your definitions on feedback from experienced devs and be willing to be scrutinized.\\
 +Due to the amount of potential areas that could be edited, it would also be appreciated to always specify which definitions you're adding or editing in your edit summary messages. If necessary, split your edit into different smaller edits to be able to more clearly indicate which definitions were modified.
 +
 +=== Formatting and TODOs ===
 +
 +When you are doubtful on a term's definition, add a %%FIXME%% above the relevant text with text in //italics// until a more confident definition can be found. Definitions should generally take the form of itemized lists with the term above the list's first items. Synonyms should be grouped together. Footnotes references describing the same resource and so on should use the **exact** same text so that they both redirect to the same footnote.
 +
 +TODO notes should always describe what should be added there and should ideally be in //italics//
 +
 +Example definition:
 +
 +== Words! ==
 +  - First def
 +    - Sub-def
 +    * Note on First def
 +  - Second def
 +    * Note on Second def
 +
 +=== Referencing other definitions ===
 +
 +You can reference another definition on the page by referencing the definition's header: ''[[#header_name|text displayed for the link]]'', for example:\\
 +[[#bytecode|The bytecode segment]] - ''%%[[#bytecode|The bytecode segment]]%%''\\
 +[[#asm|The ASM definition]] - ''%%[[#asm|The ASM definition]]%%''
drafts/mixin_glossary.1765504843.txt.gz · Last modified: 2025/12/12 02:00 by gauntrecluse