-
Notifications
You must be signed in to change notification settings - Fork 515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[tests] make Symbols.FunctionNames aware of interpreter #4973
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. @rolfbjarne I think you wrote that test - please check
Also maybe we need to expose, somewhere (but not in the tests) if the interpreter is being executed (might be tricky if used only a an subset of assemblies)
This the commit in the private repro that introduced it back then: https://github.com/xamarin/maccore/commit/773cc73f0ee52b3f2561a50006fea0109cb1941e |
Build success |
This test verifies that managed methods show up in native stack traces. IIRC at some point we had a bug where we only got memory addresses. I assume this won't work with the interpreter (which might be one of the biggest downsides: how will crash reporting work with the interpreter?), in which case the test should probably be disabled when the interpreter is enabled. |
@rolfbjarne mono is supposed to print a managed stack trace in its crash handler. Alas this isn't part of the native crash handler, but the managed stack trace should be printed by mono right before it is taken over by the native crash handler if I understand correctly. That said, maybe it's still a good idea to check for the interpreter function names, as it verifies that the runtime binary isn't stripped. Otherwise, what would be a good way to disable the test for the interpreter (keep in mind that we also have to handle mixed mode at some point)? |
@lewurm printing the managed stack trace to the console is useless for released apps, because app developers don't have access to their customers' consoles. The way the Apple ecosystem works is that app developers get the crash report as generated by iOS, and then that crash report is symbolicated using the dSYM created at build time. I guess this is one (probably the) major downside of the interpreter: it'll be much more difficult to diagnose crashes that only occur on customer devices, because the crash report won't contain much information for managed code. OTOH I don't see a way to fix this, so it's probably something we'll just have to document. Regarding this specific test, I'd just check if the interpreter is enabled at all, and in that case disable the test (is it possible to somehow determine at runtime if the interpreter is enabled? By the presence of a file in the app, or a symbol in memory, for instance?) |
@rolfbjarne I didn't know about crash reports not containing console output. This is unfortunate and indeed a major drawback 🙁 There is no API in the BCL that can be used to detect if the interpreter is enabled from managed code. Given that, I think the proposed change in this PR would be okay to detect the interpreters presence. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can (inside the platform assemblies) likely look for a mono symbol only included then the interpreter is present. However that won't tell us if we're interpreting or not (mixed mode) so that might not be very useful.
Expect for tests - but then that method should be inside the tests (not the platform assemblies). In any case the current test is fine. If it becomes more common (to have interpreter only results) then we can revisit this.
Thanks! 😄
commit 08c1eb4 Author: Martin Baulig <[email protected]> Date: Tue Oct 30 02:45:50 2018 -0400 X commit b4185d8 Author: Martin Baulig <[email protected]> Date: Tue Oct 30 02:36:47 2018 -0400 X commit 3416bdb Author: Martin Baulig <[email protected]> Date: Mon Oct 29 22:55:20 2018 -0400 X commit 0b412c7 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 20:48:09 2018 -0400 X commit 986946d Author: Martin Baulig <[email protected]> Date: Mon Oct 29 12:51:28 2018 -0400 X commit 4cf6eae Author: Martin Baulig <[email protected]> Date: Mon Oct 29 10:53:57 2018 -0400 X commit 9446c39 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 10:23:17 2018 -0400 X commit 9f28ef6 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 08:34:19 2018 -0400 X commit 21a0005 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 08:13:09 2018 -0400 X commit 947524d Author: Martin Baulig <[email protected]> Date: Sun Oct 28 18:02:44 2018 -0400 X commit cfbcf6c Author: Martin Baulig <[email protected]> Date: Fri Oct 26 05:42:20 2018 -0400 X commit ae8fcaa Author: Martin Baulig <[email protected]> Date: Fri Oct 26 02:27:06 2018 -0400 X commit 41dac5b Author: Chris Hamons <[email protected]> Date: Thu Oct 25 11:56:23 2018 -0500 [macos] Add NSScrollView.AddFloatingSubview (#5040) - #5039 commit de197e3 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:47:05 2018 +0200 [introspection] Fix a few issues found on iPad Air 2 with iOS 12. (#5034) * [introspection] MPSCnnBinaryKernel's kernelHeight/kernelWidth are missing on iOS too. * [introspection] CoreNFC is not even available on all devices. commit 374898a Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:17:03 2018 +0200 [tests] Only build exactly what's neded for running XM tests on older bots. (#5038) Also build what we can in parallel (and manually building shared dependencies first). commit 82e0c73 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 17:15:00 2018 +0200 Bump minimum mono one that has 'mono_dangerous_add_raw_internal_call'. commit 93e7286 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 15:23:36 2018 +0200 [mmptest] Less hardcoding. commit 7449e51 Author: Aleksey Kliger (λgeek) <[email protected]> Date: Fri Oct 26 00:46:28 2018 -0500 [2018-08][watchos] Use mono_dangerous_add_raw_internal_call for watchOS icalls (#5030) * Add optional mono_dangerous_add_raw_internal_call to exports.t4 * Use mono_dangerous_add_raw_internal_call on watchOS for icall registration Internal calls added with mono_dangerous_add_raw_internal_call run in GC Unsafe mode under cooperative and hybrid suspend, whereas internal calls added with mono_add_internal_call run in GC Safe mode since mono/mono@5756ba4 in order for hybrid suspend to be a transparent replacement for preemptive suspend (the old default). The icalls in GC Unsafe mode have a responsibility not to block indefinitely without manually performing a thread state transition to GC Safe mode, and in return they avoid a thread state transition when the icall is invoked from a managed method. commit 0b27eef Author: Marek Safar <[email protected]> Date: Thu Oct 25 20:14:41 2018 +0200 Bump mono commit 36209e5 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 12:31:26 2018 +0200 Remove 10.7 & 10.8 availability attributes, since they're redundant now. commit 2755245 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:04:56 2018 +0200 [tests] More min macOS version setting to 10.9. commit 3f5aceb Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:50:21 2018 +0200 Bump guiunit to get updated min macOS version. Commit list for mono/guiunit: * mono/guiunit@9f67042 Bump min macOS version to 10.9. * mono/guiunit@0c3159a [Harness] Fix exit code of 0 being reported in case of exceptions in the harness * mono/guiunit@9b7497c Merge pull request #15 from mono/fix-more-warnings * mono/guiunit@a264470 Fix more warnings * mono/guiunit@dd094e7 Merge pull request #14 from mono/fix-warnings * mono/guiunit@b3afede Fix build warnings Diff: mono/guiunit@1306b0d...9f67042 commit 04b7c94 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:13:56 2018 +0200 Bump min mono version for XM system apps. Using a system mono < 5.18 results in a TypeLoadException: Could not resolve type with token 01000032 from typeref (expected class 'Mono.ISystemDependencyProvider' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') commit cca50fe Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 00:10:28 2018 +0200 Mono 2018-08 requires macOS 10.9+, so Xamarin.Mac must as well. commit 0ebc514 Merge: 545c7bf d836c88 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:54:07 2018 +0200 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit d836c88 Author: Jeffrey Stedfast <[email protected]> Date: Wed Oct 24 20:11:17 2018 -0400 [msbuild] Always set IOSDebugOverWiFi to true for WatchOS apps/extensions (#5035) Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/712824 commit 51e7a47 Author: Vincent Dondain <[email protected]> Date: Wed Oct 24 20:10:55 2018 -0400 [coregraphics] Make MatrixOrder a normal enum instead of a nested enum (#5036) This enum might prove useful to other APIs in the future so move outside of `CGAffineTransform`. commit 74576fa Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 23:58:14 2018 +0200 [Metal/SpriteKit] Fix availability attributes on a few API. (#5033) commit 9688c42 Author: Bernhard Urban <[email protected]> Date: Wed Oct 24 21:24:22 2018 +0200 Bump mono and enable monotouch-test with interpreter (#5023) * Bump Mono 2018-06 Commit list for mono/mono: * mono/mono@c0fe7243790 [aot] Reenable recursion checking when initing shared got entries (#11295) * mono/mono@f55f7e53e36 [interp] use unsigned conversion for nuint (#11285) * mono/mono@5986920bdbc [2018-06] [arm64] Remove the limitation on the number of nullable arguments for dyncalls (#11266) * mono/mono@665a308c397 [WinForms] Propagate the flags from DrawTextInternal to MeasureTextInternal (#11251) * mono/mono@5ed4143b4f4 [2018-06] Crash Reporter V2 (#11162) * mono/mono@f0db92c2b6d [interp] Implement interpreter entry trampolines on amd64 (#10978) (#11165) * mono/mono@c1f1a7bfed9 [ci] Move OSX .pkg build to a separate bot pool * mono/mono@d80ced607b4 [aot] Ensure shared got entries are initialized before loading methods (#11225) * mono/mono@d07c626a748 [pkg] Add preinstall which removes existing Mono of the same version (#11209) * mono/mono@cda3acc57cd [sdks] futimens and futimes symbols are missing on anything earlier than 10.13 (#11174) * mono/mono@226e91a0644 Bump xunit-binaries Diff: mono/mono@2343f26...c0fe724 * [tests] enable monotouch-test with --interpreter on Jenkins commit 545c7bf Merge: 63025fe 0ddc355 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 13:49:26 2018 +0200 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit 0ddc355 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 07:54:50 2018 +0200 [Foundation] Fix compiler warnings in NSUrlSessionHandler. (#5032) Fix these warnings: src/Foundation/NSUrlSessionHandler.cs(71,57): warning CS3001: Argument type 'NSUrlSessionConfiguration' is not CLS-compliant src/Foundation/NSUrlSessionHandler.cs(89,14): warning CS0618: 'NSUrlSession.FromConfiguration(NSUrlSessionConfiguration, NSUrlSessionDelegate, NSOperationQueue)' is obsolete: 'Use the overload with a 'INSUrlSessionDelegate' parameter.' commit ad67a39 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 07:52:58 2018 +0200 [runtime] Improve diagnostics/behavior in case of failure to contact the IDE when debugging. (#5029) When debugging watchOS apps on device, we wait forever [1] for a connection to be established to the IDE (iOS apps wait for only 2 seconds, but that's because the app will be killed after a while, which we avoid on watchOS by attaching the native debugger). Unfortunately our error handling was not quite optimal, which meant that if the connection to the IDE failed, we'd wait forever instead of launching the app without attaching the debugger. So improve this, by printing "Waiting for connection to the IDE..." messages while trying to connect, and printing detailed log messages if the connection attempt fails (as well as terminating the wait and launching the watch app). [1] In this case forever technically means "1 hour". commit 63025fe Author: Martin Baulig <[email protected]> Date: Wed Oct 24 00:10:10 2018 -0400 [security]: `NATIVE_APPLE_CERTIFICATE` should now be defined on watchOS as well. commit d2a9a57 Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 23 14:15:58 2018 -0400 [mtouch] Display a specific error is a .framework binary is invalid. Fixes #5028 (#5031) Instead of a generic `MT0000` caused by an exception reading the magic numbers of the binary framework file. This was caused be uncompressing an archive, with a symlink, into a file system that does not support symlinks (on Windows). ref: #5028 commit b403da0 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 22 21:54:54 2018 -0400 [uikit] Preserve method associated with `updateSearchResultsForSearchController:`. Fixes #5024 (#5027) This method is called back from iOS (or tvOS) so there's no managed reference pointing to it. However we know that if it's (private inner) type is present it's because the callback (from native) is possible so we can preserve the method conditionally (to the type presence). #5024 commit 74102bc Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 23 01:52:45 2018 +0200 Use the zlib-helper.o library built by mono, instead of building our own. (#5021) This also makes it possible to simplify/remove some of our build logic. commit 0cbf960 Author: Jeffrey Stedfast <[email protected]> Date: Mon Oct 22 10:22:52 2018 -0400 Update mtouch-errors.md commit 502d811 Author: Jeffrey Stedfast <[email protected]> Date: Mon Oct 22 10:20:57 2018 -0400 Update mtouch-errors.md commit d899d4f Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 22 16:14:26 2018 +0200 Remove bitrotted support for a separate mono submodule for watchOS support. (#5022) Unce upon a time we used a separate mono submodule for watchOS support, to make development of watchOS support easier (we referenced mono/master, to avoid backporting fixes for watchOS support through various release branches in mono). This only worked until our watchOS support became stable, since then we had to start using a stable version of mono for watchOS support. This means that our build support for using a separate mono clone for watchOS support is no longer needed; and in any case it's broken because of build changes done later. commit f87f3b8 Author: Vincent Dondain <[email protected]> Date: Mon Oct 22 08:42:52 2018 -0400 [coregraphics] Add 'MatrixOrder' overload for Scale, Rotate and Translate (#5011) - Fixes #4698: CGAffineTransform.Scale does not work like Swift's .scaledBy(x:y:) (#4698) - 'Scale' monotouch-test now covers the new overload for the new multiplication order. - Changed the Scale test's values so we have different values for 'x0' (it was always 0 before) and so it matches the test case from the bug report. * Same fix for Rotate and Translate commit c378d6b Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 22 07:57:16 2018 +0200 Add a UserType flag for registered types, and use it to improve the performance for is_user_type. (#5017) * Refactor type map to have a separate flag field for each type instead of magic location in the array. Refactor the type map to have a separate flag field for each type instead of a magic location in the array. This simplifies some code, but also allows us to introduce more flags in the future (which becomes increasingly complex if the location in the array is to determine yet another value). This has neglible performance impacts. * Add a UserType flag for registered types, and use it to improve the performance for is_user_type. Reflection in the Objective-C runtime is apparently quite slow, so try to avoid it by computing the information we need for determining whether a particular Objective-C type represents a user type or not in the static registrar. We store this information in a flag for the type in question in the type map, and use a binary search to search the type map when needed. This provides a significant improvement, in particular in the dontlink scenario (probably because there are many more Objective-C types in the app, which made Objective-C reflection slow). In fact, it somehow made the dontlink scenario so fast that it's faster than the linkall scenario (which also improved, but not nearly as much). While quite inexplicable, it's a consistent result I've seen over multiple test runs. Numbers ======= Test case: rolfbjarne/TestApp@004283d Fix 1 refers to PR #5009. Fix 2 refers to PR #5013. Fix 3 refers to PR #5016. Fix 4 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | After fix 4 | Improvement from fix 3 to fix 4 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 172 ms | 148 ms | 24 ms (14%) | 329 ms (69%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 201 ms | 146 ms | 55 ms (27%) | 592 ms (80%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | After fix 4 | Improvement from fix 3 to fix 4 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 31 ms | 29 ms | 2 ms ( 6%) | 69 ms (70%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 43 ms | 28 ms | 15 ms (35%) | 169 ms (86%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 4 (the last) of multiple fixes for #4936. The total speed-up is 69-86% (3-7x faster). commit 097e3fc Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 18:33:45 2018 +0200 [Class] Cache the IntPtr constructors in a dictionary. (#5016) Using reflection to find these constructors is computation-intensitive, so cache the results. Numbers ======= Test case: rolfbjarne/TestApp@004283d Fix 1 refers to PR #5009. Fix 2 refers to PR #5013. Fix 3 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | Improvement from fix 2 to fix 3 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 172 ms | 52 ms (23%) | 305 ms (64%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 201 ms | 176 ms (47%) | 537 ms (73%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | Improvement from fix 2 to fix 3 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 31 ms | 11 ms (26%) | 67 ms (68%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 43 ms | 48 ms (53%) | 154 ms (78%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 3 of multiple fixes for #4936. commit 1279dd1 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 16:54:44 2018 +0200 Get the F# binaries from macios-binaries instead of building them every time. (#5015) It's still possible to build from source if desired. Also remove the fsharp submodule (it will be cloned manually only if building from source). commit ac87108 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 16:04:36 2018 +0200 [Class] Make looking up a System.Type given a native Class instance faster (#5013) Cache the Class -> System.Type lookup in an array. I could also have used a dictionary, but there are a couple of disadvantages compared to the array approach: * A dictionary would require a lock every time it's read/written to. The array is created at launch, and after that we don't have to care about thread safety because it's safe to do the slow lookup multiple times. * Its memory requirements would be higher with more elements (in particular since we'd not only need to store the Type instance, but also a boolean determining whether it's a user type or not). * It's ~1% slower (probably due to the lock). Numbers ======= Test case: rolfbjarne/TestApp@004283d Fix 1 refers to PR #5009. Fix 2 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | Improvement from fix 1 to fix 2 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 257 ms (53%) | 253 ms (53%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 279 ms (43%) | 459 ms (62%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | Improvement from fix 1 to fix 2 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 57 ms (58%) | 56 ms (57%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 62 ms (41%) | 106 ms (54%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 2 of multiple fixes for #4936. commit 900356c Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 07:33:15 2018 +0200 [Class] Sort our array of Class -> token references so that we can do binary instead of linear searches in it. (#5009) Our type map has two sections: first come all the wrapper types, then all the custom types. This means we need to sort these two sections separately, since code elsewhere depends on this split in order to determine if a type is a custom type or not. We also need a minor modification in the array of skipped types, since it contained indexes into the type map, which won't be valid after is has been sorted. Instead store a type reference for the actual type in the array, and use that to search the type map for the corresponding Class. This is a little bit slower, but the results are cached in a dictionary, so it'll only happen once for each type. The performance is slightly slower when the type map has very few entries, but that is repaid many times over when the number of entries go up. Numbers ======= Test case: rolfbjarne/TestApp@004283d iPad Air 2 ---------- | Configuration | Before | After | Improvement | | ------------------- | ------ | ------ | ------------: | | Release (link all) | 477 ms | 481 ms | -4 ms (-0,8%) | | Release (dont link) | 738 ms | 656 ms | 82 ms (11%) | iPhone X -------- | Configuration | Before | After | Improvement | | ------------------- | ------ | ------ | ----------: | | Release (link all) | 98 ms | 99 ms | -1 ms (-1%) | | Release (dont link) | 197 ms | 153 ms | 44 ms (22%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 1 of multiple fixes for #4936. commit 1ec90f0 Author: monojenkins <[email protected]> Date: Thu Oct 18 14:37:30 2018 -0400 [uikit] Duplicate bindings for 'UIScrollView.ContentOffset' to get correct availability information. Fixes #4893 (#5007) `ContentOffset` was moved to `UIFocusItemScrollableContainer` in iOS 12. Since it's a new protocol it's decorated as introduced in iOS 12 - but the API was actually already available for a long time. The _trick_ is to keep the original binding inside `UIScrollView` so it overrides the protocol and keeps the correct availability info. It requires adding `new` to bindings to avoid compiler warnings. reference: #4893 --- from @rolfbjarne In iOS 12 this property was moved to a protocol, but that protocol's availability attributes limits it to iOS 12, not iOS 2 where this property was originally introduced. This is problematic, because it means we'll throw a PlatformNotSupportedException if someone tries to call it on 32-bit iOS. So put the property back on UIScrollView, so that the generated code ends up with the right availability attributes (and a correct 32-bit implementation). #5004 commit 99641c7 Author: Sebastien Pouliot <[email protected]> Date: Thu Oct 18 14:03:17 2018 -0400 [msbuild] Avoid possible NullReferenceException in ScnToolTaskBase. Fixes #4039 (#5006) `EnvironmentVariables` can be null (not empty) and cause the NRE in the attached test case. It's not clear that the extra logic is needed if we were using `xcrun`. There's an enhancement for this #4634 reference: #4039 commit 5ad55d6 Author: Sebastien Pouliot <[email protected]> Date: Thu Oct 18 11:16:24 2018 -0400 [tests][linkall] Add a check that the Makefile produced version number is 'legit'. Fixes #4859 (#5005) History: a marge conflict caused a version string to become "12.3." and this was found in the API diff much later. reference: #4859 commit dca1f47 Author: Miguel de Icaza <[email protected]> Date: Thu Oct 18 06:31:39 2018 -0400 [UIKit] UIGestureRecognizer, support a way of unsubscribing without creating cycles (#4729) * [UIKit] UIGestureRecognizer, support a way of unsubscribing without creating cycles This now tracks all the uses of AddTarget with delegates by recording the Token/Selector pair and making `Dispose()` release all the linkage as well as providing an enumerator that can be used to get all the registered Action handlers - this can then be used with .First() and then passed to `RemoveTarget`. This addresses #4190 This initial patch is here for discussion of the approach, want to review and test this before we merge. * Simplify code a little bit. * Add test. * [tests] Add an NSAutoreleasePool to make GestureRecognizerTest.NoStrongCycles happy on 32-bit. commit d2bcd4b Author: Martin Baulig <[email protected]> Date: Wed Oct 17 15:12:39 2018 -0400 Bump Mono. commit ee1f7dc Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 17 14:42:29 2018 +0200 [CoreFoundation] Implement missing dispatch API. Fixes #4606. (#4967) * [CoreFoundation] Add DispatchQueue.DispatchBarrierSync. * [CoreFoundation] Bind dispatch_queue_[set|get]_specific. * [CoreFoundation] Bind dispatch_queue_get_qos_class. * [CoreFoundation] Bind dispatch_queue_create_with_target. * Add tests. * Update xtro. * Add missing availability attributes. * [tests] Do a version check before testing new API. * Remove redundant code. commit 6751f27 Author: Sebastien Pouliot <[email protected]> Date: Wed Oct 17 08:25:37 2018 -0400 [tests][mmp] Move TypeDescriptor (regression) tests to unit tests (#4994) Also move some tests to share more (now and in future commits) with iOS linker-related tests. Part of #4975 commit 6044a74 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 17 07:13:25 2018 +0200 Bump maccore to get fix for xamarin/maccore#1090. (#4989) * Bump maccore to get fix for xamarin/maccore#1090. Diff: https://github.com/xamarin/maccore/compare/46a12247947cdf546e0e07f4e7062ef2f5fcf515...b93ee3155d89e4414c4c228cf19bb89489b03bb1 * Bump maccore again. Commit list for xamarin/maccore: * xamarin/maccore@b35c3a8d76 Build mlaunch with msbuild instead of xbuild. (#1091) Diff: https://github.com/xamarin/maccore/compare/b93ee3155d89e4414c4c228cf19bb89489b03bb1...b35c3a8d7682c8482c7c749d7c1670b3d4bbed5c commit c308071 Author: Martin Baulig <[email protected]> Date: Tue Oct 16 15:18:33 2018 -0400 Revert "[monotouch-test] Disable X509Certificate(byte[]) tests on watchOS (#4942)" This reverts commit d003a9b. commit 8e72ea8 Author: Bernhard Urban <[email protected]> Date: Tue Oct 16 20:05:19 2018 +0200 [tests] improve MonoWeakReferenceTest to avoid false pinning (#4961) Fixes an issue when executed with interpreter. Now, the test is closer to what we do in the runtime test: https://github.com/mono/mono/blob/831e73abcd5b9e10b4aaff7872b8d68e8e0f60fd/mono/tests/weak-fields.cs https://github.com/mono/mono/blob/831e73abcd5b9e10b4aaff7872b8d68e8e0f60fd/mono/mini/TestHelpers.cs commit e05d87d Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 16 13:58:08 2018 -0400 [mediaplayer] Fix NRE in MPNowPlayingInfoCenter wrt null dictionary entries. Fixes #4988 (#4992) The custom `TryGetValue` could return `true` and an `out null`. That was fine for many items, e.g. converting `null` to `NSString` or `NSDate` is fine. However this cause an `NullReferenceException` when trying to create arrays (thru `NSArray`) or converting `NSNumber` into value types. The _normal_ `TryGetValue` behavior fixes this - and avoid extraneous (and non-required) conversions of `null` items. ref: #4988 commit e73b1a9 Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 16 13:57:25 2018 -0400 [mac] Fix logic to include branch name in packages. Fixes #4990 (#4991) so it can be reported inside VSM. The logic was not updated (for XM) with the simpler one we can use on the internal Jenkins bots. ref: #4990 commit 60b06b9 Author: Bernhard Urban <[email protected]> Date: Tue Oct 16 17:25:35 2018 +0200 [tests] make Symbols.FunctionNames aware of interpreter (#4973) commit 13b2647 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 16 16:55:11 2018 +0200 Fix the llvm32 build by using Xcode 9.4. (#4985) Since Xcode 10 doesn't support building 32-bit macOS binaries. commit b2a596d Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 20:00:03 2018 -0400 Apply XM audit fixes from `xcode10` (#4986) Backport of b40230c commit 1082ce7 Author: Chris Hamons <[email protected]> Date: Mon Oct 15 10:43:17 2018 -0500 Add xtro test for [Deprecated] attributes and fix up usages (#4966) - #4431 commit 8feb753 Merge: 0249138 e8b87b7 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 11:23:27 2018 -0400 Merge branch 'master' into mono-2018-08 commit e8b87b7 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 11:15:20 2018 -0400 [tests][mmp] Convert old mmp calendar regression tests to unit tests (#4983) commit 250fd97 Merge: 904be25 5fbfacc Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 16:55:53 2018 +0200 Merge pull request #4111 from radical/msbuild-port [msbuild] Move from xbuild to msbuild commit 904be25 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 16:51:46 2018 +0200 [xharness] Generate a system variant of dont link, and run it using the oldest mono version we support in Jenkins. Fixes #4121. (#4968) This is an addition to the tests we already run on older macOS bots (and as such will not execute on our PR bots). Fixes #4121. commit 0249138 Merge: 25ae88f d29ede7 Author: Aleksey Kliger <[email protected]> Date: Mon Oct 15 10:50:38 2018 -0400 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit d29ede7 Author: Chris Hamons <[email protected]> Date: Mon Oct 15 09:12:56 2018 -0500 [mmp] Include libmono-system-native.a when embedding mono if it exists (#4980) commit 855e682 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 08:26:49 2018 -0400 [linker] Set flag when processing ParameterInfo.get_Name from XML files. Fixes #4978 (#4981) Commit 996d906 fixed the use of XML files. However it did not set the flags so if it's used in both XML and in code then the dictionary is being added twice, which throws an exception like ``` error MT2102: Error processing the method 'System.Boolean SignalGo.Shared.Helpers.ReflectionHelper/d__0::MoveNext()' in the assembly 'SignalGo.Shared.dll': An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name() ``` reference: #4978 commit 5fbfacc Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 10:41:33 2018 +0200 [tests] Only restore packages.config, not the mtouch test project. Restoring the mtouch.csproj makes nuget try to restore Mono.Cecil.csproj as well, which doesn't work. So just restore what's listed in our packages.config instead. commit d13f66a Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 12 17:09:20 2018 -0400 [appkit] Add missing `[NullAllowed]` on `NSView.NextKeyView`. Fixes #4558 (#4979) Confirmed with headers. reference: #4558 commit f4dbb68 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 12 11:56:57 2018 -0400 [foundation] Fix inlined 'NSUserActivity (IntentsAdditions)' to work if nothing else from Intents is used. Fixes #4894 (#4974) The selectors `suggestedInvocationPhrase` and `setSuggestedInvocationPhrase` needs Intents.framework to be loaded into memory. Otherwise an exception occurs: ``` Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[NSUserActivity setSuggestedInvocationPhrase:]: unrecognized selector sent to instance 0x19cb3f00 ``` When the linker is enabled there's no clue (e.g. namespaces from preserved types) that `Intents` is required to call the property. The fix is to provide an hint that will force the linker to keep a type (a small enum available in all platforms in this case) which tells `mtouch` (based on the type's namespace) to instruct the native linker (Apple's `ld`) to [weak]link the Intents.framework in the application executable. Note: other selections from the category works fine. reference: #4894 commit 40288e4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 23:08:59 2018 +0200 Bump mono. (#4971) Commit list for mono/mono: * mono/mono@2343f267067 [sdks] Add cmake toolchain file for LLVM MXE builds (#11056) * mono/mono@46b723d6b01 [2018-06] [sdks] Create archive targets for pre-building on CI (#10936) * mono/mono@ab3c897d685 Merge pull request #10997 from lewurm/2018-06-interp-fixes-for-native-type * mono/mono@914a62ab2e7 [interp] introduce float R4 stack type * mono/mono@62f23a83652 [interp] support ntype.ToString () * mono/mono@2c48c62e66f [interp] support nfloat.*Infinity * mono/mono@5c5a48b1449 [interp] support ntype.Equals () * mono/mono@13e412ee52a [interp] support ntype.CompareTo () * mono/mono@a576a799b16 [interp] fix op_implicit/op_explicit conversions for native types * mono/mono@1d9378713e6 [sdks/ios] Build libMonoPosixHelper for device architectures, so that zlib-helper.o is created. (#10921) (#10970) * mono/mono@6e48ad4f7b1 Merge pull request #10905 from monojenkins/backport-pr-10899-to-2018-06 * mono/mono@d050e323ed9 [runtime] Fix undefined pthread_main_np (#10930) * mono/mono@b549fa7f32a [Reflection] Fix issue with finding types in module using an asterisk as filter criteria * mono/mono@0dffbef2690 Bump corefx to disable more tests * mono/mono@6c46acfe697 [runtime] Disable stack guard for main thread on osx * mono/mono@46e0249d4cd [sdks] One more update to get XA PR builds working on Linux (#10855) * mono/mono@910395a05f6 corefx bump * mono/mono@2cdfb380a3e [2018-06] [System]: Make sure `HttpWebRequest` observes exceptions on timeout. #10488. (#10732) * mono/mono@aebef84fa2c [merp] Fix return value handling of posix_spawn (#10828) * mono/mono@59f2dbf28b0 [sdks] Debian Linux doesn't need to build MXE (#10819) * mono/mono@401bce867d3 Bump msbuild to track mono-2018-06 * mono/mono@65737564b04 Bump corefx * mono/mono@40d991c3257 [SDKS] Build host runtime with correct bitness (#10742) * mono/mono@1a71d5101f2 [crash] Fix summarize_frame assertion * mono/mono@8f36212ad3a [2018-06] Ignore some xunit tests for XA (non compatible with xunit 2.4) (#10721) * mono/mono@410792459a8 [corlib] Makes remoting test more robust (and disable it on mobile) * mono/mono@7dd65f79a53 [mono-api-html] Render something for fields with marshalling info. (#10698) * mono/mono@7c898271e73 [offset-tool] Error out when parsing fails. (#10696) * mono/mono@adbb8f72c8b [2018-06] Implement IEnumerable for ConditionalWeakTable (#10657) Diff: mono/mono@1b18f39...2343f26 commit 7c1d23d Author: Chris Hamons <[email protected]> Date: Thu Oct 11 09:14:48 2018 -0500 Bind 2 high visibility PrintCore APIs (#4933) - #4713 commit 4362842 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 12:25:47 2018 +0200 [mmptests] Update according to MSBuild changes. commit ffd85c9 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 08:53:44 2018 +0200 [generator] Throw PlatformNotSupportException in 32-bit mode for 64-bit-only iOS API. Fixes #4689. (#4954) Throw PlatformNotSupportedException for iOS API that was introduced in iOS 11+ in 32-bit mode, since that API is clearly not available in any 32-bit capable iOS version. This makes the 32-bit version of Xamarin.iOS.dll smaller (from 15.282.176 bytes to 14.575.616 bytes, ~700kb smaller - small enough that this makes the dontlink test work in 32-bit mode again on device). Fixes #4689. commit 745c18c Merge: 42645d5 f96faaa Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 07:30:35 2018 +0200 Merge remote-tracking branch 'origin/master' into msbuild-port commit f96faaa Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 07:26:55 2018 +0200 [CoreFoundation] Refactor Dispatch code to take advantage of recent code improvements. (#4939) * [CoreFoundation] Make DispatchObject inherit from NativeObject to share more code. * [CoreFoundation] Replace calls to Check () with calls to GetCheckedHandle () to reuse more code. * [CoreFoundation] Simplify a bit by reusing code in base constructors. * [CoreFoundation] Use Handle instead of handle. * [CoreFoundation] Use InitializeHandle instead of setting the 'handle' field. * [CoreFoundation] Remove temporary 'handle' field. * [CoreFoundation] Remove needless 'unsafe' blocks. * Reintroduce DispatchObject.Check, since it's public API. commit 73fbb53 Author: Ankit Jain <[email protected]> Date: Wed Oct 10 17:14:31 2018 -0700 [msbuild] Enable nuget package conflict resolution (#4945) Fixes mono/mono#10602 . From the issue: ``` We need to enable this to support the system assemblies conflict resolution which we now rely on for any new packages to enhance developers experience and get us out of dependency on specific package versions. ``` commit 42645d5 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Jul 31 11:48:15 2018 +0200 [tests][msbuild] Seems like we need to copy System.Reflection.Metadata.dll locally, since the MSBuild dlls need it. commit acad87b Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Jul 30 16:03:35 2018 +0200 Bump system mono to 5.16 to see if that gets an MSBuild with the fixes we need for this PR. commit 2e75028 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Jul 30 16:00:55 2018 +0200 [tests] Set XamarinMacFrameworkRoot as an environment variable when running MSBuild tests. Set XamarinMacFrameworkRoot as an environment variable when running MSBuild tests, because we have command-line tools that needs it (bgen), and only passing it as a MSBuild parameter doesn't reach the environment (and any subprocesses). commit 06d7410 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 17:40:29 2018 +0200 Remove debug spew. commit 50e0554 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 17:40:29 2018 +0200 [xharness] Process Import elements, but don't add LogicalName to them. commit afcad3b Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 11:41:23 2018 +0200 [xharness] Set the right variable to point msbuild to our locally built xbuild targets. commit 19d9a64 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 11:40:53 2018 +0200 [xharness] Don't add LogicalName beneath Import elements, it doesn't work with MSBuild. commit 516aab9 Merge: 16e512a 9e31d07 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 09:43:14 2018 +0200 Merge remote-tracking branch 'origin/master' into msbuild-port commit 16e512a Author: Ankit <[email protected]> Date: Mon May 21 19:42:30 2018 -0400 Revert "[msbuild] Add forward compatibility with symlinks support (#648)" This can be reverted as we have now moved to msbuild assemblies, and they already have this property. This reverts commit d45f52f. commit 526f009 Author: Ankit <[email protected]> Date: Mon May 21 16:13:11 2018 -0400 [tests] Fix Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject msbuild has the path in it's original form (with windows slashes). ``` Test Failure : Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject #3 String lengths are both 42. Strings differ at index 3. Expected: "bin/iPhoneSimulator/Debug/MySingleView.app" But was: "bin\\iPhoneSimulator\\Debug\\MySingleView.app" --------------^ at Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject () [0x00054] in /Users/ankit/dev/xamarin-macios/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs:394 ``` commit b578593 Author: Ankit <[email protected]> Date: Tue May 22 14:17:31 2018 -0400 [tests] Remove TI.UnifiedTestConfig.DiagnosticMSBuild .. as we always build with diagnostic verbosity now. And remove the parameter from `TI.BuildProject(..)`. commit 6278f10 Author: Ankit <[email protected]> Date: Fri May 18 18:29:10 2018 -0400 [tests] Remove `bool useMSBuild` arg from ProjectTestHelpers .. as we always use msbuild now. commit 8f0df14 Author: Ankit <[email protected]> Date: Fri May 18 18:23:29 2018 -0400 [tests] Remove project path at the end of errors/warnings before comparing - msbuild adds project path at the end of errors/warnings, which xbuild didn't do. This caused two tests to fail: Xamarin.MMP.Tests.MMPTests.MM0132("inline-runtime-arch") Xamarin.MMP.Tests.MMPTests.MM0132("foo") commit 26abe1b Author: Ankit <[email protected]> Date: Thu May 17 17:38:11 2018 -0400 [tests] Fix tests that depend on tool output Lot of tests depend on comparing text in tool output. In xbuild, this was logged with `MessageImportance.Normal` but in msbuild the default is `MessageImportance.Low`. So, now the tool output doesn't show up in the normal verbosity log, causing the build to fail. Due to the number of tests depending on this, the default is changed to `diagnosticMSBuild = true`. A better way would probably (future) be to use a custom logger and get the output from the logging events. commit 6fc89ab Author: Ankit <[email protected]> Date: Thu May 17 16:12:38 2018 -0400 [tests] msbuild-mac Fix tests depending on msbuild specific strings Xamarin.MMP.Tests.MMPTests.BuildingSameBindingProject_TwoTimes_ShallNotInvokeMMPTwoTimes Xamarin.MMP.Tests.MMPTests.BuildingSameProject_TwoTimes_ShallNotInvokeMMPTwoTimes commit 9e53fd5 Author: Ankit <[email protected]> Date: Thu May 17 15:23:39 2018 -0400 [tests] Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll msbuild just copies the output assembly from obj to bin. So, the test needs to `touch` the file in `obj` to trigger a rebuild. commit b883c4f Author: Ankit <[email protected]> Date: Mon May 21 18:54:57 2018 -0400 [tests] Don't use WriteLine in TestHelpers.Loggers as msbuild adds that .. itself. commit 2805bea Author: Ankit <[email protected]> Date: Mon May 21 18:53:24 2018 -0400 [tests] Ensure that the correct msbuild.dll.config gets picked up .. by setting `MSBUILD_EXE_PATH` to the corresponding `MSBuild.dll`. commit 18f7168 Author: Ankit <[email protected]> Date: Mon May 21 18:42:37 2018 -0400 [tests] Fix DetectAppManifest_ExecutableProject_NoPList `ProjectInstance.GetPropertyValue` returns empty string if the property doesn't exist. https://docs.microsoft.com/en-us/dotnet/api/microsoft.build.execution.projectinstance.getpropertyvalue?view=netframework-4.7.2#Microsoft_Build_Execution_ProjectInstance_GetPropertyValue_System_String_ commit a5670f2 Author: Ankit <[email protected]> Date: Thu May 17 13:43:11 2018 -0400 [msbuild] Port the tasks and tests to use new msbuild API Mono's msbuild does not have implementation assemblies for the older APIs (think `Microsoft.Build.Engine`), and so as part of the port to msbuild we switch over to using the newer APIs. With this commit, we are buildable again (with lots of test failures!). commit 256035e Author: Ankit <[email protected]> Date: Wed May 9 17:50:22 2018 -0400 [msbuild] Update xbuild assembly references to msbuild ones .. and switch from v4.0 to the new .Core assemblies. commit c7b0514 Author: Ankit <[email protected]> Date: Wed May 9 17:00:38 2018 -0400 [msbuild] Replace all invocations of xbuild with msbuild - And map xbuild properties to msbuild ones for fallback paths `XBUILD_FRAMEWORK_FOLDERS_PATH -> TargetFrameworkFallbackSearchPaths` `MSBuildExtensionsPath -> MSBuildExtensionsPathFallbackPathsOverride` Note: Earlier with xbuild, the order of lookup for (example) `MSBuildExtensionsPath` was: 1. The value of $(MSBuildExtensionsPath), which we were setting to the in-tree path 2. /Library/Frameworks/Mono.framework/External/xbuild on osx 3. $prefix/lib/mono/xbuild (default location) And with the above changes, it will be: 1. The value of $(MSBuildExtensionsPath), which we are no longer setting, so the default path : $prefix/lib/mono/xbuild 2. The in-tree path, via $(MSBuildExtensionsPathFallbackPathsOverride) 3. /Library/Frameworks/Mono.framework/External/xbuild on osx Since, XI/XM targets are used via fallback path `/Library/Frameworks/Mono.framework/External/xbuild`, the default location doesn't matter. And the order of the remaining two remains the same. The same thing applies to the target frameworks also.
commit 600da056f5c054e98ded4e3b35632e567c64baa6 Author: Marek Safar <[email protected]> Date: Tue Oct 30 14:26:34 2018 +0100 Bump system mono dependency commit 08813eff2d20fbd669c28eab2402ff2f745d73d5 Author: Marek Safar <[email protected]> Date: Tue Oct 30 10:12:52 2018 +0100 Bump mono commit 7425218c7843bb81bd29c832fcfb8fe43e8a21ee Merge: 82e0c73e0ba c69c74b3d33 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 30 07:42:02 2018 +0100 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit c69c74b3d337f6c50f3d5ebd4d136c1cddef0091 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 29 16:09:30 2018 +0100 Clone files if possible whenever it makes sense. (#5049) Cloning is faster when supported, and it also saves disk space. commit 15849eeff820b4a8a760f9e2b18eeca9754df0f9 Author: Bernhard Urban <[email protected]> Date: Mon Oct 29 13:37:13 2018 +0100 Bump to mono:2018-06 (#5050) Commit list for mono/mono: * mono/mono@3ae42fc38d5 [2018-06] [aot] add unbox_arbitrary_trampoline for fullaot/interp mixed mode (#11362) * mono/mono@c4f7644e976 [tests] lower recursion depth of PerformNoPinAction (#11325) * mono/mono@adeaf3e0330 [SDKS, LLVM] Disable detection and use of libxml2 (#11341) * mono/mono@32d1539629f [runtime] Don't init classes in ves_icall_RuntimeTypeHandle_is_subclass_of Diff: https://github.com/mono/mono/compare/c0fe724379084be07e0e0f66a6340167ebab8bcf...3ae42fc38d5b24c4fa9a58cc84607dedd9c817dc commit aa668710f753880901ca9b09a91b4bceba691d3e Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 23:22:03 2018 +0200 [iTunesLibrary] Fix typo & confusion. (#5046) I'm not sure why we have an entry in our list of frameworks claiming that iTunesLibrary was introduced in macOS 10.9, when we didn't have any bindings for the library back then. In any case we also have an entry for iTunesLibrary in our list of frameworks claiming that iTunesLibrary was introduced in macOS 10.14. I looked at some of Apple's documentation for the types in iTunesLibrary, and they all claim to be introduced in macOS 10.13 [2]. And to make matters even more interesting, Apple's documentation for the framework itself states the library is in /Library/Frameworks/iTunesLibrary.framework, and ships with iTunes 11.0+ [1] (which is introduced in 2012). Then I looked at a macOS 10.14 machine, and the framework is available at /System/Library/Frameworks/iTunesLibrary.framework, and /Library/Frameworks/iTunesLibrary.framework is just a symlink there (/System/Library/Frameworks/iTunesLibrary.framework does not exist on my macOS 10.13 machines, while /Library/Frameworks/iTunesLibrary.framework does). From this I conclude that the framework was converted into a system framework in macOS 10.14, and as such our claim that the framework was introduced in 10.14 is at least somewhat right. So treat iTunesLibrary as any other framework introduced in macOS 10.14, and remove our (duplicated) framework entry for 10.9 (for which we didn't have any bindings anyway). Also fix the path to the framework, I'm wonder how this got past our tests in the first place. [1] https://developer.apple.com/documentation/ituneslibrary: "... located at /Library/Frameworks/iTunesLibrary.framework ... The iTunes Library framework is available to users running iTunes v11.0 or above." [2] https://developer.apple.com/documentation/ituneslibrary/itlibrary?language=objc commit 917214828d9ca90771bae2be1d4174bf2e0a1561 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 26 13:34:08 2018 -0400 [xharness] Log the environment variables in the execution logs (#5045) While trying to debug an msbuild unit tests it was not possible to successfully copy/paste the command from the execution log and run it in a shell. It's not that hard to run xharness and figure it out - but the same can happen on bots (which could be harder). So that little change prints out the host and xharness changes to the environment variables to make copy/pasters life even lazier :) commit eaa6435e89ac146febc0ce5eca58b0696ba18338 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 26 13:18:05 2018 -0400 [msbuild] Avoid an NRE in BtouchTask when an invalid extra argument is provided (#5041) The task itself should not throw. An invalid argument is an error that should (and is) reported by `btouch` itself (and the task picks it up). This makes the error reporting much more useful and the way an exception is reported, from Windows, is also confusing ``` MessagingRemoteException: An error occured on client Build4110732 while executing a reply for topic xvs/Build/4.11.0.732/execute-task/ClassLibrary1/6e85b94002fBTouch ArgumentNullException: Value cannot be null. ``` Unit tests added. Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/656983 commit 82e0c73e0ba8567bd89989d0764727a204c18caa Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 17:15:00 2018 +0200 Bump minimum mono one that has 'mono_dangerous_add_raw_internal_call'. commit 93e72862f7e71efcc637a86ec9afaf6e4bf19318 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 15:23:36 2018 +0200 [mmptest] Less hardcoding. commit 7449e51bbadf59857242d6ef800a6ec23c37d63b Author: Aleksey Kliger (λgeek) <[email protected]> Date: Fri Oct 26 00:46:28 2018 -0500 [2018-08][watchos] Use mono_dangerous_add_raw_internal_call for watchOS icalls (#5030) * Add optional mono_dangerous_add_raw_internal_call to exports.t4 * Use mono_dangerous_add_raw_internal_call on watchOS for icall registration Internal calls added with mono_dangerous_add_raw_internal_call run in GC Unsafe mode under cooperative and hybrid suspend, whereas internal calls added with mono_add_internal_call run in GC Safe mode since mono/mono@5756ba4b46f43d4f1c61c0d7dbbcf27a271f24ab in order for hybrid suspend to be a transparent replacement for preemptive suspend (the old default). The icalls in GC Unsafe mode have a responsibility not to block indefinitely without manually performing a thread state transition to GC Safe mode, and in return they avoid a thread state transition when the icall is invoked from a managed method. commit 0b27eef7dcd717e2ffe95fb2a38b8e2b0e61108f Author: Marek Safar <[email protected]> Date: Thu Oct 25 20:14:41 2018 +0200 Bump mono commit 12262c4cbafc595d27b8521826be5577dbba26f5 Author: Chris Hamons <[email protected]> Date: Thu Oct 25 11:56:23 2018 -0500 [macos] Add NSScrollView.AddFloatingSubview (#5040) - https://github.com/xamarin/xamarin-macios/issues/5039 commit 35df3a529452a6a1da13647a29f78ea05d274ddf Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:47:05 2018 +0200 [introspection] Fix a few issues found on iPad Air 2 with iOS 12. (#5034) * [introspection] MPSCnnBinaryKernel's kernelHeight/kernelWidth are missing on iOS too. * [introspection] CoreNFC is not even available on all devices. commit 2b85aaef56f66c7a2b7732f40ad92f21fd59e279 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:17:03 2018 +0200 [tests] Only build exactly what's neded for running XM tests on older bots. (#5038) Also build what we can in parallel (and manually building shared dependencies first). commit 36209e55e9818b91559836726e402b5b5891749a Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 12:31:26 2018 +0200 Remove 10.7 & 10.8 availability attributes, since they're redundant now. commit 2755245b914e611cc26a29f776b43f3765d4270d Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:04:56 2018 +0200 [tests] More min macOS version setting to 10.9. commit 3f5aceb4f6791c1354c889f7af426443208340db Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:50:21 2018 +0200 Bump guiunit to get updated min macOS version. Commit list for mono/guiunit: * mono/guiunit@9f67042 Bump min macOS version to 10.9. * mono/guiunit@0c3159a [Harness] Fix exit code of 0 being reported in case of exceptions in the harness * mono/guiunit@9b7497c Merge pull request #15 from mono/fix-more-warnings * mono/guiunit@a264470 Fix more warnings * mono/guiunit@dd094e7 Merge pull request #14 from mono/fix-warnings * mono/guiunit@b3afede Fix build warnings Diff: https://github.com/mono/guiunit/compare/1306b0d420bd69efcd8f1951c5c68dc7065ce9eb...9f67042498c8a3bc28888c7765a93af9b3475329 commit 04b7c94b17addb15bfb7b9bdea263521b708e61b Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:13:56 2018 +0200 Bump min mono version for XM system apps. Using a system mono < 5.18 results in a TypeLoadException: Could not resolve type with token 01000032 from typeref (expected class 'Mono.ISystemDependencyProvider' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') commit cca50fe5000f9a094da17c89c9382e4a434a60fb Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 00:10:28 2018 +0200 Mono 2018-08 requires macOS 10.9+, so Xamarin.Mac must as well. commit 0ebc514467805f7baeb19404c85d43ca62c834ed Merge: 545c7bf4ba7 d836c8867dc Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:54:07 2018 +0200 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit d836c8867dc8282d45a1ce50d177e0a16419a2bd Author: Jeffrey Stedfast <[email protected]> Date: Wed Oct 24 20:11:17 2018 -0400 [msbuild] Always set IOSDebugOverWiFi to true for WatchOS apps/extensions (#5035) Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/712824 commit 51e7a477000cf73137e09e2bbbed76339747e943 Author: Vincent Dondain <[email protected]> Date: Wed Oct 24 20:10:55 2018 -0400 [coregraphics] Make MatrixOrder a normal enum instead of a nested enum (#5036) This enum might prove useful to other APIs in the future so move outside of `CGAffineTransform`. commit 74576fa5ca2095af44d6ebd2563fac98eb052b8f Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 23:58:14 2018 +0200 [Metal/SpriteKit] Fix availability attributes on a few API. (#5033) commit 9688c42e2d4d6191fbf0bd687cf46ebca9cc3370 Author: Bernhard Urban <[email protected]> Date: Wed Oct 24 21:24:22 2018 +0200 Bump mono and enable monotouch-test with interpreter (#5023) * Bump Mono 2018-06 Commit list for mono/mono: * mono/mono@c0fe7243790 [aot] Reenable recursion checking when initing shared got entries (#11295) * mono/mono@f55f7e53e36 [interp] use unsigned conversion for nuint (#11285) * mono/mono@5986920bdbc [2018-06] [arm64] Remove the limitation on the number of nullable arguments for dyncalls (#11266) * mono/mono@665a308c397 [WinForms] Propagate the flags from DrawTextInternal to MeasureTextInternal (#11251) * mono/mono@5ed4143b4f4 [2018-06] Crash Reporter V2 (#11162) * mono/mono@f0db92c2b6d [interp] Implement interpreter entry trampolines on amd64 (#10978) (#11165) * mono/mono@c1f1a7bfed9 [ci] Move OSX .pkg build to a separate bot pool * mono/mono@d80ced607b4 [aot] Ensure shared got entries are initialized before loading methods (#11225) * mono/mono@d07c626a748 [pkg] Add preinstall which removes existing Mono of the same version (#11209) * mono/mono@cda3acc57cd [sdks] futimens and futimes symbols are missing on anything earlier than 10.13 (#11174) * mono/mono@226e91a0644 Bump xunit-binaries Diff: https://github.com/mono/mono/compare/2343f2670679edf97b9480e0e08aad2593eab9f6...c0fe724379084be07e0e0f66a6340167ebab8bcf * [tests] enable monotouch-test with --interpreter on Jenkins commit 545c7bf4ba7a0967be3f0423ab2d502adbd79880 Merge: 63025fe8e76 0ddc3553d3e Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 13:49:26 2018 +0200 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit 0ddc3553d3ef56163734c60b0f3e082a702a08c4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 07:54:50 2018 +0200 [Foundation] Fix compiler warnings in NSUrlSessionHandler. (#5032) Fix these warnings: src/Foundation/NSUrlSessionHandler.cs(71,57): warning CS3001: Argument type 'NSUrlSessionConfiguration' is not CLS-compliant src/Foundation/NSUrlSessionHandler.cs(89,14): warning CS0618: 'NSUrlSession.FromConfiguration(NSUrlSessionConfiguration, NSUrlSessionDelegate, NSOperationQueue)' is obsolete: 'Use the overload with a 'INSUrlSessionDelegate' parameter.' commit ad67a39104e2f509b2bacdfccf24b6c179baf133 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 07:52:58 2018 +0200 [runtime] Improve diagnostics/behavior in case of failure to contact the IDE when debugging. (#5029) When debugging watchOS apps on device, we wait forever [1] for a connection to be established to the IDE (iOS apps wait for only 2 seconds, but that's because the app will be killed after a while, which we avoid on watchOS by attaching the native debugger). Unfortunately our error handling was not quite optimal, which meant that if the connection to the IDE failed, we'd wait forever instead of launching the app without attaching the debugger. So improve this, by printing "Waiting for connection to the IDE..." messages while trying to connect, and printing detailed log messages if the connection attempt fails (as well as terminating the wait and launching the watch app). [1] In this case forever technically means "1 hour". commit 63025fe8e76c90e903129d8d74fca33bcf08e4ea Author: Martin Baulig <[email protected]> Date: Wed Oct 24 00:10:10 2018 -0400 [security]: `NATIVE_APPLE_CERTIFICATE` should now be defined on watchOS as well. commit d2a9a57bb9dfe76a87d160680bc4204a62cc2b1a Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 23 14:15:58 2018 -0400 [mtouch] Display a specific error is a .framework binary is invalid. Fixes #5028 (#5031) Instead of a generic `MT0000` caused by an exception reading the magic numbers of the binary framework file. This was caused be uncompressing an archive, with a symlink, into a file system that does not support symlinks (on Windows). ref: https://github.com/xamarin/xamarin-macios/issues/5028 commit b403da0d85c83558eabb326cef3621190059bf66 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 22 21:54:54 2018 -0400 [uikit] Preserve method associated with `updateSearchResultsForSearchController:`. Fixes #5024 (#5027) This method is called back from iOS (or tvOS) so there's no managed reference pointing to it. However we know that if it's (private inner) type is present it's because the callback (from native) is possible so we can preserve the method conditionally (to the type presence). https://github.com/xamarin/xamarin-macios/issues/5024 commit 74102bce2d67523df65f007d3a82f9a7baa86709 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 23 01:52:45 2018 +0200 Use the zlib-helper.o library built by mono, instead of building our own. (#5021) This also makes it possible to simplify/remove some of our build logic. commit 0cbf9609a1d93571aa827d4845872ef8a9cdb9ec Author: Jeffrey Stedfast <[email protected]> Date: Mon Oct 22 10:22:52 2018 -0400 Update mtouch-errors.md commit 502d811c438380a0d62805f9bf5bef2dfd227075 Author: Jeffrey Stedfast <[email protected]> Date: Mon Oct 22 10:20:57 2018 -0400 Update mtouch-errors.md commit d899d4fb707738fec5706d7e88351713b744c87a Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 22 16:14:26 2018 +0200 Remove bitrotted support for a separate mono submodule for watchOS support. (#5022) Unce upon a time we used a separate mono submodule for watchOS support, to make development of watchOS support easier (we referenced mono/master, to avoid backporting fixes for watchOS support through various release branches in mono). This only worked until our watchOS support became stable, since then we had to start using a stable version of mono for watchOS support. This means that our build support for using a separate mono clone for watchOS support is no longer needed; and in any case it's broken because of build changes done later. commit f87f3b88f8d7e26eb71a87340fd9be674a02e2e5 Author: Vincent Dondain <[email protected]> Date: Mon Oct 22 08:42:52 2018 -0400 [coregraphics] Add 'MatrixOrder' overload for Scale, Rotate and Translate (#5011) - Fixes #4698: CGAffineTransform.Scale does not work like Swift's .scaledBy(x:y:) (https://github.com/xamarin/xamarin-macios/issues/4698) - 'Scale' monotouch-test now covers the new overload for the new multiplication order. - Changed the Scale test's values so we have different values for 'x0' (it was always 0 before) and so it matches the test case from the bug report. * Same fix for Rotate and Translate commit c378d6baa5a00d26bf18baee3261b277b046fa9c Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 22 07:57:16 2018 +0200 Add a UserType flag for registered types, and use it to improve the performance for is_user_type. (#5017) * Refactor type map to have a separate flag field for each type instead of magic location in the array. Refactor the type map to have a separate flag field for each type instead of a magic location in the array. This simplifies some code, but also allows us to introduce more flags in the future (which becomes increasingly complex if the location in the array is to determine yet another value). This has neglible performance impacts. * Add a UserType flag for registered types, and use it to improve the performance for is_user_type. Reflection in the Objective-C runtime is apparently quite slow, so try to avoid it by computing the information we need for determining whether a particular Objective-C type represents a user type or not in the static registrar. We store this information in a flag for the type in question in the type map, and use a binary search to search the type map when needed. This provides a significant improvement, in particular in the dontlink scenario (probably because there are many more Objective-C types in the app, which made Objective-C reflection slow). In fact, it somehow made the dontlink scenario so fast that it's faster than the linkall scenario (which also improved, but not nearly as much). While quite inexplicable, it's a consistent result I've seen over multiple test runs. Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b Fix 1 refers to PR #5009. Fix 2 refers to PR #5013. Fix 3 refers to PR #5016. Fix 4 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | After fix 4 | Improvement from fix 3 to fix 4 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 172 ms | 148 ms | 24 ms (14%) | 329 ms (69%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 201 ms | 146 ms | 55 ms (27%) | 592 ms (80%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | After fix 4 | Improvement from fix 3 to fix 4 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 31 ms | 29 ms | 2 ms ( 6%) | 69 ms (70%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 43 ms | 28 ms | 15 ms (35%) | 169 ms (86%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 4 (the last) of multiple fixes for #4936. The total speed-up is 69-86% (3-7x faster). commit 097e3fc9ce44840bb21fd580e794791776ff7ec7 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 18:33:45 2018 +0200 [Class] Cache the IntPtr constructors in a dictionary. (#5016) Using reflection to find these constructors is computation-intensitive, so cache the results. Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b Fix 1 refers to PR #5009. Fix 2 refers to PR #5013. Fix 3 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | Improvement from fix 2 to fix 3 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 172 ms | 52 ms (23%) | 305 ms (64%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 201 ms | 176 ms (47%) | 537 ms (73%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | Improvement from fix 2 to fix 3 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 31 ms | 11 ms (26%) | 67 ms (68%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 43 ms | 48 ms (53%) | 154 ms (78%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 3 of multiple fixes for #4936. commit 1279dd1eaa8943afe3fb397f0394bd18cb0b2fec Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 16:54:44 2018 +0200 Get the F# binaries from macios-binaries instead of building them every time. (#5015) It's still possible to build from source if desired. Also remove the fsharp submodule (it will be cloned manually only if building from source). commit ac8710815233bb3f19f86c8468fc891dbc23ee61 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 16:04:36 2018 +0200 [Class] Make looking up a System.Type given a native Class instance faster (#5013) Cache the Class -> System.Type lookup in an array. I could also have used a dictionary, but there are a couple of disadvantages compared to the array approach: * A dictionary would require a lock every time it's read/written to. The array is created at launch, and after that we don't have to care about thread safety because it's safe to do the slow lookup multiple times. * Its memory requirements would be higher with more elements (in particular since we'd not only need to store the Type instance, but also a boolean determining whether it's a user type or not). * It's ~1% slower (probably due to the lock). Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b Fix 1 refers to PR #5009. Fix 2 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | Improvement from fix 1 to fix 2 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 257 ms (53%) | 253 ms (53%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 279 ms (43%) | 459 ms (62%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | Improvement from fix 1 to fix 2 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 57 ms (58%) | 56 ms (57%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 62 ms (41%) | 106 ms (54%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 2 of multiple fixes for #4936. commit 900356c2e6effbf800de53b88a00f6175d53145a Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 07:33:15 2018 +0200 [Class] Sort our array of Class -> token references so that we can do binary instead of linear searches in it. (#5009) Our type map has two sections: first come all the wrapper types, then all the custom types. This means we need to sort these two sections separately, since code elsewhere depends on this split in order to determine if a type is a custom type or not. We also need a minor modification in the array of skipped types, since it contained indexes into the type map, which won't be valid after is has been sorted. Instead store a type reference for the actual type in the array, and use that to search the type map for the corresponding Class. This is a little bit slower, but the results are cached in a dictionary, so it'll only happen once for each type. The performance is slightly slower when the type map has very few entries, but that is repaid many times over when the number of entries go up. Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b iPad Air 2 ---------- | Configuration | Before | After | Improvement | | ------------------- | ------ | ------ | ------------: | | Release (link all) | 477 ms | 481 ms | -4 ms (-0,8%) | | Release (dont link) | 738 ms | 656 ms | 82 ms (11%) | iPhone X -------- | Configuration | Before | After | Improvement | | ------------------- | ------ | ------ | ----------: | | Release (link all) | 98 ms | 99 ms | -1 ms (-1%) | | Release (dont link) | 197 ms | 153 ms | 44 ms (22%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 1 of multiple fixes for #4936. commit 1ec90f0fe546e0f7700b92c05e1cbfed9c63831d Author: monojenkins <[email protected]> Date: Thu Oct 18 14:37:30 2018 -0400 [uikit] Duplicate bindings for 'UIScrollView.ContentOffset' to get correct availability information. Fixes #4893 (#5007) `ContentOffset` was moved to `UIFocusItemScrollableContainer` in iOS 12. Since it's a new protocol it's decorated as introduced in iOS 12 - but the API was actually already available for a long time. The _trick_ is to keep the original binding inside `UIScrollView` so it overrides the protocol and keeps the correct availability info. It requires adding `new` to bindings to avoid compiler warnings. reference: https://github.com/xamarin/xamarin-macios/issues/4893 --- from @rolfbjarne In iOS 12 this property was moved to a protocol, but that protocol's availability attributes limits it to iOS 12, not iOS 2 where this property was originally introduced. This is problematic, because it means we'll throw a PlatformNotSupportedException if someone tries to call it on 32-bit iOS. So put the property back on UIScrollView, so that the generated code ends up with the right availability attributes (and a correct 32-bit implementation). https://github.com/xamarin/xamarin-macios/pull/5004 commit 99641c7fcdecc69877ce4b986f26bb33d695d699 Author: Sebastien Pouliot <[email protected]> Date: Thu Oct 18 14:03:17 2018 -0400 [msbuild] Avoid possible NullReferenceException in ScnToolTaskBase. Fixes #4039 (#5006) `EnvironmentVariables` can be null (not empty) and cause the NRE in the attached test case. It's not clear that the extra logic is needed if we were using `xcrun`. There's an enhancement for this https://github.com/xamarin/xamarin-macios/issues/4634 reference: https://github.com/xamarin/xamarin-macios/issues/4039 commit 5ad55d603e1b5025428865cf1bdc68c01e3d0c58 Author: Sebastien Pouliot <[email protected]> Date: Thu Oct 18 11:16:24 2018 -0400 [tests][linkall] Add a check that the Makefile produced version number is 'legit'. Fixes #4859 (#5005) History: a marge conflict caused a version string to become "12.3." and this was found in the API diff much later. reference: https://github.com/xamarin/xamarin-macios/issues/4859 commit dca1f4793fbfb31f9142a714b1907053f1a29575 Author: Miguel de Icaza <[email protected]> Date: Thu Oct 18 06:31:39 2018 -0400 [UIKit] UIGestureRecognizer, support a way of unsubscribing without creating cycles (#4729) * [UIKit] UIGestureRecognizer, support a way of unsubscribing without creating cycles This now tracks all the uses of AddTarget with delegates by recording the Token/Selector pair and making `Dispose()` release all the linkage as well as providing an enumerator that can be used to get all the registered Action handlers - this can then be used with .First() and then passed to `RemoveTarget`. This addresses https://github.com/xamarin/xamarin-macios/issues/4190 This initial patch is here for discussion of the approach, want to review and test this before we merge. * Simplify code a little bit. * Add test. * [tests] Add an NSAutoreleasePool to make GestureRecognizerTest.NoStrongCycles happy on 32-bit. commit d2bcd4b7755734e849791bd2b190b1ab5fa0574b Author: Martin Baulig <[email protected]> Date: Wed Oct 17 15:12:39 2018 -0400 Bump Mono. commit ee1f7dc33d3519276758cb0e5c4d38f89f9936e7 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 17 14:42:29 2018 +0200 [CoreFoundation] Implement missing dispatch API. Fixes #4606. (#4967) * [CoreFoundation] Add DispatchQueue.DispatchBarrierSync. * [CoreFoundation] Bind dispatch_queue_[set|get]_specific. * [CoreFoundation] Bind dispatch_queue_get_qos_class. * [CoreFoundation] Bind dispatch_queue_create_with_target. * Add tests. * Update xtro. * Add missing availability attributes. * [tests] Do a version check before testing new API. * Remove redundant code. commit 6751f278417ee3a8d9794ffefd2ec4ae4f6ce599 Author: Sebastien Pouliot <[email protected]> Date: Wed Oct 17 08:25:37 2018 -0400 [tests][mmp] Move TypeDescriptor (regression) tests to unit tests (#4994) Also move some tests to share more (now and in future commits) with iOS linker-related tests. Part of https://github.com/xamarin/xamarin-macios/issues/4975 commit 6044a74ae26e575b3725c67d86c612127c6c7a1d Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 17 07:13:25 2018 +0200 Bump maccore to get fix for xamarin/maccore#1090. (#4989) * Bump maccore to get fix for xamarin/maccore#1090. Diff: https://github.com/xamarin/maccore/compare/46a12247947cdf546e0e07f4e7062ef2f5fcf515...b93ee3155d89e4414c4c228cf19bb89489b03bb1 * Bump maccore again. Commit list for xamarin/maccore: * xamarin/maccore@b35c3a8d76 Build mlaunch with msbuild instead of xbuild. (#1091) Diff: https://github.com/xamarin/maccore/compare/b93ee3155d89e4414c4c228cf19bb89489b03bb1...b35c3a8d7682c8482c7c749d7c1670b3d4bbed5c commit c30807113ce87ff48b4a271bfca2af16ea056d0b Author: Martin Baulig <[email protected]> Date: Tue Oct 16 15:18:33 2018 -0400 Revert "[monotouch-test] Disable X509Certificate(byte[]) tests on watchOS (#4942)" This reverts commit d003a9b918cdd340ec1b5ad931306e53a0d9a632. commit 8e72ea8330f4ad59544fb55a31e882d6bf254e1a Author: Bernhard Urban <[email protected]> Date: Tue Oct 16 20:05:19 2018 +0200 [tests] improve MonoWeakReferenceTest to avoid false pinning (#4961) Fixes an issue when executed with interpreter. Now, the test is closer to what we do in the runtime test: https://github.com/mono/mono/blob/831e73abcd5b9e10b4aaff7872b8d68e8e0f60fd/mono/tests/weak-fields.cs https://github.com/mono/mono/blob/831e73abcd5b9e10b4aaff7872b8d68e8e0f60fd/mono/mini/TestHelpers.cs commit e05d87da2ac1ec9a879602a694b6a89bde9b281c Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 16 13:58:08 2018 -0400 [mediaplayer] Fix NRE in MPNowPlayingInfoCenter wrt null dictionary entries. Fixes #4988 (#4992) The custom `TryGetValue` could return `true` and an `out null`. That was fine for many items, e.g. converting `null` to `NSString` or `NSDate` is fine. However this cause an `NullReferenceException` when trying to create arrays (thru `NSArray`) or converting `NSNumber` into value types. The _normal_ `TryGetValue` behavior fixes this - and avoid extraneous (and non-required) conversions of `null` items. ref: https://github.com/xamarin/xamarin-macios/issues/4988 commit e73b1a981e6797eda85d082a4a4a962dbcc4dd77 Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 16 13:57:25 2018 -0400 [mac] Fix logic to include branch name in packages. Fixes #4990 (#4991) so it can be reported inside VSM. The logic was not updated (for XM) with the simpler one we can use on the internal Jenkins bots. ref: https://github.com/xamarin/xamarin-macios/issues/4990 commit 60b06b9c982c5c8e9c13f44d43a5d5f21d5b2464 Author: Bernhard Urban <[email protected]> Date: Tue Oct 16 17:25:35 2018 +0200 [tests] make Symbols.FunctionNames aware of interpreter (#4973) commit 13b264795580085fbeebc65e0cc5362f7891655b Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 16 16:55:11 2018 +0200 Fix the llvm32 build by using Xcode 9.4. (#4985) Since Xcode 10 doesn't support building 32-bit macOS binaries. commit b2a596d680415bf3bbcff7b10a9624f1045ad841 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 20:00:03 2018 -0400 Apply XM audit fixes from `xcode10` (#4986) Backport of https://github.com/xamarin/xamarin-macios/commit/b40230c09d557991b776de918b047442cd41533f commit 1082ce7a0964719466cbf218a7e8aa4d59c922f2 Author: Chris Hamons <[email protected]> Date: Mon Oct 15 10:43:17 2018 -0500 Add xtro test for [Deprecated] attributes and fix up usages (#4966) - https://github.com/xamarin/xamarin-macios/issues/4431 commit 8feb75335e112e37060fc1a6675f1c7a9f713a85 Merge: 0249138c449 e8b87b77d76 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 11:23:27 2018 -0400 Merge branch 'master' into mono-2018-08 commit e8b87b77d762088ec2e79e9c6c6ecfe5c850628e Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 11:15:20 2018 -0400 [tests][mmp] Convert old mmp calendar regression tests to unit tests (#4983) commit 250fd976a40af3eba0459c574217eb44093bcdb1 Merge: 904be25c258 5fbfacc2a8b Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 16:55:53 2018 +0200 Merge pull request #4111 from radical/msbuild-port [msbuild] Move from xbuild to msbuild commit 904be25c2580db03d40cb59e50e1563a1228f7e4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 16:51:46 2018 +0200 [xharness] Generate a system variant of dont link, and run it using the oldest mono version we support in Jenkins. Fixes #4121. (#4968) This is an addition to the tests we already run on older macOS bots (and as such will not execute on our PR bots). Fixes https://github.com/xamarin/xamarin-macios/issues/4121. commit 0249138c4492e95615b8bc57d7330d6de152b645 Merge: 25ae88f1482 d29ede71445 Author: Aleksey Kliger <[email protected]> Date: Mon Oct 15 10:50:38 2018 -0400 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit d29ede71445e75a5f4599e574250353434699d8c Author: Chris Hamons <[email protected]> Date: Mon Oct 15 09:12:56 2018 -0500 [mmp] Include libmono-system-native.a when embedding mono if it exists (#4980) commit 855e6827194e365faa47c3b37dc09427344a77e2 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 08:26:49 2018 -0400 [linker] Set flag when processing ParameterInfo.get_Name from XML files. Fixes #4978 (#4981) Commit https://github.com/xamarin/xamarin-macios/commit/996d90614b0a16fc01a943985885bde626ff7b1a fixed the use of XML files. However it did not set the flags so if it's used in both XML and in code then the dictionary is being added twice, which throws an exception like ``` error MT2102: Error processing the method 'System.Boolean SignalGo.Shared.Helpers.ReflectionHelper/d__0::MoveNext()' in the assembly 'SignalGo.Shared.dll': An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name() ``` reference: https://github.com/xamarin/xamarin-macios/issues/4978 commit 5fbfacc2a8b92b30ba69b1af3bb0ce05ff90955d Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 10:41:33 2018 +0200 [tests] Only restore packages.config, not the mtouch test project. Restoring the mtouch.csproj makes nuget try to restore Mono.Cecil.csproj as well, which doesn't work. So just restore what's listed in our packages.config instead. commit d13f66a497e146d133fa9b7e32439eee67f4b7ea Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 12 17:09:20 2018 -0400 [appkit] Add missing `[NullAllowed]` on `NSView.NextKeyView`. Fixes #4558 (#4979) Confirmed with headers. reference: https://github.com/xamarin/xamarin-macios/issues/4558 commit f4dbb6840ae6d908523ae69f5b5a01c75228fc88 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 12 11:56:57 2018 -0400 [foundation] Fix inlined 'NSUserActivity (IntentsAdditions)' to work if nothing else from Intents is used. Fixes #4894 (#4974) The selectors `suggestedInvocationPhrase` and `setSuggestedInvocationPhrase` needs Intents.framework to be loaded into memory. Otherwise an exception occurs: ``` Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[NSUserActivity setSuggestedInvocationPhrase:]: unrecognized selector sent to instance 0x19cb3f00 ``` When the linker is enabled there's no clue (e.g. namespaces from preserved types) that `Intents` is required to call the property. The fix is to provide an hint that will force the linker to keep a type (a small enum available in all platforms in this case) which tells `mtouch` (based on the type's namespace) to instruct the native linker (Apple's `ld`) to [weak]link the Intents.framework in the application executable. Note: other selections from the category works fine. reference: https://github.com/xamarin/xamarin-macios/issues/4894 commit 40288e42702d70c4e839793b035f79a4e0f3d539 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 23:08:59 2018 +0200 Bump mono. (#4971) Commit list for mono/mono: * mono/mono@2343f267067 [sdks] Add cmake toolchain file for LLVM MXE builds (#11056) * mono/mono@46b723d6b01 [2018-06] [sdks] Create archive targets for pre-building on CI (#10936) * mono/mono@ab3c897d685 Merge pull request #10997 from lewurm/2018-06-interp-fixes-for-native-type * mono/mono@914a62ab2e7 [interp] introduce float R4 stack type * mono/mono@62f23a83652 [interp] support ntype.ToString () * mono/mono@2c48c62e66f [interp] support nfloat.*Infinity * mono/mono@5c5a48b1449 [interp] support ntype.Equals () * mono/mono@13e412ee52a [interp] support ntype.CompareTo () * mono/mono@a576a799b16 [interp] fix op_implicit/op_explicit conversions for native types * mono/mono@1d9378713e6 [sdks/ios] Build libMonoPosixHelper for device architectures, so that zlib-helper.o is created. (#10921) (#10970) * mono/mono@6e48ad4f7b1 Merge pull request #10905 from monojenkins/backport-pr-10899-to-2018-06 * mono/mono@d050e323ed9 [runtime] Fix undefined pthread_main_np (#10930) * mono/mono@b549fa7f32a [Reflection] Fix issue with finding types in module using an asterisk as filter criteria * mono/mono@0dffbef2690 Bump corefx to disable more tests * mono/mono@6c46acfe697 [runtime] Disable stack guard for main thread on osx * mono/mono@46e0249d4cd [sdks] One more update to get XA PR builds working on Linux (#10855) * mono/mono@910395a05f6 corefx bump * mono/mono@2cdfb380a3e [2018-06] [System]: Make sure `HttpWebRequest` observes exceptions on timeout. #10488. (#10732) * mono/mono@aebef84fa2c [merp] Fix return value handling of posix_spawn (#10828) * mono/mono@59f2dbf28b0 [sdks] Debian Linux doesn't need to build MXE (#10819) * mono/mono@401bce867d3 Bump msbuild to track mono-2018-06 * mono/mono@65737564b04 Bump corefx * mono/mono@40d991c3257 [SDKS] Build host runtime with correct bitness (#10742) * mono/mono@1a71d5101f2 [crash] Fix summarize_frame assertion * mono/mono@8f36212ad3a [2018-06] Ignore some xunit tests for XA (non compatible with xunit 2.4) (#10721) * mono/mono@410792459a8 [corlib] Makes remoting test more robust (and disable it on mobile) * mono/mono@7dd65f79a53 [mono-api-html] Render something for fields with marshalling info. (#10698) * mono/mono@7c898271e73 [offset-tool] Error out when parsing fails. (#10696) * mono/mono@adbb8f72c8b [2018-06] Implement IEnumerable for ConditionalWeakTable (#10657) Diff: https://github.com/mono/mono/compare/1b18f39e46eac0c38438bc8cfdaef8a4bc8afc18...2343f2670679edf97b9480e0e08aad2593eab9f6 commit 7c1d23d41173fdaae8802f17087b58e2c389e841 Author: Chris Hamons <[email protected]> Date: Thu Oct 11 09:14:48 2018 -0500 Bind 2 high visibility PrintCore APIs (#4933) - https://github.com/xamarin/xamarin-macios/issues/4713 commit 4362842b68faa39062246898cf6d9e32dfe8e84a Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 12:25:47 2018 +0200 [mmptests] Update according to MSBuild changes. commit ffd85c94d0fe864fab76568acef5fc0502aa3088 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 08:53:44 2018 +0200 [generator] Throw PlatformNotSupportException in 32-bit mode for 64-bit-only iOS API. Fixes #4689. (#4954) Throw PlatformNotSupportedException for iOS API that was introduced in iOS 11+ in 32-bit mode, since that API is clearly not available in any 32-bit capable iOS version. This makes the 32-bit version of Xamarin.iOS.dll smaller (from 15.282.176 bytes to 14.575.616 bytes, ~700kb smaller - small enough that this makes the dontlink test work in 32-bit mode again on device). Fixes https://github.com/xamarin/xamarin-macios/issues/4689. commit 745c18cc7350233c282d3886ad4aa756c4f40094 Merge: 42645d52b0e f96faaa8142 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 07:30:35 2018 +0200 Merge remote-tracking branch 'origin/master' into msbuild-port commit f96faaa8142a36cfe32a23753c1de55b0f38368e Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 07:26:55 2018 +0200 [CoreFoundation] Refactor Dispatch code to take advantage of recent code improvements. (#4939) * [CoreFoundation] Make DispatchObject inherit from NativeObject to share more code. * [CoreFoundation] Replace calls to Check () with calls to GetCheckedHandle () to reuse more code. * [CoreFoundation] Simplify a bit by reusing code in base constructors. * [CoreFoundation] Use Handle instead of handle. * [CoreFoundation] Use InitializeHandle instead of setting the 'handle' field. * [CoreFoundation] Remove temporary 'handle' field. * [CoreFoundation] Remove needless 'unsafe' blocks. * Reintroduce DispatchObject.Check, since it's public API. commit 73fbb5385654fce6ff682fcb1c36e2936b50b786 Author: Ankit Jain <[email protected]> Date: Wed Oct 10 17:14:31 2018 -0700 [msbuild] Enable nuget package conflict resolution (#4945) Fixes https://github.com/mono/mono/issues/10602 . From the issue: ``` We need to enable this to support the system assemblies conflict resolution which we now rely on for any new packages to enhance developers experience and get us out of dependency on specific package versions. ``` commit 42645d52b0ef8c174d9caae6a2fcebf85e0ab214 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Jul 31 11:48:15 2018 +0200 [tests][msbuild] Seems like we need to copy System.Reflection.Metadata.dll locally, since the MSBuild dlls need it. commit acad87b7f663615eb7cf2cb34c7ab866d7f0b90e Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Jul 30 16:03:35 2018 +0200 Bump system mono to 5.16 to see if that gets an MSBuild with the fixes we need for this PR. commit 2e75028fc00367260b45e545b56b06f5d635a6b8 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Jul 30 16:00:55 2018 +0200 [tests] Set XamarinMacFrameworkRoot as an environment variable when running MSBuild tests. Set XamarinMacFrameworkRoot as an environment variable when running MSBuild tests, because we have command-line tools that needs it (bgen), and only passing it as a MSBuild parameter doesn't reach the environment (and any subprocesses). commit 06d74108af2529f878bcb036d3aa006d481a4643 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 17:40:29 2018 +0200 Remove debug spew. commit 50e05547aace7348dcd3c10bfbb379936f026506 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 17:40:29 2018 +0200 [xharness] Process Import elements, but don't add LogicalName to them. commit afcad3b4baa27df3dc5fba67bca1576ee8285e2f Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 11:41:23 2018 +0200 [xharness] Set the right variable to point msbuild to our locally built xbuild targets. commit 19d9a64d02c35ab84792b52ef81893f37e4abea4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 11:40:53 2018 +0200 [xharness] Don't add LogicalName beneath Import elements, it doesn't work with MSBuild. commit 516aab9143ce63c860bda0db772ca1179858827d Merge: 16e512af5db 9e31d07ecc0 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 09:43:14 2018 +0200 Merge remote-tracking branch 'origin/master' into msbuild-port commit 16e512af5dbe4465f4d93cb5bea7d5e22f7a19c1 Author: Ankit <[email protected]> Date: Mon May 21 19:42:30 2018 -0400 Revert "[msbuild] Add forward compatibility with symlinks support (#648)" This can be reverted as we have now moved to msbuild assemblies, and they already have this property. This reverts commit d45f52f1c1101d5821e00797ba30d21bcef8bc32. commit 526f009e6413f9e3146a8b87941864fc481d0e21 Author: Ankit <[email protected]> Date: Mon May 21 16:13:11 2018 -0400 [tests] Fix Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject msbuild has the path in it's original form (with windows slashes). ``` Test Failure : Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject #3 String lengths are both 42. Strings differ at index 3. Expected: "bin/iPhoneSimulator/Debug/MySingleView.app" But was: "bin\\iPhoneSimulator\\Debug\\MySingleView.app" --------------^ at Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject () [0x00054] in /Users/ankit/dev/xamarin-macios/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs:394 ``` commit b578593a15a9e49fe79f6b37d91b68ef5b57e8cf Author: Ankit <[email protected]> Date: Tue May 22 14:17:31 2018 -0400 [tests] Remove TI.UnifiedTestConfig.DiagnosticMSBuild .. as we always build with diagnostic verbosity now. And remove the parameter from `TI.BuildProject(..)`. commit 6278f108cfd1c1cd7b1d74319b55cfdf56801960 Author: Ankit <[email protected]> Date: Fri May 18 18:29:10 2018 -0400 [tests] Remove `bool useMSBuild` arg from ProjectTestHelpers .. as we always use msbuild now. commit 8f0df143a12b84d04a9326e6c8e5770c7de4498d Author: Ankit <[email protected]> Date: Fri May 18 18:23:29 2018 -0400 [tests] Remove project path at the end of errors/warnings before comparing - msbuild adds project path at the end of errors/warnings, which xbuild didn't do. This caused two tests to fail: Xamarin.MMP.Tests.MMPTests.MM0132("inline-runtime-arch") Xamarin.MMP.Tests.MMPTests.MM0132("foo") commit 26abe1badc06a58794c47a83aca2be996940719a Author: Ankit <[email protected]> Date: Thu May 17 17:38:11 2018 -0400 [tests] Fix tests that depend on tool output Lot of tests depend on comparing text in tool output. In xbuild, this was logged with `MessageImportance.Normal` but in msbuild the default is `MessageImportance.Low`. So, now the tool output doesn't show up in the normal verbosity log, causing the build to fail. Due to the number of tests depending on this, the default is changed to `diagnosticMSBuild = true`. A better way would probably (future) be to use a custom logger and get the output from the logging events. commit 6fc89ab660750261bb785185557c3a45e6ee4a76 Author: Ankit <[email protected]> Date: Thu May 17 16:12:38 2018 -0400 [tests] msbuild-mac Fix tests depending on msbuild specific strings Xamarin.MMP.Tests.MMPTests.BuildingSameBindingProject_TwoTimes_ShallNotInvokeMMPTwoTimes Xamarin.MMP.Tests.MMPTests.BuildingSameProject_TwoTimes_ShallNotInvokeMMPTwoTimes commit 9e53fd5345037c2f25eeb244b603d3a2f1844b49 Author: Ankit <[email protected]> Date: Thu May 17 15:23:39 2018 -0400 [tests] Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll msbuild just copies the output assembly from obj to bin. So, the test needs to `touch` the file in `obj` to trigger a rebuild. commit b883c4fe42bb5820b6496f7078a54ef46c416630 Author: Ankit <[email protected]> Date: Mon May 21 18:54:57 2018 -0400 [tests] Don't use WriteLine in TestHelpers.Loggers as msbuild adds that .. itself. commit 2805beaf63ef445d5657ffd50f8342a397b1cf5f Author: Ankit <[email protected]> Date: Mon May 21 18:53:24 2018 -0400 [tests] Ensure that the correct msbuild.dll.config gets picked up .. by setting `MSBUILD_EXE_PATH` to the corresponding `MSBuild.dll`. commit 18f71688456f7ff9d2d9b2f88d55575e8f385550 Author: Ankit <[email protected]> Date: Mon May 21 18:42:37 2018 -0400 [tests] Fix DetectAppManifest_ExecutableProject_NoPList `ProjectInstance.GetPropertyValue` returns empty string if the property doesn't exist. https://docs.microsoft.com/en-us/dotnet/api/microsoft.build.execution.projectinstance.getpropertyvalue?view=netframework-4.7.2#Microsoft_Build_Execution_ProjectInstance_GetPropertyValue_System_String_ commit a5670f270775459131a9a7099bd921d3457dcf84 Author: Ankit <[email protected]> Date: Thu May 17 13:43:11 2018 -0400 [msbuild] Port the tasks and tests to use new msbuild API Mono's msbuild does not have implementation assemblies for the older APIs (think `Microsoft.Build.Engine`), and so as part of the port to msbuild we switch over to using the newer APIs. With this commit, we are buildable again (with lots of test failures!). commit 256035e11dbb02cd8d149fb142c06db22fd5158b Author: Ankit <[email protected]> Date: Wed May 9 17:50:22 2018 -0400 [msbuild] Update xbuild assembly references to msbuild ones .. and switch from v4.0 to the new .Core assemblies. commit c7b051436fac0e1df362140ae14d29ca54e3f934 Author: Ankit <[email protected]> Date: Wed May 9 17:00:38 2018 -0400 [msbuild] Replace all invocations of xbuild with msbuild - And map xbuild properties to msbuild ones for fallback paths `XBUILD_FRAMEWORK_FOLDERS_PATH -> TargetFrameworkFallbackSearchPaths` `MSBuildExtensionsPath -> MSBuildExtensionsPathFallbackPathsOverride` Note: Earlier with xbuild, the order of lookup for (example) `MSBuildExtensionsPath` was: 1. The value of $(MSBuildExtensionsPath), which we were setting to the in-tree path 2. /Library/Frameworks/Mono.framework/External/xbuild on osx 3. $prefix/lib/mono/xbuild (default location) And with the above changes, it will be: 1. The value of $(MSBuildExtensionsPath), which we are no longer setting, so the default path : $prefix/lib/mono/xbuild 2. The in-tree path, via $(MSBuildExtensionsPathFallbackPathsOverride) 3. /Library/Frameworks/Mono.framework/External/xbuild on osx Since, XI/XM targets are used via fallback path `/Library/Frameworks/Mono.framework/External/xbuild`, the default location doesn't matter. And the order of the remaining two remains the same. The same thing applies to the target frameworks also.
commit 74f9bc241920f490e592db8fadf2e73c5c7f480c Author: Martin Baulig <[email protected]> Date: Tue Oct 30 21:20:17 2018 -0400 X commit a12313d252c0f7bb4e34f6c4948407b7b7f16fda Author: Martin Baulig <[email protected]> Date: Tue Oct 30 04:36:37 2018 -0400 X commit 87457eb75869e512b56f9aa9720742311eba1ae5 Author: Martin Baulig <[email protected]> Date: Tue Oct 30 03:57:20 2018 -0400 Revert "Y" This reverts commit db9d9c21b0e95dbc45734307b3f47f29ffcac87e. commit 3ef29495e367f1368b9aa454ff56d28f49b1c713 Merge: 09e27e0b 7425218c Author: Martin Baulig <[email protected]> Date: Tue Oct 30 02:56:33 2018 -0400 Merge remote-tracking branch 'origin/mono-2018-08' into work-tests commit 09e27e0be6abfc78314e4b1caf4699a9c8e83adf Author: Martin Baulig <[email protected]> Date: Tue Oct 30 02:51:56 2018 -0400 X commit b16c41a683d4127785ae8eaab96df661014907ea Author: Martin Baulig <[email protected]> Date: Tue Oct 30 02:48:32 2018 -0400 X commit 7425218c7843bb81bd29c832fcfb8fe43e8a21ee Merge: 82e0c73e c69c74b3 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 30 07:42:02 2018 +0100 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit aff13c113710fce1dadd6b6be1ace2d454e074f4 Author: Martin Baulig <[email protected]> Date: Tue Oct 30 02:39:23 2018 -0400 X commit bbe4bd250b50723c83e7a76e9319c71efeb731e5 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 23:20:41 2018 -0400 X commit f997e3834e1f376a1bf9164335cda9761b81a5f9 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 23:14:51 2018 -0400 X commit 899986095bd487b04020b022b61494ccf65388c9 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 23:10:35 2018 -0400 X commit fc03b562c37343f71d1b6e98fcd3a7ed3961d40b Author: Martin Baulig <[email protected]> Date: Mon Oct 29 23:07:42 2018 -0400 Y commit 46e10b36b40493e87dcaa1e30f887b6bda4eb786 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 14:17:05 2018 -0400 X commit aa4c058b0444f30fe71578421cd5369f48477b3e Author: Martin Baulig <[email protected]> Date: Mon Oct 29 12:24:01 2018 -0400 X commit db9d9c21b0e95dbc45734307b3f47f29ffcac87e Author: Martin Baulig <[email protected]> Date: Mon Oct 29 11:13:56 2018 -0400 Y commit c69c74b3d337f6c50f3d5ebd4d136c1cddef0091 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 29 16:09:30 2018 +0100 Clone files if possible whenever it makes sense. (#5049) Cloning is faster when supported, and it also saves disk space. commit 3c8421e3474288ed61bab126695afc07d7815e0d Author: Martin Baulig <[email protected]> Date: Mon Oct 29 10:24:31 2018 -0400 X commit 922781ac14fd037383aa25cfcedfcd6fd261f048 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 09:42:46 2018 -0400 X commit d8df5f2d4edb7ad9ce2684228a0811eec59423ea Author: Martin Baulig <[email protected]> Date: Mon Oct 29 09:24:12 2018 -0400 X commit 15849eeff820b4a8a760f9e2b18eeca9754df0f9 Author: Bernhard Urban <[email protected]> Date: Mon Oct 29 13:37:13 2018 +0100 Bump to mono:2018-06 (#5050) Commit list for mono/mono: * mono/mono@3ae42fc38d5 [2018-06] [aot] add unbox_arbitrary_trampoline for fullaot/interp mixed mode (#11362) * mono/mono@c4f7644e976 [tests] lower recursion depth of PerformNoPinAction (#11325) * mono/mono@adeaf3e0330 [SDKS, LLVM] Disable detection and use of libxml2 (#11341) * mono/mono@32d1539629f [runtime] Don't init classes in ves_icall_RuntimeTypeHandle_is_subclass_of Diff: https://github.com/mono/mono/compare/c0fe724379084be07e0e0f66a6340167ebab8bcf...3ae42fc38d5b24c4fa9a58cc84607dedd9c817dc commit 0e9b55baf5e3821dda544caa11eaeb36a0d5fc58 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 08:26:08 2018 -0400 X commit 5bfa22abab3e5161cbde84ca7c2ddb62fe60ca4a Author: Martin Baulig <[email protected]> Date: Mon Oct 29 07:49:25 2018 -0400 X commit abc8e1a044965eff894ed9757c913c6fd76172b4 Author: Martin Baulig <[email protected]> Date: Mon Oct 29 07:44:47 2018 -0400 X commit 612c01c9efcdad43e4fa8d233c01f50011d459c5 Author: Martin Baulig <[email protected]> Date: Sun Oct 28 21:05:49 2018 -0400 X commit 4203e9d619cf9910df2dd8ca66322edfa09e40e7 Author: Martin Baulig <[email protected]> Date: Sun Oct 28 17:57:20 2018 -0400 X commit ac927337c73a1702af822bbf261c1cdb83970c73 Author: Martin Baulig <[email protected]> Date: Sun Oct 28 17:56:01 2018 -0400 X commit 2a87084c585a198e6efa70befd71df8b9064d2ff Author: Martin Baulig <[email protected]> Date: Sun Oct 28 17:45:13 2018 -0400 X commit 28e2110840926a930045da602bb0bb4219a9efab Author: Martin Baulig <[email protected]> Date: Sun Oct 28 06:09:44 2018 -0400 X commit e594bdca97aafdc342acc55b9a0ffb49318607e8 Author: Martin Baulig <[email protected]> Date: Sun Oct 28 06:09:09 2018 -0400 X commit 73d865f46a3232e86eae890cd1ed73fc48500cdb Author: Martin Baulig <[email protected]> Date: Sat Oct 27 23:41:42 2018 -0400 X commit f78f4bfe1256f8cdb6ff6a8d835e5cbdd1fa9880 Author: Martin Baulig <[email protected]> Date: Sat Oct 27 23:36:32 2018 -0400 X commit fdc78e6267f6c0968e9acec52e0067f46a17ce2d Author: Martin Baulig <[email protected]> Date: Sat Oct 27 23:13:13 2018 -0400 X commit 9050a13b5f583960080c3f2d3169bbe991bd3ca8 Author: Martin Baulig <[email protected]> Date: Sat Oct 27 22:59:07 2018 -0400 X commit 34ac13733dd90e4dfb4b61bd56331eab34dde457 Author: Martin Baulig <[email protected]> Date: Sat Oct 27 22:44:00 2018 -0400 X commit 64e84ced55aef8fd0144dc0b50d5f14520e19f4f Author: Martin Baulig <[email protected]> Date: Sat Oct 27 22:35:03 2018 -0400 X commit baaed6fa8a4e5467246609add6428388f02992f7 Author: Martin Baulig <[email protected]> Date: Sat Oct 27 22:25:13 2018 -0400 X commit c9ce7855a106876aa4d78781260dbe919601d65e Author: Martin Baulig <[email protected]> Date: Sat Oct 27 22:21:06 2018 -0400 X commit c7c890c68535268ba5b9d0f11667721bac09710d Author: Martin Baulig <[email protected]> Date: Sat Oct 27 22:09:43 2018 -0400 X commit b39c9935979d3cf360a5d4751c4130de05c15b50 Author: Martin Baulig <[email protected]> Date: Sat Oct 27 21:31:47 2018 -0400 X commit 4f363e0e66c5456eeb47d8a749fcde227becaf40 Author: Martin Baulig <[email protected]> Date: Sat Oct 27 21:23:47 2018 -0400 X commit aa668710f753880901ca9b09a91b4bceba691d3e Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 23:22:03 2018 +0200 [iTunesLibrary] Fix typo & confusion. (#5046) I'm not sure why we have an entry in our list of frameworks claiming that iTunesLibrary was introduced in macOS 10.9, when we didn't have any bindings for the library back then. In any case we also have an entry for iTunesLibrary in our list of frameworks claiming that iTunesLibrary was introduced in macOS 10.14. I looked at some of Apple's documentation for the types in iTunesLibrary, and they all claim to be introduced in macOS 10.13 [2]. And to make matters even more interesting, Apple's documentation for the framework itself states the library is in /Library/Frameworks/iTunesLibrary.framework, and ships with iTunes 11.0+ [1] (which is introduced in 2012). Then I looked at a macOS 10.14 machine, and the framework is available at /System/Library/Frameworks/iTunesLibrary.framework, and /Library/Frameworks/iTunesLibrary.framework is just a symlink there (/System/Library/Frameworks/iTunesLibrary.framework does not exist on my macOS 10.13 machines, while /Library/Frameworks/iTunesLibrary.framework does). From this I conclude that the framework was converted into a system framework in macOS 10.14, and as such our claim that the framework was introduced in 10.14 is at least somewhat right. So treat iTunesLibrary as any other framework introduced in macOS 10.14, and remove our (duplicated) framework entry for 10.9 (for which we didn't have any bindings anyway). Also fix the path to the framework, I'm wonder how this got past our tests in the first place. [1] https://developer.apple.com/documentation/ituneslibrary: "... located at /Library/Frameworks/iTunesLibrary.framework ... The iTunes Library framework is available to users running iTunes v11.0 or above." [2] https://developer.apple.com/documentation/ituneslibrary/itlibrary?language=objc commit 917214828d9ca90771bae2be1d4174bf2e0a1561 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 26 13:34:08 2018 -0400 [xharness] Log the environment variables in the execution logs (#5045) While trying to debug an msbuild unit tests it was not possible to successfully copy/paste the command from the execution log and run it in a shell. It's not that hard to run xharness and figure it out - but the same can happen on bots (which could be harder). So that little change prints out the host and xharness changes to the environment variables to make copy/pasters life even lazier :) commit eaa6435e89ac146febc0ce5eca58b0696ba18338 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 26 13:18:05 2018 -0400 [msbuild] Avoid an NRE in BtouchTask when an invalid extra argument is provided (#5041) The task itself should not throw. An invalid argument is an error that should (and is) reported by `btouch` itself (and the task picks it up). This makes the error reporting much more useful and the way an exception is reported, from Windows, is also confusing ``` MessagingRemoteException: An error occured on client Build4110732 while executing a reply for topic xvs/Build/4.11.0.732/execute-task/ClassLibrary1/6e85b94002fBTouch ArgumentNullException: Value cannot be null. ``` Unit tests added. Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/656983 commit 82e0c73e0ba8567bd89989d0764727a204c18caa Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 17:15:00 2018 +0200 Bump minimum mono one that has 'mono_dangerous_add_raw_internal_call'. commit 93e72862f7e71efcc637a86ec9afaf6e4bf19318 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 26 15:23:36 2018 +0200 [mmptest] Less hardcoding. commit da852969401e518a3c76b641d0ae0a2d556a005c Author: Martin Baulig <[email protected]> Date: Fri Oct 26 05:36:39 2018 -0400 X commit 607dcf2b883056618e7c995d928f7a437ee116b6 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 05:31:33 2018 -0400 X commit 3b8c42d35d3841f25c53da9057daa19bf33f8f0d Author: Martin Baulig <[email protected]> Date: Fri Oct 26 05:16:06 2018 -0400 X commit bd047374ea905f0475b19a495f28028b6f33c7b7 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 05:09:31 2018 -0400 X commit 4bd1a297b2acf5de3a0a2ec667bae4a66d51387f Author: Martin Baulig <[email protected]> Date: Fri Oct 26 04:58:10 2018 -0400 X commit eaf9856bd32de3374b52bc954570e25d0fc4918a Author: Martin Baulig <[email protected]> Date: Fri Oct 26 04:23:18 2018 -0400 X commit 1129665f94369048be1f159c57c7cb7f650d3804 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 04:18:46 2018 -0400 X commit 4368b58b2bb80100f7fcc85c2909cb1618b040c8 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 02:19:45 2018 -0400 X commit 7449e51bbadf59857242d6ef800a6ec23c37d63b Author: Aleksey Kliger (λgeek) <[email protected]> Date: Fri Oct 26 00:46:28 2018 -0500 [2018-08][watchos] Use mono_dangerous_add_raw_internal_call for watchOS icalls (#5030) * Add optional mono_dangerous_add_raw_internal_call to exports.t4 * Use mono_dangerous_add_raw_internal_call on watchOS for icall registration Internal calls added with mono_dangerous_add_raw_internal_call run in GC Unsafe mode under cooperative and hybrid suspend, whereas internal calls added with mono_add_internal_call run in GC Safe mode since mono/mono@5756ba4b46f43d4f1c61c0d7dbbcf27a271f24ab in order for hybrid suspend to be a transparent replacement for preemptive suspend (the old default). The icalls in GC Unsafe mode have a responsibility not to block indefinitely without manually performing a thread state transition to GC Safe mode, and in return they avoid a thread state transition when the icall is invoked from a managed method. commit 3f1119050dcf6f536e9e07f80290fc10e9321a66 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 01:39:52 2018 -0400 X commit 48d4be63ddba1251780e9dc7efdaacad55160827 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 01:35:19 2018 -0400 X commit fb125c66d1208d2f4727cab5123d6bb824b31a22 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 01:09:52 2018 -0400 X commit 377d9288241758de93a10a9c7fbe3a79e203558d Author: Martin Baulig <[email protected]> Date: Fri Oct 26 00:38:50 2018 -0400 X commit 6d8da866ae1c9076f15b427bb413e4091d55a185 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 00:30:13 2018 -0400 X commit c5c3546b8e2d53ea06b4ff0f2deba6a98353110a Author: Martin Baulig <[email protected]> Date: Fri Oct 26 00:21:43 2018 -0400 X commit d55f564dacfa743b2624e6180cd4e2d700e3835a Author: Martin Baulig <[email protected]> Date: Fri Oct 26 00:20:27 2018 -0400 Revert "X" This reverts commit 9447ec7b2bca367a91893142decf3cfb8e861254. commit 9447ec7b2bca367a91893142decf3cfb8e861254 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 00:12:54 2018 -0400 X commit 05a6f58f932019d3721849dd2b4c3c19df129706 Author: Martin Baulig <[email protected]> Date: Fri Oct 26 00:04:13 2018 -0400 X commit dd74cc6ac79231162fadfff4e27aae66e2711aac Author: Martin Baulig <[email protected]> Date: Thu Oct 25 23:38:58 2018 -0400 X commit 3260d6d050ca86c296653781375124edf58627d0 Author: Martin Baulig <[email protected]> Date: Thu Oct 25 23:22:27 2018 -0400 X commit 47409b665c736148b9ff7eef26f64cbb50fd43ac Author: Martin Baulig <[email protected]> Date: Thu Oct 25 23:07:22 2018 -0400 X commit c24ea7f40c2de80ab220d76280fc101d3a42b3fa Author: Martin Baulig <[email protected]> Date: Thu Oct 25 22:53:39 2018 -0400 X commit 0c8fae1bb537160d69412fdaaaaa2b15cb370a87 Author: Martin Baulig <[email protected]> Date: Thu Oct 25 22:24:52 2018 -0400 X commit 00d298a49a045662d910e7b9d91036d1cbb597f5 Author: Martin Baulig <[email protected]> Date: Thu Oct 25 22:15:59 2018 -0400 X commit 299f2d1ff42b90d1825a860193ec9f0a541e9d35 Author: Martin Baulig <[email protected]> Date: Thu Oct 25 22:10:31 2018 -0400 X commit c7873b8a3734b6515bfe53196f2d42041cd92c01 Author: Martin Baulig <[email protected]> Date: Thu Oct 25 22:09:16 2018 -0400 X commit 0b27eef7dcd717e2ffe95fb2a38b8e2b0e61108f Author: Marek Safar <[email protected]> Date: Thu Oct 25 20:14:41 2018 +0200 Bump mono commit 12262c4cbafc595d27b8521826be5577dbba26f5 Author: Chris Hamons <[email protected]> Date: Thu Oct 25 11:56:23 2018 -0500 [macos] Add NSScrollView.AddFloatingSubview (#5040) - https://github.com/xamarin/xamarin-macios/issues/5039 commit 35df3a529452a6a1da13647a29f78ea05d274ddf Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:47:05 2018 +0200 [introspection] Fix a few issues found on iPad Air 2 with iOS 12. (#5034) * [introspection] MPSCnnBinaryKernel's kernelHeight/kernelWidth are missing on iOS too. * [introspection] CoreNFC is not even available on all devices. commit 2b85aaef56f66c7a2b7732f40ad92f21fd59e279 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:17:03 2018 +0200 [tests] Only build exactly what's neded for running XM tests on older bots. (#5038) Also build what we can in parallel (and manually building shared dependencies first). commit 36209e55e9818b91559836726e402b5b5891749a Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 12:31:26 2018 +0200 Remove 10.7 & 10.8 availability attributes, since they're redundant now. commit 2755245b914e611cc26a29f776b43f3765d4270d Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 17:04:56 2018 +0200 [tests] More min macOS version setting to 10.9. commit 3f5aceb4f6791c1354c889f7af426443208340db Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:50:21 2018 +0200 Bump guiunit to get updated min macOS version. Commit list for mono/guiunit: * mono/guiunit@9f67042 Bump min macOS version to 10.9. * mono/guiunit@0c3159a [Harness] Fix exit code of 0 being reported in case of exceptions in the harness * mono/guiunit@9b7497c Merge pull request #15 from mono/fix-more-warnings * mono/guiunit@a264470 Fix more warnings * mono/guiunit@dd094e7 Merge pull request #14 from mono/fix-warnings * mono/guiunit@b3afede Fix build warnings Diff: https://github.com/mono/guiunit/compare/1306b0d420bd69efcd8f1951c5c68dc7065ce9eb...9f67042498c8a3bc28888c7765a93af9b3475329 commit 04b7c94b17addb15bfb7b9bdea263521b708e61b Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:13:56 2018 +0200 Bump min mono version for XM system apps. Using a system mono < 5.18 results in a TypeLoadException: Could not resolve type with token 01000032 from typeref (expected class 'Mono.ISystemDependencyProvider' in assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089') commit cca50fe5000f9a094da17c89c9382e4a434a60fb Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 00:10:28 2018 +0200 Mono 2018-08 requires macOS 10.9+, so Xamarin.Mac must as well. commit 0ebc514467805f7baeb19404c85d43ca62c834ed Merge: 545c7bf4 d836c886 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 25 09:54:07 2018 +0200 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit d836c8867dc8282d45a1ce50d177e0a16419a2bd Author: Jeffrey Stedfast <[email protected]> Date: Wed Oct 24 20:11:17 2018 -0400 [msbuild] Always set IOSDebugOverWiFi to true for WatchOS apps/extensions (#5035) Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/712824 commit 51e7a477000cf73137e09e2bbbed76339747e943 Author: Vincent Dondain <[email protected]> Date: Wed Oct 24 20:10:55 2018 -0400 [coregraphics] Make MatrixOrder a normal enum instead of a nested enum (#5036) This enum might prove useful to other APIs in the future so move outside of `CGAffineTransform`. commit 74576fa5ca2095af44d6ebd2563fac98eb052b8f Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 23:58:14 2018 +0200 [Metal/SpriteKit] Fix availability attributes on a few API. (#5033) commit 9688c42e2d4d6191fbf0bd687cf46ebca9cc3370 Author: Bernhard Urban <[email protected]> Date: Wed Oct 24 21:24:22 2018 +0200 Bump mono and enable monotouch-test with interpreter (#5023) * Bump Mono 2018-06 Commit list for mono/mono: * mono/mono@c0fe7243790 [aot] Reenable recursion checking when initing shared got entries (#11295) * mono/mono@f55f7e53e36 [interp] use unsigned conversion for nuint (#11285) * mono/mono@5986920bdbc [2018-06] [arm64] Remove the limitation on the number of nullable arguments for dyncalls (#11266) * mono/mono@665a308c397 [WinForms] Propagate the flags from DrawTextInternal to MeasureTextInternal (#11251) * mono/mono@5ed4143b4f4 [2018-06] Crash Reporter V2 (#11162) * mono/mono@f0db92c2b6d [interp] Implement interpreter entry trampolines on amd64 (#10978) (#11165) * mono/mono@c1f1a7bfed9 [ci] Move OSX .pkg build to a separate bot pool * mono/mono@d80ced607b4 [aot] Ensure shared got entries are initialized before loading methods (#11225) * mono/mono@d07c626a748 [pkg] Add preinstall which removes existing Mono of the same version (#11209) * mono/mono@cda3acc57cd [sdks] futimens and futimes symbols are missing on anything earlier than 10.13 (#11174) * mono/mono@226e91a0644 Bump xunit-binaries Diff: https://github.com/mono/mono/compare/2343f2670679edf97b9480e0e08aad2593eab9f6...c0fe724379084be07e0e0f66a6340167ebab8bcf * [tests] enable monotouch-test with --interpreter on Jenkins commit 545c7bf4ba7a0967be3f0423ab2d502adbd79880 Merge: 63025fe8 0ddc3553 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 13:49:26 2018 +0200 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit 0ddc3553d3ef56163734c60b0f3e082a702a08c4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 07:54:50 2018 +0200 [Foundation] Fix compiler warnings in NSUrlSessionHandler. (#5032) Fix these warnings: src/Foundation/NSUrlSessionHandler.cs(71,57): warning CS3001: Argument type 'NSUrlSessionConfiguration' is not CLS-compliant src/Foundation/NSUrlSessionHandler.cs(89,14): warning CS0618: 'NSUrlSession.FromConfiguration(NSUrlSessionConfiguration, NSUrlSessionDelegate, NSOperationQueue)' is obsolete: 'Use the overload with a 'INSUrlSessionDelegate' parameter.' commit ad67a39104e2f509b2bacdfccf24b6c179baf133 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 24 07:52:58 2018 +0200 [runtime] Improve diagnostics/behavior in case of failure to contact the IDE when debugging. (#5029) When debugging watchOS apps on device, we wait forever [1] for a connection to be established to the IDE (iOS apps wait for only 2 seconds, but that's because the app will be killed after a while, which we avoid on watchOS by attaching the native debugger). Unfortunately our error handling was not quite optimal, which meant that if the connection to the IDE failed, we'd wait forever instead of launching the app without attaching the debugger. So improve this, by printing "Waiting for connection to the IDE..." messages while trying to connect, and printing detailed log messages if the connection attempt fails (as well as terminating the wait and launching the watch app). [1] In this case forever technically means "1 hour". commit 63025fe8e76c90e903129d8d74fca33bcf08e4ea Author: Martin Baulig <[email protected]> Date: Wed Oct 24 00:10:10 2018 -0400 [security]: `NATIVE_APPLE_CERTIFICATE` should now be defined on watchOS as well. commit d2a9a57bb9dfe76a87d160680bc4204a62cc2b1a Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 23 14:15:58 2018 -0400 [mtouch] Display a specific error is a .framework binary is invalid. Fixes #5028 (#5031) Instead of a generic `MT0000` caused by an exception reading the magic numbers of the binary framework file. This was caused be uncompressing an archive, with a symlink, into a file system that does not support symlinks (on Windows). ref: https://github.com/xamarin/xamarin-macios/issues/5028 commit b403da0d85c83558eabb326cef3621190059bf66 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 22 21:54:54 2018 -0400 [uikit] Preserve method associated with `updateSearchResultsForSearchController:`. Fixes #5024 (#5027) This method is called back from iOS (or tvOS) so there's no managed reference pointing to it. However we know that if it's (private inner) type is present it's because the callback (from native) is possible so we can preserve the method conditionally (to the type presence). https://github.com/xamarin/xamarin-macios/issues/5024 commit 74102bce2d67523df65f007d3a82f9a7baa86709 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 23 01:52:45 2018 +0200 Use the zlib-helper.o library built by mono, instead of building our own. (#5021) This also makes it possible to simplify/remove some of our build logic. commit 0cbf9609a1d93571aa827d4845872ef8a9cdb9ec Author: Jeffrey Stedfast <[email protected]> Date: Mon Oct 22 10:22:52 2018 -0400 Update mtouch-errors.md commit 502d811c438380a0d62805f9bf5bef2dfd227075 Author: Jeffrey Stedfast <[email protected]> Date: Mon Oct 22 10:20:57 2018 -0400 Update mtouch-errors.md commit d899d4fb707738fec5706d7e88351713b744c87a Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 22 16:14:26 2018 +0200 Remove bitrotted support for a separate mono submodule for watchOS support. (#5022) Unce upon a time we used a separate mono submodule for watchOS support, to make development of watchOS support easier (we referenced mono/master, to avoid backporting fixes for watchOS support through various release branches in mono). This only worked until our watchOS support became stable, since then we had to start using a stable version of mono for watchOS support. This means that our build support for using a separate mono clone for watchOS support is no longer needed; and in any case it's broken because of build changes done later. commit f87f3b88f8d7e26eb71a87340fd9be674a02e2e5 Author: Vincent Dondain <[email protected]> Date: Mon Oct 22 08:42:52 2018 -0400 [coregraphics] Add 'MatrixOrder' overload for Scale, Rotate and Translate (#5011) - Fixes #4698: CGAffineTransform.Scale does not work like Swift's .scaledBy(x:y:) (https://github.com/xamarin/xamarin-macios/issues/4698) - 'Scale' monotouch-test now covers the new overload for the new multiplication order. - Changed the Scale test's values so we have different values for 'x0' (it was always 0 before) and so it matches the test case from the bug report. * Same fix for Rotate and Translate commit c378d6baa5a00d26bf18baee3261b277b046fa9c Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 22 07:57:16 2018 +0200 Add a UserType flag for registered types, and use it to improve the performance for is_user_type. (#5017) * Refactor type map to have a separate flag field for each type instead of magic location in the array. Refactor the type map to have a separate flag field for each type instead of a magic location in the array. This simplifies some code, but also allows us to introduce more flags in the future (which becomes increasingly complex if the location in the array is to determine yet another value). This has neglible performance impacts. * Add a UserType flag for registered types, and use it to improve the performance for is_user_type. Reflection in the Objective-C runtime is apparently quite slow, so try to avoid it by computing the information we need for determining whether a particular Objective-C type represents a user type or not in the static registrar. We store this information in a flag for the type in question in the type map, and use a binary search to search the type map when needed. This provides a significant improvement, in particular in the dontlink scenario (probably because there are many more Objective-C types in the app, which made Objective-C reflection slow). In fact, it somehow made the dontlink scenario so fast that it's faster than the linkall scenario (which also improved, but not nearly as much). While quite inexplicable, it's a consistent result I've seen over multiple test runs. Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b Fix 1 refers to PR #5009. Fix 2 refers to PR #5013. Fix 3 refers to PR #5016. Fix 4 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | After fix 4 | Improvement from fix 3 to fix 4 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 172 ms | 148 ms | 24 ms (14%) | 329 ms (69%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 201 ms | 146 ms | 55 ms (27%) | 592 ms (80%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | After fix 4 | Improvement from fix 3 to fix 4 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 31 ms | 29 ms | 2 ms ( 6%) | 69 ms (70%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 43 ms | 28 ms | 15 ms (35%) | 169 ms (86%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 4 (the last) of multiple fixes for #4936. The total speed-up is 69-86% (3-7x faster). commit 097e3fc9ce44840bb21fd580e794791776ff7ec7 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 18:33:45 2018 +0200 [Class] Cache the IntPtr constructors in a dictionary. (#5016) Using reflection to find these constructors is computation-intensitive, so cache the results. Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b Fix 1 refers to PR #5009. Fix 2 refers to PR #5013. Fix 3 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | Improvement from fix 2 to fix 3 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 172 ms | 52 ms (23%) | 305 ms (64%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 201 ms | 176 ms (47%) | 537 ms (73%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | After fix 3 | Improvement from fix 2 to fix 3 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 31 ms | 11 ms (26%) | 67 ms (68%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 43 ms | 48 ms (53%) | 154 ms (78%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 3 of multiple fixes for #4936. commit 1279dd1eaa8943afe3fb397f0394bd18cb0b2fec Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 16:54:44 2018 +0200 Get the F# binaries from macios-binaries instead of building them every time. (#5015) It's still possible to build from source if desired. Also remove the fsharp submodule (it will be cloned manually only if building from source). commit ac8710815233bb3f19f86c8468fc891dbc23ee61 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 16:04:36 2018 +0200 [Class] Make looking up a System.Type given a native Class instance faster (#5013) Cache the Class -> System.Type lookup in an array. I could also have used a dictionary, but there are a couple of disadvantages compared to the array approach: * A dictionary would require a lock every time it's read/written to. The array is created at launch, and after that we don't have to care about thread safety because it's safe to do the slow lookup multiple times. * Its memory requirements would be higher with more elements (in particular since we'd not only need to store the Type instance, but also a boolean determining whether it's a user type or not). * It's ~1% slower (probably due to the lock). Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b Fix 1 refers to PR #5009. Fix 2 is this fix. iPad Air 2 ---------- | Configuration | Before | After fix 1 | After fix 2 | Improvement from fix 1 to fix 2 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 477 ms | 481 ms | 224 ms | 257 ms (53%) | 253 ms (53%) | | Release (dont link) | 738 ms | 656 ms | 377 ms | 279 ms (43%) | 459 ms (62%) | iPhone X -------- | Configuration | Before | After fix 1 | After fix 2 | Improvement from fix 1 to fix 2 | Cumulative improvement | | ------------------- | ------ | ----------: | -----------: | ------------------------------: | ---------------------: | | Release (link all) | 98 ms | 99 ms | 42 ms | 57 ms (58%) | 56 ms (57%) | | Release (dont link) | 197 ms | 153 ms | 91 ms | 62 ms (41%) | 106 ms (54%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 2 of multiple fixes for #4936. commit 900356c2e6effbf800de53b88a00f6175d53145a Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Oct 19 07:33:15 2018 +0200 [Class] Sort our array of Class -> token references so that we can do binary instead of linear searches in it. (#5009) Our type map has two sections: first come all the wrapper types, then all the custom types. This means we need to sort these two sections separately, since code elsewhere depends on this split in order to determine if a type is a custom type or not. We also need a minor modification in the array of skipped types, since it contained indexes into the type map, which won't be valid after is has been sorted. Instead store a type reference for the actual type in the array, and use that to search the type map for the corresponding Class. This is a little bit slower, but the results are cached in a dictionary, so it'll only happen once for each type. The performance is slightly slower when the type map has very few entries, but that is repaid many times over when the number of entries go up. Numbers ======= Test case: https://github.com/rolfbjarne/TestApp/commit/004283d7b628a29fcf711d98d8842bfd4ef4393b iPad Air 2 ---------- | Configuration | Before | After | Improvement | | ------------------- | ------ | ------ | ------------: | | Release (link all) | 477 ms | 481 ms | -4 ms (-0,8%) | | Release (dont link) | 738 ms | 656 ms | 82 ms (11%) | iPhone X -------- | Configuration | Before | After | Improvement | | ------------------- | ------ | ------ | ----------: | | Release (link all) | 98 ms | 99 ms | -1 ms (-1%) | | Release (dont link) | 197 ms | 153 ms | 44 ms (22%) | When linking all assemblies, the type map has 24 entries, and when not linking at all it has 2993 entries. This is part 1 of multiple fixes for #4936. commit 1ec90f0fe546e0f7700b92c05e1cbfed9c63831d Author: monojenkins <[email protected]> Date: Thu Oct 18 14:37:30 2018 -0400 [uikit] Duplicate bindings for 'UIScrollView.ContentOffset' to get correct availability information. Fixes #4893 (#5007) `ContentOffset` was moved to `UIFocusItemScrollableContainer` in iOS 12. Since it's a new protocol it's decorated as introduced in iOS 12 - but the API was actually already available for a long time. The _trick_ is to keep the original binding inside `UIScrollView` so it overrides the protocol and keeps the correct availability info. It requires adding `new` to bindings to avoid compiler warnings. reference: https://github.com/xamarin/xamarin-macios/issues/4893 --- from @rolfbjarne In iOS 12 this property was moved to a protocol, but that protocol's availability attributes limits it to iOS 12, not iOS 2 where this property was originally introduced. This is problematic, because it means we'll throw a PlatformNotSupportedException if someone tries to call it on 32-bit iOS. So put the property back on UIScrollView, so that the generated code ends up with the right availability attributes (and a correct 32-bit implementation). https://github.com/xamarin/xamarin-macios/pull/5004 commit 99641c7fcdecc69877ce4b986f26bb33d695d699 Author: Sebastien Pouliot <[email protected]> Date: Thu Oct 18 14:03:17 2018 -0400 [msbuild] Avoid possible NullReferenceException in ScnToolTaskBase. Fixes #4039 (#5006) `EnvironmentVariables` can be null (not empty) and cause the NRE in the attached test case. It's not clear that the extra logic is needed if we were using `xcrun`. There's an enhancement for this https://github.com/xamarin/xamarin-macios/issues/4634 reference: https://github.com/xamarin/xamarin-macios/issues/4039 commit 5ad55d603e1b5025428865cf1bdc68c01e3d0c58 Author: Sebastien Pouliot <[email protected]> Date: Thu Oct 18 11:16:24 2018 -0400 [tests][linkall] Add a check that the Makefile produced version number is 'legit'. Fixes #4859 (#5005) History: a marge conflict caused a version string to become "12.3." and this was found in the API diff much later. reference: https://github.com/xamarin/xamarin-macios/issues/4859 commit dca1f4793fbfb31f9142a714b1907053f1a29575 Author: Miguel de Icaza <[email protected]> Date: Thu Oct 18 06:31:39 2018 -0400 [UIKit] UIGestureRecognizer, support a way of unsubscribing without creating cycles (#4729) * [UIKit] UIGestureRecognizer, support a way of unsubscribing without creating cycles This now tracks all the uses of AddTarget with delegates by recording the Token/Selector pair and making `Dispose()` release all the linkage as well as providing an enumerator that can be used to get all the registered Action handlers - this can then be used with .First() and then passed to `RemoveTarget`. This addresses https://github.com/xamarin/xamarin-macios/issues/4190 This initial patch is here for discussion of the approach, want to review and test this before we merge. * Simplify code a little bit. * Add test. * [tests] Add an NSAutoreleasePool to make GestureRecognizerTest.NoStrongCycles happy on 32-bit. commit d2bcd4b7755734e849791bd2b190b1ab5fa0574b Author: Martin Baulig <[email protected]> Date: Wed Oct 17 15:12:39 2018 -0400 Bump Mono. commit ee1f7dc33d3519276758cb0e5c4d38f89f9936e7 Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 17 14:42:29 2018 +0200 [CoreFoundation] Implement missing dispatch API. Fixes #4606. (#4967) * [CoreFoundation] Add DispatchQueue.DispatchBarrierSync. * [CoreFoundation] Bind dispatch_queue_[set|get]_specific. * [CoreFoundation] Bind dispatch_queue_get_qos_class. * [CoreFoundation] Bind dispatch_queue_create_with_target. * Add tests. * Update xtro. * Add missing availability attributes. * [tests] Do a version check before testing new API. * Remove redundant code. commit 6751f278417ee3a8d9794ffefd2ec4ae4f6ce599 Author: Sebastien Pouliot <[email protected]> Date: Wed Oct 17 08:25:37 2018 -0400 [tests][mmp] Move TypeDescriptor (regression) tests to unit tests (#4994) Also move some tests to share more (now and in future commits) with iOS linker-related tests. Part of https://github.com/xamarin/xamarin-macios/issues/4975 commit 6044a74ae26e575b3725c67d86c612127c6c7a1d Author: Rolf Bjarne Kvinge <[email protected]> Date: Wed Oct 17 07:13:25 2018 +0200 Bump maccore to get fix for xamarin/maccore#1090. (#4989) * Bump maccore to get fix for xamarin/maccore#1090. Diff: https://github.com/xamarin/maccore/compare/46a12247947cdf546e0e07f4e7062ef2f5fcf515...b93ee3155d89e4414c4c228cf19bb89489b03bb1 * Bump maccore again. Commit list for xamarin/maccore: * xamarin/maccore@b35c3a8d76 Build mlaunch with msbuild instead of xbuild. (#1091) Diff: https://github.com/xamarin/maccore/compare/b93ee3155d89e4414c4c228cf19bb89489b03bb1...b35c3a8d7682c8482c7c749d7c1670b3d4bbed5c commit c30807113ce87ff48b4a271bfca2af16ea056d0b Author: Martin Baulig <[email protected]> Date: Tue Oct 16 15:18:33 2018 -0400 Revert "[monotouch-test] Disable X509Certificate(byte[]) tests on watchOS (#4942)" This reverts commit d003a9b918cdd340ec1b5ad931306e53a0d9a632. commit 8e72ea8330f4ad59544fb55a31e882d6bf254e1a Author: Bernhard Urban <[email protected]> Date: Tue Oct 16 20:05:19 2018 +0200 [tests] improve MonoWeakReferenceTest to avoid false pinning (#4961) Fixes an issue when executed with interpreter. Now, the test is closer to what we do in the runtime test: https://github.com/mono/mono/blob/831e73abcd5b9e10b4aaff7872b8d68e8e0f60fd/mono/tests/weak-fields.cs https://github.com/mono/mono/blob/831e73abcd5b9e10b4aaff7872b8d68e8e0f60fd/mono/mini/TestHelpers.cs commit e05d87da2ac1ec9a879602a694b6a89bde9b281c Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 16 13:58:08 2018 -0400 [mediaplayer] Fix NRE in MPNowPlayingInfoCenter wrt null dictionary entries. Fixes #4988 (#4992) The custom `TryGetValue` could return `true` and an `out null`. That was fine for many items, e.g. converting `null` to `NSString` or `NSDate` is fine. However this cause an `NullReferenceException` when trying to create arrays (thru `NSArray`) or converting `NSNumber` into value types. The _normal_ `TryGetValue` behavior fixes this - and avoid extraneous (and non-required) conversions of `null` items. ref: https://github.com/xamarin/xamarin-macios/issues/4988 commit e73b1a981e6797eda85d082a4a4a962dbcc4dd77 Author: Sebastien Pouliot <[email protected]> Date: Tue Oct 16 13:57:25 2018 -0400 [mac] Fix logic to include branch name in packages. Fixes #4990 (#4991) so it can be reported inside VSM. The logic was not updated (for XM) with the simpler one we can use on the internal Jenkins bots. ref: https://github.com/xamarin/xamarin-macios/issues/4990 commit 60b06b9c982c5c8e9c13f44d43a5d5f21d5b2464 Author: Bernhard Urban <[email protected]> Date: Tue Oct 16 17:25:35 2018 +0200 [tests] make Symbols.FunctionNames aware of interpreter (#4973) commit 13b264795580085fbeebc65e0cc5362f7891655b Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Oct 16 16:55:11 2018 +0200 Fix the llvm32 build by using Xcode 9.4. (#4985) Since Xcode 10 doesn't support building 32-bit macOS binaries. commit b2a596d680415bf3bbcff7b10a9624f1045ad841 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 20:00:03 2018 -0400 Apply XM audit fixes from `xcode10` (#4986) Backport of https://github.com/xamarin/xamarin-macios/commit/b40230c09d557991b776de918b047442cd41533f commit 1082ce7a0964719466cbf218a7e8aa4d59c922f2 Author: Chris Hamons <[email protected]> Date: Mon Oct 15 10:43:17 2018 -0500 Add xtro test for [Deprecated] attributes and fix up usages (#4966) - https://github.com/xamarin/xamarin-macios/issues/4431 commit 8feb75335e112e37060fc1a6675f1c7a9f713a85 Merge: 0249138c e8b87b77 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 11:23:27 2018 -0400 Merge branch 'master' into mono-2018-08 commit e8b87b77d762088ec2e79e9c6c6ecfe5c850628e Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 11:15:20 2018 -0400 [tests][mmp] Convert old mmp calendar regression tests to unit tests (#4983) commit 250fd976a40af3eba0459c574217eb44093bcdb1 Merge: 904be25c 5fbfacc2 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 16:55:53 2018 +0200 Merge pull request #4111 from radical/msbuild-port [msbuild] Move from xbuild to msbuild commit 904be25c2580db03d40cb59e50e1563a1228f7e4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 16:51:46 2018 +0200 [xharness] Generate a system variant of dont link, and run it using the oldest mono version we support in Jenkins. Fixes #4121. (#4968) This is an addition to the tests we already run on older macOS bots (and as such will not execute on our PR bots). Fixes https://github.com/xamarin/xamarin-macios/issues/4121. commit 0249138c4492e95615b8bc57d7330d6de152b645 Merge: 25ae88f1 d29ede71 Author: Aleksey Kliger <[email protected]> Date: Mon Oct 15 10:50:38 2018 -0400 Merge remote-tracking branch 'origin/master' into mono-2018-08 commit d29ede71445e75a5f4599e574250353434699d8c Author: Chris Hamons <[email protected]> Date: Mon Oct 15 09:12:56 2018 -0500 [mmp] Include libmono-system-native.a when embedding mono if it exists (#4980) commit 855e6827194e365faa47c3b37dc09427344a77e2 Author: Sebastien Pouliot <[email protected]> Date: Mon Oct 15 08:26:49 2018 -0400 [linker] Set flag when processing ParameterInfo.get_Name from XML files. Fixes #4978 (#4981) Commit https://github.com/xamarin/xamarin-macios/commit/996d90614b0a16fc01a943985885bde626ff7b1a fixed the use of XML files. However it did not set the flags so if it's used in both XML and in code then the dictionary is being added twice, which throws an exception like ``` error MT2102: Error processing the method 'System.Boolean SignalGo.Shared.Helpers.ReflectionHelper/d__0::MoveNext()' in the assembly 'SignalGo.Shared.dll': An item with the same key has already been added. Key: System.String System.Reflection.ParameterInfo::get_Name() ``` reference: https://github.com/xamarin/xamarin-macios/issues/4978 commit 5fbfacc2a8b92b30ba69b1af3bb0ce05ff90955d Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Oct 15 10:41:33 2018 +0200 [tests] Only restore packages.config, not the mtouch test project. Restoring the mtouch.csproj makes nuget try to restore Mono.Cecil.csproj as well, which doesn't work. So just restore what's listed in our packages.config instead. commit d13f66a497e146d133fa9b7e32439eee67f4b7ea Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 12 17:09:20 2018 -0400 [appkit] Add missing `[NullAllowed]` on `NSView.NextKeyView`. Fixes #4558 (#4979) Confirmed with headers. reference: https://github.com/xamarin/xamarin-macios/issues/4558 commit f4dbb6840ae6d908523ae69f5b5a01c75228fc88 Author: Sebastien Pouliot <[email protected]> Date: Fri Oct 12 11:56:57 2018 -0400 [foundation] Fix inlined 'NSUserActivity (IntentsAdditions)' to work if nothing else from Intents is used. Fixes #4894 (#4974) The selectors `suggestedInvocationPhrase` and `setSuggestedInvocationPhrase` needs Intents.framework to be loaded into memory. Otherwise an exception occurs: ``` Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[NSUserActivity setSuggestedInvocationPhrase:]: unrecognized selector sent to instance 0x19cb3f00 ``` When the linker is enabled there's no clue (e.g. namespaces from preserved types) that `Intents` is required to call the property. The fix is to provide an hint that will force the linker to keep a type (a small enum available in all platforms in this case) which tells `mtouch` (based on the type's namespace) to instruct the native linker (Apple's `ld`) to [weak]link the Intents.framework in the application executable. Note: other selections from the category works fine. reference: https://github.com/xamarin/xamarin-macios/issues/4894 commit 40288e42702d70c4e839793b035f79a4e0f3d539 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 23:08:59 2018 +0200 Bump mono. (#4971) Commit list for mono/mono: * mono/mono@2343f267067 [sdks] Add cmake toolchain file for LLVM MXE builds (#11056) * mono/mono@46b723d6b01 [2018-06] [sdks] Create archive targets for pre-building on CI (#10936) * mono/mono@ab3c897d685 Merge pull request #10997 from lewurm/2018-06-interp-fixes-for-native-type * mono/mono@914a62ab2e7 [interp] introduce float R4 stack type * mono/mono@62f23a83652 [interp] support ntype.ToString () * mono/mono@2c48c62e66f [interp] support nfloat.*Infinity * mono/mono@5c5a48b1449 [interp] support ntype.Equals () * mono/mono@13e412ee52a [interp] support ntype.CompareTo () * mono/mono@a576a799b16 [interp] fix op_implicit/op_explicit conversions for native types * mono/mono@1d9378713e6 [sdks/ios] Build libMonoPosixHelper for device architectures, so that zlib-helper.o is created. (#10921) (#10970) * mono/mono@6e48ad4f7b1 Merge pull request #10905 from monojenkins/backport-pr-10899-to-2018-06 * mono/mono@d050e323ed9 [runtime] Fix undefined pthread_main_np (#10930) * mono/mono@b549fa7f32a [Reflection] Fix issue with finding types in module using an asterisk as filter criteria * mono/mono@0dffbef2690 Bump corefx to disable more tests * mono/mono@6c46acfe697 [runtime] Disable stack guard for main thread on osx * mono/mono@46e0249d4cd [sdks] One more update to get XA PR builds working on Linux (#10855) * mono/mono@910395a05f6 corefx bump * mono/mono@2cdfb380a3e [2018-06] [System]: Make sure `HttpWebRequest` observes exceptions on timeout. #10488. (#10732) * mono/mono@aebef84fa2c [merp] Fix return value handling of posix_spawn (#10828) * mono/mono@59f2dbf28b0 [sdks] Debian Linux doesn't need to build MXE (#10819) * mono/mono@401bce867d3 Bump msbuild to track mono-2018-06 * mono/mono@65737564b04 Bump corefx * mono/mono@40d991c3257 [SDKS] Build host runtime with correct bitness (#10742) * mono/mono@1a71d5101f2 [crash] Fix summarize_frame assertion * mono/mono@8f36212ad3a [2018-06] Ignore some xunit tests for XA (non compatible with xunit 2.4) (#10721) * mono/mono@410792459a8 [corlib] Makes remoting test more robust (and disable it on mobile) * mono/mono@7dd65f79a53 [mono-api-html] Render something for fields with marshalling info. (#10698) * mono/mono@7c898271e73 [offset-tool] Error out when parsing fails. (#10696) * mono/mono@adbb8f72c8b [2018-06] Implement IEnumerable for ConditionalWeakTable (#10657) Diff: https://github.com/mono/mono/compare/1b18f39e46eac0c38438bc8cfdaef8a4bc8afc18...2343f2670679edf97b9480e0e08aad2593eab9f6 commit 7c1d23d41173fdaae8802f17087b58e2c389e841 Author: Chris Hamons <[email protected]> Date: Thu Oct 11 09:14:48 2018 -0500 Bind 2 high visibility PrintCore APIs (#4933) - https://github.com/xamarin/xamarin-macios/issues/4713 commit 4362842b68faa39062246898cf6d9e32dfe8e84a Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 12:25:47 2018 +0200 [mmptests] Update according to MSBuild changes. commit ffd85c94d0fe864fab76568acef5fc0502aa3088 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 08:53:44 2018 +0200 [generator] Throw PlatformNotSupportException in 32-bit mode for 64-bit-only iOS API. Fixes #4689. (#4954) Throw PlatformNotSupportedException for iOS API that was introduced in iOS 11+ in 32-bit mode, since that API is clearly not available in any 32-bit capable iOS version. This makes the 32-bit version of Xamarin.iOS.dll smaller (from 15.282.176 bytes to 14.575.616 bytes, ~700kb smaller - small enough that this makes the dontlink test work in 32-bit mode again on device). Fixes https://github.com/xamarin/xamarin-macios/issues/4689. commit 745c18cc7350233c282d3886ad4aa756c4f40094 Merge: 42645d52 f96faaa8 Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 07:30:35 2018 +0200 Merge remote-tracking branch 'origin/master' into msbuild-port commit f96faaa8142a36cfe32a23753c1de55b0f38368e Author: Rolf Bjarne Kvinge <[email protected]> Date: Thu Oct 11 07:26:55 2018 +0200 [CoreFoundation] Refactor Dispatch code to take advantage of recent code improvements. (#4939) * [CoreFoundation] Make DispatchObject inherit from NativeObject to share more code. * [CoreFoundation] Replace calls to Check () with calls to GetCheckedHandle () to reuse more code. * [CoreFoundation] Simplify a bit by reusing code in base constructors. * [CoreFoundation] Use Handle instead of handle. * [CoreFoundation] Use InitializeHandle instead of setting the 'handle' field. * [CoreFoundation] Remove temporary 'handle' field. * [CoreFoundation] Remove needless 'unsafe' blocks. * Reintroduce DispatchObject.Check, since it's public API. commit 73fbb5385654fce6ff682fcb1c36e2936b50b786 Author: Ankit Jain <[email protected]> Date: Wed Oct 10 17:14:31 2018 -0700 [msbuild] Enable nuget package conflict resolution (#4945) Fixes https://github.com/mono/mono/issues/10602 . From the issue: ``` We need to enable this to support the system assemblies conflict resolution which we now rely on for any new packages to enhance developers experience and get us out of dependency on specific package versions. ``` commit 42645d52b0ef8c174d9caae6a2fcebf85e0ab214 Author: Rolf Bjarne Kvinge <[email protected]> Date: Tue Jul 31 11:48:15 2018 +0200 [tests][msbuild] Seems like we need to copy System.Reflection.Metadata.dll locally, since the MSBuild dlls need it. commit acad87b7f663615eb7cf2cb34c7ab866d7f0b90e Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Jul 30 16:03:35 2018 +0200 Bump system mono to 5.16 to see if that gets an MSBuild with the fixes we need for this PR. commit 2e75028fc00367260b45e545b56b06f5d635a6b8 Author: Rolf Bjarne Kvinge <[email protected]> Date: Mon Jul 30 16:00:55 2018 +0200 [tests] Set XamarinMacFrameworkRoot as an environment variable when running MSBuild tests. Set XamarinMacFrameworkRoot as an environment variable when running MSBuild tests, because we have command-line tools that needs it (bgen), and only passing it as a MSBuild parameter doesn't reach the environment (and any subprocesses). commit 06d74108af2529f878bcb036d3aa006d481a4643 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 17:40:29 2018 +0200 Remove debug spew. commit 50e05547aace7348dcd3c10bfbb379936f026506 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 17:40:29 2018 +0200 [xharness] Process Import elements, but don't add LogicalName to them. commit afcad3b4baa27df3dc5fba67bca1576ee8285e2f Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 11:41:23 2018 +0200 [xharness] Set the right variable to point msbuild to our locally built xbuild targets. commit 19d9a64d02c35ab84792b52ef81893f37e4abea4 Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 11:40:53 2018 +0200 [xharness] Don't add LogicalName beneath Import elements, it doesn't work with MSBuild. commit 516aab9143ce63c860bda0db772ca1179858827d Merge: 16e512af 9e31d07e Author: Rolf Bjarne Kvinge <[email protected]> Date: Fri Jul 27 09:43:14 2018 +0200 Merge remote-tracking branch 'origin/master' into msbuild-port commit 16e512af5dbe4465f4d93cb5bea7d5e22f7a19c1 Author: Ankit <[email protected]> Date: Mon May 21 19:42:30 2018 -0400 Revert "[msbuild] Add forward compatibility with symlinks support (#648)" This can be reverted as we have now moved to msbuild assemblies, and they already have this property. This reverts commit d45f52f1c1101d5821e00797ba30d21bcef8bc32. commit 526f009e6413f9e3146a8b87941864fc481d0e21 Author: Ankit <[email protected]> Date: Mon May 21 16:13:11 2018 -0400 [tests] Fix Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject msbuild has the path in it's original form (with windows slashes). ``` Test Failure : Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject #3 String lengths are both 42. Strings differ at index 3. Expected: "bin/iPhoneSimulator/Debug/MySingleView.app" But was: "bin\\iPhoneSimulator\\Debug\\MySingleView.app" --------------^ at Xamarin.iOS.Tasks.TargetTests.GenerateBundleName_ExecutableProject () [0x00054] in /Users/ankit/dev/xamarin-macios/msbuild/tests/Xamarin.iOS.Tasks.Tests/TargetTests/TargetTests.cs:394 ``` commit b578593a15a9e49fe79f6b37d91b68ef5b57e8cf Author: Ankit <[email protected]> Date: Tue May 22 14:17:31 2018 -0400 [tests] Remove TI.UnifiedTestConfig.DiagnosticMSBuild .. as we always build with diagnostic verbosity now. And remove the parameter from `TI.BuildProject(..)`. commit 6278f108cfd1c1cd7b1d74319b55cfdf56801960 Author: Ankit <[email protected]> Date: Fri May 18 18:29:10 2018 -0400 [tests] Remove `bool useMSBuild` arg from ProjectTestHelpers .. as we always use msbuild now. commit 8f0df143a12b84d04a9326e6c8e5770c7de4498d Author: Ankit <[email protected]> Date: Fri May 18 18:23:29 2018 -0400 [tests] Remove project path at the end of errors/warnings before comparing - msbuild adds project path at the end of errors/warnings, which xbuild didn't do. This caused two tests to fail: Xamarin.MMP.Tests.MMPTests.MM0132("inline-runtime-arch") Xamarin.MMP.Tests.MMPTests.MM0132("foo") commit 26abe1badc06a58794c47a83aca2be996940719a Author: Ankit <[email protected]> Date: Thu May 17 17:38:11 2018 -0400 [tests] Fix tests that depend on tool output Lot of tests depend on comparing text in tool output. In xbuild, this was logged with `MessageImportance.Normal` but in msbuild the default is `MessageImportance.Low`. So, now the tool output doesn't show up in the normal verbosity log, causing the build to fail. Due to the number of tests depending on this, the default is changed to `diagnosticMSBuild = true`. A better way would probably (future) be to use a custom logger and get the output from the logging events. commit 6fc89ab660750261bb785185557c3a45e6ee4a76 Author: Ankit <[email protected]> Date: Thu May 17 16:12:38 2018 -0400 [tests] msbuild-mac Fix tests depending on msbuild specific strings Xamarin.MMP.Tests.MMPTests.BuildingSameBindingProject_TwoTimes_ShallNotInvokeMMPTwoTimes Xamarin.MMP.Tests.MMPTests.BuildingSameProject_TwoTimes_ShallNotInvokeMMPTwoTimes commit 9e53fd5345037c2f25eeb244b603d3a2f1844b49 Author: Ankit <[email protected]> Date: Thu May 17 15:23:39 2018 -0400 [tests] Xamarin.iOS.Tasks.TargetTests.RebuildExecutable_TouchLibraryDll msbuild just copies the output assembly from obj to bin. So, the test needs to `touch` the file in `obj` to trigger a rebuild. commit b883c4fe42bb5820b6496f7078a54ef46c416630 Author: Ankit <[email protected]> Date: Mon May 21 18:54:57 2018 -0400 [tests] Don't use WriteLine in TestHelpers.Loggers as msbuild adds that .. itself. commit 2805beaf63ef445d5657ffd50f8342a397b1cf5f Author: Ankit <[email protected]> Date: Mon May 21 18:53:24 2018 -0400 [tests] Ensure that the correct msbuild.dll.config gets picked up .. by setting `MSBUILD_EXE_PATH` to the corresponding `MSBuild.dll`. commit 18f71688456f7ff9d2d9b2f88d55575e8f385550 Author: Ankit <[email protected]> Date: Mon May 21 18:42:37 2018 -0400 [tests] Fix DetectAppManifest_ExecutableProject_NoPList `ProjectInstance.GetPropertyValue` returns empty string if the property doesn't exist. https://docs.microsoft.com/en-us/dotnet/api/microsoft.build.execution.projectinstance.getpropertyvalue?view=netframework-4.7.2#Microsoft_Build_Execution_ProjectInstance_GetPropertyValue_System_String_ commit a5670f270775459131a9a7099bd921d3457dcf84 Author: Ankit <[email protected]> Date: Thu May 17 13:43:11 2018 -0400 [msbuild] Port the tasks and tests to use new msbuild API Mono's msbuild does not have implementation assemblies for the older APIs (think `Microsoft.Build.Engine`), and so as part of the port to msbuild we switch over to using the newer APIs. With this commit, we are buildable again (with lots of test failures!). commit 256035e11dbb02cd8d149fb142c06db22fd5158b Author: Ankit <[email protected]> Date: Wed May 9 17:50:22 2018 -0400 [msbuild] Update xbuild assembly references to msbuild ones .. and switch from v4.0 to the new .Core assemblies. commit c7b051436fac0e1df362140ae14d29ca54e3f934 Author: Ankit <[email protected]> Date: Wed May 9 17:00:38 2018 -0400 [msbuild] Replace all invocations of xbuild with msbuild - And map xbuild properties to msbuild ones for fallback paths `XBUILD_FRAMEWORK_FOLDERS_PATH -> TargetFrameworkFallbackSearchPaths` `MSBuildExtensionsPath -> MSBuildExtensionsPathFallbackPathsOverride` Note: Earlier with xbuild, the order of lookup for (example) `MSBuildExtensionsPath` was: 1. The value of $(MSBuildExtensionsPath), which we were setting to the in-tree path 2. /Library/Frameworks/Mono.framework/External/xbuild on osx 3. $prefix/lib/mono/xbuild (default location) And with the above changes, it will be: 1. The value of $(MSBuildExtensionsPath), which we are no longer setting, so the default path : $prefix/lib/mono/xbuild 2. The in-tree path, via $(MSBuildExtensionsPathFallbackPathsOverride) 3. /Library/Frameworks/Mono.framework/External/xbuild on osx Since, XI/XM targets are used via fallback path `/Library/Frameworks/Mono.framework/External/xbuild`, the default location doesn't matter. And the order of the remaining two remains the same. The same thing applies to the target frameworks also.
Not sure what the original indent of this test case was. Maybe we need to do something else.