A few general categories of fixes:
* Sprinkle lots of quotes everywhere.
* Don't use environment variables in the format string to printf, instead pass them as arguments.
* Don't use backticks to execute commands (it's deprecated), use the new "$(...)" syntax instead.
* [ObjCRuntime] Improve MarkDirty speed by caching the IsCustomType value in our flags byte.
This makes calling MarkDirty for custom types ~60x times faster.
Reference: https://xamarinhq.slack.com/archives/C03CCJHCF/p1527194568000197
* We only have one bit left to use for IsCustomType.
* Fix build and make enums between native and managed match.
- https://github.com/xamarin/xamarin-macios/issues/4067
- Broken by 371a1d54e7
- The refactor into Xamarin.Mac.TargetFrameworkFix.targets was incorrect, and the ItemGroup needed
to be run after GetReferenceAssemblyPaths, not after FixDesignTimeFacades.
- This would have been caught by existing tests, but they were not enabled due to msbuild redirect issue.
We don't need the 'map' variable until after we've checked if the dynamic
registrar is supported, which means we can fetch it at that point too.
This improves the scenario when the dynamic registrar is not supported, since
in that case all subsequent code will be optimized away.
Avoid using a static library initializer by using a constant recursive mutex
initializer.
Static initializers are bad because there's a significant overhead to executing them.
Fixes https://github.com/xamarin/xamarin-macios/issues/4087
SCNRenderingOptions.RenderingApi is using the wrong key to
set its dictionary container value that should come from
SCNRenderingOptionsKeys.RenderingApiKey.
This will make xharness not listen for tests to connect forever, decrease the
number of threads needed, and as well not print loads of aborted messages when
xharness exits:
SimpleTcpListener: an exception occurred in processing thread: System.Threading.ThreadAbortException: Thread was being aborted.
at xharness.SimpleTcpListener.Start () [0x0009d] in /Users/XamarinQA/vsts/_work/1/s/tests/xharness/SimpleTcpListener.cs:44
at xharness.SimpleListener.<StartAsync>b__41_0 () [0x00002] in /Users/XamarinQA/vsts/_work/1/s/tests/xharness/SimpleListener.cs:93
Hopefully fixes an issue with monotouch-test randomly running into permission
dialogs because xharness failed to fix TCC.db because it gave up too early.
* [mtouch/mmp] Handle invalid types in BlockProxy attributes better. Fixes#4072.
BlockProxy attributes may have types we don't expect, so handle those cases
gracefully by showing a warning when we encounter them:
testApp.cs(11): warning MT4175: The parameter 'completionHandler' in the method 'Issue4072Session.CreateDataTask(Foundation.NSUrl,Foundation.NSUrlSessionResponse)' has an invalid BlockProxy attribute (the type passed to the attribute does not have a 'Create' method).
instead of an ugly MT0000:
MTOUCH : error MT0000: Unexpected error - Please file a bug report at http://bugzilla.xamarin.com
System.InvalidOperationException: Sequence contains no matching element
at System.Linq.Enumerable.First[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] predicate) [0x00012] in /Users/builder/jenkins/workspace/build-package-osx-mono/2017-12/external/bockbuild/builds/mono-x64/external/corefx/src/System.Linq/src/System/Linq/First.cs:30
at Registrar.StaticRegistrar.GetBlockProxyAttributeMethod (Mono.Cecil.MethodDefinition method, System.Int32 parameter) [0x00020] in /Users/builder/data/lanes/5944/7e782c1e/source/xamarin-macios/tools/common/StaticRegistrar.cs:4121
at Registrar.StaticRegistrar.GetBlockWrapperCreator (Registrar.Registrar+ObjCMethod obj_method, System.Int32 parameter) [0x00011] in /Users/builder/data/lanes/5944/7e782c1e/source/xamarin-macios/tools/common/StaticRegistrar.cs:4065
at Registrar.StaticRegistrar.Specialize (Registrar.AutoIndentStringBuilder sb, Registrar.Registrar+ObjCMethod method, System.Collections.Generic.List`1[T] exceptions) [0x0216b] in /Users/builder/data/lanes/5944/7e782c1e/source/xamarin-macios/tools/common/StaticRegistrar.cs:3683
at Registrar.StaticRegistrar.Specialize (Registrar.AutoIndentStringBuilder sb) [0x00f1e] in /Users/builder/data/lanes/5944/7e782c1e/source/xamarin-macios/tools/common/StaticRegistrar.cs:2963
Fixes#4072.
* [docs] Improve text for MT4175.
* [registrar] Comment some code.
Put the shell code for resetting README dependencies in a shell script instead
of embedded in the Makefile so that it's easier to write, read and debug.
Also add support for switching between different remotes for README
dependencies (this means that `make reset-X` will now work fine if `X`'s
remote changed).
A side effect is that all README dependencies will now end up with a 'xamarin'
remote in addition to the 'origin' remote, but this should have no other
effect.
* [runtime] build interp-, icalltable- and ilgen libraries so they can be consumed in interpreter configuration
* [mtouch] add --interpreter configuration support
* [xharness] Add support for removing defines from cloned project files.
* [xharness] Run monotouch-test, mscorlib and mini tests with the interpreter too.
They're ignored for now, which means we won't run them on the bots.
* [mtouch] We're using dlsym when using the interpreter.
* [xharness] enable mini regression tests with interpreter on CI
Simplify Makefile:
* No need for a template when it's only expanded once: just expand it manually.
* Remove useless pdb target that just touches the pdb.
* Don't use a pattern rule for the tvOS version of MonoTouch.Dialog-1.dll. I'm
not sure why, but it seems to confuse make 3.81 (not make 4.2.1 though).
Hopefully fixes:
error CS0006: Metadata file 'build/tvos/reference/MonoTouch.Dialog-1.dll' could not be found
make[1]: *** [build/tvos/reference/MonoTouch.NUnitLite.pdb] Error 1