* Update dependencies from https://github.com/dotnet/runtime build 20220510.4
Microsoft.NETCore.App.Ref
From Version 6.0.6 -> To Version 6.0.6
* Update dependencies from https://github.com/dotnet/runtime build 20220513.1
Microsoft.NETCore.App.Ref
From Version 6.0.6 -> To Version 6.0.6
* Update dependencies from https://github.com/dotnet/runtime build 20220513.11
Microsoft.NETCore.App.Ref
From Version 6.0.6 -> To Version 6.0.6
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Update dependencies from https://github.com/dotnet/installer build 20220513.15
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.301-rtm.22261.3 -> To Version 6.0.301-rtm.22263.15
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
There will always be an API diff between:
* legacy Xamarin.*.dll assemblies and .NET Microsoft.*.dll assemblies.
* Microsoft.iOS.dll and Microsoft.MacCatalyst.dll
so don't bother with logic to detect empty diffs, just assume they will never be empty.
* Update dependencies from https://github.com/dotnet/installer build 20220510.1
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.301-rtm.22254.17 -> To Version 6.0.301-rtm.22260.1
* Update dependencies from https://github.com/dotnet/installer build 20220510.12
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.301-rtm.22254.17 -> To Version 6.0.301-rtm.22260.12
Dependency coherency updates
Microsoft.NET.ILLink.Tasks,Microsoft.AspNetCore.App.Ref
From Version 6.0.200-1.22178.2 -> To Version 6.0.200-1.22219.3 (parent: Microsoft.Dotnet.Sdk.Internal
* Update dependencies from https://github.com/dotnet/installer build 20220511.3
Microsoft.Dotnet.Sdk.Internal
From Version 6.0.301-rtm.22254.17 -> To Version 6.0.301-rtm.22261.3
Dependency coherency updates
Microsoft.NET.ILLink.Tasks,Microsoft.AspNetCore.App.Ref
From Version 6.0.200-1.22178.2 -> To Version 6.0.200-1.22219.3 (parent: Microsoft.Dotnet.Sdk.Internal
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Improve error reporting when an external tool fails to print some of stderr (up to 1024 characters).
Before:
error : clang exited with code 1
After:
error : clang exited with code 1:
error : [...]/xamarin-macios/tests/dotnet/MyInterpretedApp/iOS/obj/Debug/net6.0-ios/iossimulator-x64/linker-cache/main.x86_64.mm:58:25: error: use of undeclared identifier 'MONO_AOT_MODE_INTERP_ONLY'; did you mean 'MONO_AOT_MODE_INTERP'?
error : mono_jit_set_aot_mode (MONO_AOT_MODE_INTERP_ONLY);
error : ^~~~~~~~~~~~~~~~~~~~~~~~~
error : MONO_AOT_MODE_INTERP
error : [...]/xamarin-macios/builds/downloads/dotnet-sdk-6.0.301-rtm.22254.17-osx-x64/packs/Microsoft.iOS.Runtime.iossimulator-x64/15.4.16-ci.x64-interpreter-only/runtimes/iossimulator-x64/native/xamarin/mono-runtime.h:452:2: note: 'MONO_AOT_MODE_INTERP' declared here
error : MONO_AOT_MODE_INTERP,
error : ^
Point to a new document in the wiki explaining how to get version information
and build logs.
The wiki allows us to have longer explanations with screenshots, and it also
explains how to get a binary build log.
* A few tests seem to be failing rather consistently with network errors.
Rewrite these tests to try multiple urls before failing (we'll be assuming
that if one of the urls succeed, the other failures were network related).
* Rename the LinkAnyTest.WebClientTest to LinkAnyTest.WebClientTest_Http to
follow it's original intent, and make it test http instead of https.
* Remove unnecessary assertion from SSL_IP_5706. This is tested in plenty of other places.
- change visibility of methods in Program.cs to make it unit-testable
- infrastructure to find the Microsoft platform dlls
- tests to ensure that Xamarin and Microsoft dlls are where we expect
- a (failing) test that shows that dependency is not being removed
* Add nullability
* throw better null exceptions
* use is null and is not null AND fix spacing
* Rolfs suggestions and redo spacing
* missed a few spaces
* Found one more elusive space
Co-authored-by: TJ Lambert <tjlambert@microsoft.com>
Bots seems to break more often after this change, so let's see if this improves matters.
This is what happens with the bots:
We stopped hearing from agent [...]. Verify the agent machine is running and has a healthy network connection. Anything that terminates an agent process, starves it for CPU, or blocks its network access can cause this error. For more information, see: https://go.microsoft.com/fwlink/?linkid=846610
Before:
$ make whatever
Print: Entry, ":ProductBuildVersion", Does Not Exist
After:
$ make whatever
The required Xcode (13.3) is not installed in /Applications/Xcode_13.3.0.app/Contents/Developer
Switch to getting mono-api-[info|html] from a newly created repository we
control and where we can easily fix issues, since mono/mono isn't getting many
fixes anymore. In the past I know I've been reluctant to look at these tools,
just because of the hassle of setting things up to debug, and then the
paperwork to get the fixes in mono/mono, and then backported to the branch
where we need them.
This repo has a few other benefits:
* The tools are built using normal projects, which means they're easy to debug
in an IDE (mono/mono's code has generated project files, which used in-tree versions
of the BCL, and it got quite complex quite fast).
* One fewer dependency on the mono archive, so we're getting closed to be able
to drop it completely when we drop support for legacy Xamarin.
* #13669 is already fixed there.
* It contains a few other misc fixes.
Fixes https://github.com/xamarin/xamarin-macios/issues/13669.
- Test is currently semi-manual and uses Alert to popup results
- Covers nint/nuint/nfloat with method/prop/field/event
- Execution currently doesn't execute events yet.
- Test fails due to reference issue reported to Steve
- Currently not hooked up to any automated tests
* This is a potential mitigation for slower transition to native code when
exception marshalling is enabled (#14812).
* A minor modification was required in the linker, to make sure any modified
assemblies are saved.
Fixes https://github.com/xamarin/xamarin-macios/issues/4940.
Previously we'd compare the tip of the PR branch with the commit before merge commit into the target branch created by GitHub.
This doesn't work in the following scenario:
main gh pr
| G1 | (merge commit created by GitHub)
| / \ |
|/ \|
M2 |
| P2
| /|
| / |
| / |
| / |
|/ |
M1 |
| |
| P1
| /
| /
| /
| /
|/
We'd end up comparing P2 with M2, which is not what we want, because M2 could
have API changes that would show up as missing in P2.
It's actually even worse than that, because we could be in the following
scenario:
main gh pr
| G2 | (merge commit created by GitHub when api diff started)
| / \ |
|/ \|
M3 |
| P3
| |
| G1 | (merge commit created by GitHub when build started)
| / \ |
|/ \|
M2 |
| P2
| /|
| / |
| / |
| / |
|/ |
M1 |
| |
| P1
| /
| /
| /
| /
|/
And we still want to P2 with M2, but we'd compare P2 with M3.
We want to compare P2 with M1 instead. This is done by asking git for the
merge-base between P2 and M2.
This gets iOS integration tests passing
From what I can tell we are failing due to:
public static new PHLivePhotoViewAppearance GetAppearance (UITraitCollection traits) {
public static new PHLivePhotoViewAppearance GetAppearance<T> (UITraitCollection traits) where T: PHLivePhotoView {
having the same hash, as the generic constraints are not printed.
To solve this we take on a small (250ish) dependency on code from MonoMod.Common (MIT licensed). They have code which creates stable hash keys that include generic information.
Pick up --aot arguments in MtouchExtraArgs and pass them to the AOT compiler
when building a .NET project. This makes it possible to work around #14887 by
manually increasing the number of trampolines.
Ref: https://github.com/xamarin/xamarin-macios/issues/14887
Reworker previous to this PR was very Lazy is it's init process. In
many ways this was beneficial, but was tricky to get right and made
nullability attributes a nightmare to add. It also included multiple "null objects"
that would show errors only at the end of a conversion when writing the file.
I replaced it with a single-pass init system, where the module is read
and all required attributes are fetched before processing begins.
Two requirements to consider:
- We don't want to ModuleDefinition.ReadModule to be repeated
- We don't want to fetch all of the attributes if reworking is not
necessary, but need the ModuleDefination to know that
A static factory method `CreateReworker` only returns a reworker
if work is required. This way, there is never a half-loaded state
to consider.
Other:
- Renamed some fields to match standard coding convention
- Also update integration makefile to include new required args
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
When we compare assemblies with different names (such as Xamarin.iOS vs
Microsoft.iOS, or Microsoft.iOS vs Microsoft.MacCatalyst), we need to adjust
one the xml definitions to match the other with regards to the assembly name.