Skip to content

Latest commit

 

History

History
393 lines (388 loc) · 10.6 KB

notes.md

File metadata and controls

393 lines (388 loc) · 10.6 KB

Metadata Versions

16:
    5.3.0f4
    5.3.1f1
19:
    5.3.2f1 *
20:
    5.3.3f1 *
    5.3.4f1
21:
    5.3.5f1 *
    5.3.6f1 * (MethodInfo** Il2CppClass.vtable => VirtualInvokeData* Il2CppClass.vtable)
    5.3.7f1 * (int32_t* Il2CppMetadataRegistration.fieldOffsets => int32_t** Il2CppMetadataRegistration.fieldOffsets)
    5.3.8f2
    5.4.0f3 * (int32_t** Il2CppMetadataRegistration.fieldOffsets => int32_t* Il2CppMetadataRegistration.fieldOffsets)
    5.4.1f1 * (int32_t* Il2CppMetadataRegistration.fieldOffsets => int32_t** Il2CppMetadataRegistration.fieldOffsets)
    5.4.2f2
    5.4.3f1
    5.4.4f1 * (+ Il2CppClass.genericRecursionDepth)
    5.4.5f1
    5.4.6f3
22:
    5.5.0f3 *
    5.5.1f1 * (+ Il2CppClass.genericRecursionDepth)
    5.5.2f1
    5.5.3f1 * minor (reformatting)
    5.5.4f1
    5.5.5f1
    5.5.6f1
23:
    5.6.0f3 *
    5.6.1f1 * minor (reformatting)
    5.6.2f1
    5.6.3f1
    5.6.4f1
    5.6.5f1
    5.6.6f2
    5.6.7f1
24:
    2017.1.0f3 *
    2017.1.1f1
    2017.1.2f1
    2017.1.3f1 * (+ Il2CppImage.nameNoExt)
    2017.1.4f1
    2017.1.5f1
    2017.2.0f3 * (- Il2CppImage.nameNoExt, int32_t il2cpp_array_size_t => uintptr_t il2cpp_array_size_t)
    2017.2.1f1 * (+ Il2CppImage.nameNoExt)
    2017.2.2f1
    2017.2.3f1
    2017.2.4f1
    2017.2.5f1
    2017.3.0f3 * minor
    2017.3.1f11
    2017.4.1f1 * minor
    2017.4.2f2
    2017.4.3f1
    2017.4.4f1
    2017.4.5f1
    2017.4.6f1
    2017.4.7f1
    2017.4.8f1
    2017.4.9f1
    2017.4.10f1
    2017.4.11f1
    2017.4.12f1
    2017.4.13f1
    2017.4.14f1
    2017.4.15f1
    2017.4.16f1
    2017.4.17f1
    2017.4.18f1
    2017.4.19f1
    2017.4.20f2
    2017.4.21f1
    2017.4.22f1
    2017.4.23f1
    2017.4.24f1
    2017.4.25f1
    2017.4.26f1
    2017.4.27f1
    2017.4.28f1
    2017.4.29f1
    2017.4.30f1
    2017.4.31f1
    2017.4.32f1
    2017.4.33f1
    2017.4.34f1
    2017.4.35f1
    2017.4.36f1
    2017.4.37f1
    2017.4.38f1
    2017.4.39f1
    2017.4.40f1
    2018.1.0f2 * (typedef everything for C compat, +MethodInfo.{wrapper_type,is_marshaled_from_native} (at end), Il2CppType* Il2CppClass.{byval_arg,this_arg} => Il2CppType Il2CppClass.{byval_arg,this_arg}, +Il2CppClass.klass, ...)
    2018.1.1f1
    2018.1.2f1
    2018.1.3f1
    2018.1.4f1
    2018.1.5f1
    2018.1.6f1
    2018.1.7f1
    2018.1.8f1
    2018.1.9f2
    2018.2.0f2 * (+Il2CppClass.initializationExceptionGCHandle, +Il2CppClass.has_initialization_error)
    2018.2.1f1
    2018.2.2f1
    2018.2.3f1
    2018.2.4f1
    2018.2.5f1
    2018.2.6f1
    2018.2.7f1
    2018.2.8f1
    2018.2.9f1
    2018.2.10f1
    2018.2.11f1
    2018.2.12f1 * minor
    2018.2.13f1
    2018.2.14f1
    2018.2.15f1
    2018.2.16f1 * minor
    2018.2.17f1
    2018.2.18f1
    2018.2.19f1
    2018.2.20f1
    2018.2.21f1
24.1:
    2018.3.0f2 *
    2018.3.1f1
    2018.3.2f1
    2018.3.3f1
    2018.3.4f1
    2018.3.5f1
    2018.3.6f1
    2018.3.7f1
    2018.3.8f1 * (+Il2CppClass.naturalAlignment)
    2018.3.9f1
    2018.3.10f1
    2018.3.11f1
    2018.3.12f1
    2018.3.13f1
    2018.3.14f1
    2018.4.0f1
    2018.4.1f1
    2018.4.2f1
    2018.4.3f1
    2018.4.4f1
    2018.4.5f1
    2018.4.6f1
    2018.4.7f1
    2018.4.8f1
    2018.4.9f1
    2018.4.10f1
    2018.4.11f1
    2018.4.12f1
    2018.4.13f1
    2018.4.14f1
    2018.4.15f1
    2018.4.16f1
    2018.4.17f1
    2018.4.18f1 * (+Il2CppCodeRegistration.windowsRuntimeFactoryTable (at end))
    2018.4.19f1
    2018.4.20f1
    2018.4.21f1
    2018.4.22f1
    2018.4.23f1
    2018.4.24f1
    2018.4.25f1
    2018.4.26f1
    2018.4.27f1
    2018.4.28f1
    2018.4.29f1
24.2:
    2019.1.0f2 *
    2019.1.1f1
    2019.1.2f1
    2019.1.3f1
    2019.1.4f1
    2019.1.5f1
    2019.1.6f1
    2019.1.7f1
    2019.1.8f1
    2019.1.9f1
    2019.1.10f1
    2019.1.11f1
    2019.1.12f1
    2019.1.13f1
    2019.1.14f1
    2019.2.0f1 * minor
    2019.2.1f1
    2019.2.2f1
    2019.2.3f1
    2019.2.4f1
    2019.2.5f1
    2019.2.6f1
    2019.2.7f2
    2019.2.8f1
    2019.2.9f1
    2019.2.10f1
    2019.2.11f1
    2019.2.12f1
    2019.2.13f1
    2019.2.14f1
    2019.2.15f1
    2019.2.16f1
    2019.2.17f1
    2019.2.18f1
    2019.2.19f1
    2019.2.20f1
    2019.2.21f1
    2019.3.0f6 * (Il2CppTokenIndexPair* Il2CppCodeGenModule.reversePInvokeWrapperIndices => Il2CppTokenIndexMethodTuple* Il2CppCodeGenModule.reversePInvokeWrapperIndices)
    2019.3.1f1
    2019.3.2f1
    2019.3.3f1
    2019.3.4f1
    2019.3.5f1
    2019.3.6f1
24.3: (provisional name)
    2019.3.7f1 * (+Il2CppCodeRegistration.windowsRuntimeFactoryCount)
    2019.3.8f1
    2019.3.9f1
    2019.3.10f1
    2019.3.11f1
    2019.3.12f1
    2019.3.13f1
    2019.3.14f1
    2019.3.15f1
    2019.4.0f1
    2019.4.1f1
    2019.4.2f1
    2019.4.3f1
    2019.4.4f1
    2019.4.5f1
    2019.4.6f1
    2019.4.7f1
    2019.4.8f1
    2019.4.9f1
    2019.4.10f1 *
    2019.4.11f1
    2019.4.12f1
    2019.4.13f1
    2019.4.14f1
    2019.4.15f1 * 
    2020.1.0f1 *
    2020.1.1f1
    2020.1.2f1
    2020.1.3f1
    2020.1.4f1
    2020.1.5f1 *
    2020.1.6f1
    2020.1.7f1
    2020.1.8f1
    2020.1.9f1
    2020.1.10f1
    2020.1.11f1 *
    2020.1.12f1
    2020.1.13f1
    2020.1.14f1
    2020.2.0 *
    2021.1.0 *

Milestones

  • 5.3.1: First version to use a hash for disambiging types/methods instead of a simple counter
  • 5.3.2: Hash tweaked
  • 5.3.3: Object renamed to Il2CppObject
  • 5.3.5: MetadataCache::Register now takes three arguments (previously 2)
  • 5.3.6: Hash tweaked
  • 2017.1.0: Final parameter is now RuntimeMethod instead of MethodInfo
  • 2018.3.0: Static functions no longer carry zeroed this parameter
  • 2018.3.0: Method/type names include a SHA-1 hash instead of a 32-bit hash
  • 2019.1.0: C++ file names switched from Bulk_<assembly>_n.cpp to <assembly>n.cpp

Structure changes

  • 5.3.2 (16 => 19):
    • token field on many things
  • 5.3.3 (19 => 20):
    • Il2CppGlobalMetadataHeader.referencedAssemblies
    • Il2CppAssembly.referencedAssembly
  • 5.3.5 (20 => 21):
    • Il2CppGlobalMetadataHeader.{attributesInfo/attributeTypes}
    • Il2CppTypeDefinition.{ccwFunctionIndex/guidIndex}
    • Il2CppCodeRegistration.{ccwMarshalingFunctions/guids}
  • 5.3.6:
    • Il2CppClass.vtable: MethodInfo** => VirtualInvokeData*
  • 5.3.7:
    • Il2CppMetadataRegistration.fieldOffsets: int32_t* => int32_t**
    • Il2CppMetadataRegistration.typeDefinitionsSizes: Il2CppTypeDefinitionSizes* => Il2CppTypeDefinitionSizes**
  • 5.4.0:
    • Il2CppMetadataRegistration.fieldOffsets: int32_t** => int32_t*
    • Il2CppMetadataRegistration.typeDefinitionsSizes: Il2CppTypeDefinitionSizes** => Il2CppTypeDefinitionSizes*
  • 5.4.1:
    • Il2CppMetadataRegistration.fieldOffsets: int32_t* => int32_t**
    • Il2CppMetadataRegistration.typeDefinitionsSizes: Il2CppTypeDefinitionSizes* => Il2CppTypeDefinitionSizes**
  • 5.4.4:
    • Il2CppClass.genericRecursionDepth
  • 5.5.0 (21 => 22):
    • Il2CppGlobalMetadataHeader.unresolvedVirtualCallParameter{Types/Ranges}
    • Il2CppCodeRegistration.unresolvedVirtualCallPointers
    • move Il2CppClass.vtable to the end as an array
    • Il2CppClass.genericRecursionDepth
  • 5.5.1:
    • Il2CppClass.genericRecursionDepth
  • 5.6.0 (22 => 23):
    • Il2CppTypeDefinition.{reversePInvokeWrapperIndex,marshalingFunctionsIndex,ccwFunctionIndex,guidIndex}
    • Il2CppGlobalMetadataHeader.windowsRuntimeTypeNames
    • Il2CppClass.interopData
    • Il2CppCodeRegistration.{delegateWrappersFromManagedToNative,marshalingFunctions,ccwMarshalingFunctions,guids}
    • Il2CppCodeRegistration.interopData
  • 2017.1.0 (23 => 24):
    • Il2CppImageDefinition.exportedType
    • Il2CppGlobalMetadataHeader.exportedTypeDefinitions
    • Il2CppImage.exportedType
  • 2017.1.3:
    • Il2CppImage.nameNoExt
  • 2017.2.0:
    • Il2CppImage.nameNoExt
  • 2017.2.1:
    • Il2CppImage.nameNoExt
  • 2018.1.0:
    • MethodInfo.{wrapper_type,is_marshaled_from_native}
    • MethodInfo.declaring_type => MethodInfo.klass
    • Il2CppClass.byval_arg: Il2CppType* => Il2CppType
    • Il2CppClass.this_arg: Il2CppType* => Il2CppType
    • Il2CppClass.klass
    • AssemblyIndex Il2CppImage.assemblyIndex => Il2CppAssembly* Il2CppImage.assembly
    • Il2CppImage.dynamic
    • typedefs on everything (C compatibility?)
    • Il2CppAssemblyName => Il2CppAssemblyNameDefinition
    • Il2CppAssembly => Il2CppAssemblyDefinition
    • struct Il2CppAssembly
  • 2018.2.0:
    • Il2CppClass.initializationExceptionGCHandle
    • Il2CppClass.has_initialization_error
  • 2018.3.0 (24 => 24.1):
    • Il2CppTypeDefinition.customAttributeIndex
    • Il2CppFieldDefinition.customAttributeIndex
    • Il2CppParameterDefinition.customAttributeIndex
    • Il2CppMethodDefinition.customAttributeIndex
    • Il2CppEventDefinition.customAttributeIndex
    • Il2CppPropertyDefinition.customAttributeIndex
    • Il2CppImageDefinition.customAttribute
    • Il2CppAssemblyDefinition.customAttibuteIndex
    • Il2CppAssemblyDefinition.token
    • Il2CppCustomAttributeTypeRange.token
    • FieldInfo.customAttributeIndex
    • PropertyInfo.customAttributeIndex
    • EventInfo.customAttributeIndex
    • ParameterInfo.customAttributeIndex
    • MethodInfo.customAttributeIndex
    • Il2CppClass.customAttributeIndex
    • Il2CppClass.initialized_and_no_error
    • Il2CppImage.customAttribute
    • Il2CppAssembly.customAttibuteIndex
    • Il2CppAssembly.token
  • 2018.3.8:
    • Il2CppClass.naturalAligment
  • 2018.4.18:
    • Il2CppCodeRegistration.windowsRuntimeFactoryTable (at the end)
  • 2019.1.0 (24.1 => 24.2):
    • Il2CppTypeDefinition.{rgctxStartIndex,rgctxCount}
    • Il2CppMethodDefinition.{methodIndex,invokerIndex,reversePInvokeWrapperIndex,rgctxStartIndex,rgctxCount}
    • Il2CppGlobalMetadataHeader.rgctxEntries
    • Il2CppClass.unity_user_data
    • Il2CppImage.codeGenModule
    • Il2CppCodeGenModule
    • Il2CppCodeRegistration.windowsRuntimeFactoryTable
    • Il2CppCodeRegistration.codeGenModules
  • 2019.3.0:
    • Il2CppCodeGenModule.reversePInvokeWrapperIndices: Il2CppTokenIndexPair* => Il2CppTokenIndexMethodTuple*
  • 2019.3.7 (24.2 >= 24.3):
    • Il2CppCodeRegistration.windowsRuntimeFactoryTable (moves codeGenModules)
  • 2019.4.10:
    • Il2CppCatchPoint: tryId and parentTryId: int8_t => int32_t
  • 2019.4.15:
    • Il2CppAssemblyNameDefinition.hashValueIndex
    • Il2CppAssemblyName.hash_value
    • Il2CppAssemblyName.public_key: char * => uint8_t *
    • Il2CppCodeGenOptions.maximumRuntimeGenericDepth
  • 2020.1.0 (branches from 2019.3.7):
    • Il2CppStackFrameInfo.raw_ip
    • Il2CppMethodSlot: uint32_t => uint16_t
  • 2020.1.5:
    • Merge changes from 2019.4.10
  • 2020.1.11:
    • Merge changes from 2019.4.15
  • 2020.2.0 (24.3 >= 27):
    • See diffs
  • 2021.1.0:
    • See diffs