Expose missing members of Array to prep for dotnet/corefx#9998. #6230
Conversation
…gen.exe is helpful.
|
The build failures are legitimate. At least one of the members you're trying to add back is missing an implementation for CoreCLR, e.g. Lines 1522 to 1524 in 08786f2 That's resulting in the failure: |
|
Ah. I naively believed I only needed to build mscorlib locally. Let me see.. |
|
@stephentoub Good to go? |
|
It looks ok to me, but it'd be good for @jkotas to confirm we're ok with changing the LongLength implementation like this. To my knowledge, the longest possible array length in the runtime is less than int.MaxValue (https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Array.cs#L614), but we seem to have gone out of our way here to add this to the runtime, so it'd be good to get his perspective before it's deleted. |
|
In the apicatalog note about removing it, it says "this was added for standardization purposes but is not useful because the CLR does not support it". Good to get Jan's confirmation.. |
|
In full framework, we do have option that allows creating multi-dimensional arrays with more than You should leave the implementation as is, and just remove the |
I don't think that's the case. gcallowverylargeobjects allow arrays greater than 2GB, not arrays with length > |
|
@mikedn You are right ... I forgot that we ended up not enabling the 2GB+ elements case. Thanks! @danmosemsft My other comment about leaving the Length implementation as is, and just removing the ifdef in ecalllist.h still applies. |
|
LGTM |
|
LGTM2 as long as it's squashed when merging. Is this going to cause internal build failures due to the asmmeta file needing to be updated? |
asmmeta file needs to be updated only for changes that affect full framework. This one is not affecting full framework. |
…lr#9998. (dotnet/coreclr#6230) * Expose missing members of Array to prep for dotnet/corefxdotnet/coreclr#9998. modelgen.exe is helpful. * Remove dead code * Implement Array.LongLength. * Revert "Implement Array.LongLength." This reverts commit dotnet/coreclr@fdf7e96. * Revert "Remove dead code" This reverts commit dotnet/coreclr@432087c. * Expose Array.GetLongLength from VM Commit migrated from dotnet/coreclr@3e9d463
modelgen.exe is helpful.
@stephentoub