Skip to content
This repository has been archived by the owner on Mar 8, 2021. It is now read-only.

Commit

Permalink
Update BCL assemblies for mono/mono:2018-06@70fe915d breakage (#19)
Browse files Browse the repository at this point in the history
Context: dotnet/android#1836
Context: https://jenkins.mono-project.com/job/xamarin-android-pr-builder/4175/API_20Compatibility_20Checks/

The mono/mono:2018-06@70fe915d bump introduced "breaking" changes to
`System.Numerics.Vectors.dll` and `mscorlib.dll`.

`System.Numerics.Vectors.dll` "lost" the `System.Numerics.Vector` and
`System.Numerics.Vector<T>` types, because those were moved to
`mscorlib.dll`, with type forwarders in `System.Numerics.Vectors.dll`.
Unfortunately, `mono-api-html` doesn't understand type forwarders,
and thus reported their movement as breakage.

Update `reference/System.Numerics.Vectors.xml` accordingly.

The `mscorlib.dll` changes are a bit more complicated: the
`System.Buffers.IRetainable` type was removed, as were members
associated with that interface:

	<h3>Removed Type <span class='breaking' data-is-breaking>System.Buffers.IRetainable</span></h3>

	<!-- start type MemoryHandle --> <div>
	<h3>Type Changed: System.Buffers.MemoryHandle</h3>
	<p>Removed constructor:</p>
	<pre>
	  <span class='removed removed-constructor breaking' data-is-breaking>public MemoryHandle (IRetainable, void*, System.Runtime.InteropServices.GCHandle);</span>
	</pre>
	<p>Removed property:</p>
	<pre>
	  <span class='removed removed-property breaking' data-is-breaking>public bool HasPointer { get; }</span>
	</pre>

The `IRetainable` type was [accidentally shipped][0], and shouldn't
have been provided in the first place.

> [IRetainable] was design change before RTW unfortunately at that
> point we were not using stable branch of CoreFX so we accidentally
> shipped that API because we missed it when hiding the unstable
> Span APIs

Additionally, `System.Threading.Tasks.ValueTask<T>.CreateAsyncMethodBuilder()`
was removed:

	<h3>Type Changed: System.Threading.Tasks.ValueTask`1</h3>
	<p>Removed method:</p>
	<pre>
	  <span class='removed removed-method breaking' data-is-breaking>public static System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder&lt;TResult&gt; CreateAsyncMethodBuilder ();</span>
	</pre>

`ValueTask<T>.CreateAsyncMethodBuilder()` was removed because
[no code was found to be using it][1], and thus is deemed to be an 
acceptable ABI break.

Update `reference/mscorlib.xml` accordingly, and also include all the
new APIs that have been added since c550d1b.

[0]: dotnet/android#1836 (comment)
[1]: https://github.com/dotnet/corefx/issues/22171#issuecomment-327254875
  • Loading branch information
luhenry authored and jonpryor committed Oct 8, 2018
1 parent c550d1b commit 7ccb480
Show file tree
Hide file tree
Showing 2 changed files with 16,260 additions and 12,347 deletions.
Loading

0 comments on commit 7ccb480

Please sign in to comment.