https://wrench.internalx.com/Wrench/WebServices/Download.aspx?workfile_id=2583007 System.Net/SimpleAsyncResult.cs(64,42): error CS0305: Using the generic type `System.Func<T1,T2,T3,TResult>' requires `4' type argument(s) I have no idea WTF is going on here, but it builds if we use Predicate<SimpleAsyncResult> instead of Func<SimpleAsyncResult, bool>.
Fixes a build break: https://wrench.internalx.com/Wrench/WebServices/Download.aspx?workfile_id=2573365 System.Net/WebConnectionStream.cs(636,12): error CS0246: The type or namespace name `SimpleAsyncResult' could not be found. Are you missing an assembly reference?
It is used by Xamarin.Android to determine which compiler to use (csc or smcs) and lack of this property simply caused Csc build task failure.
…h MS.Build.Tasks. To be precise, now the implementation returns ItemSpec for ToString(). WriteLinesIntoFile task writes ITaskItem lines into a file, without calling ItemSpec. Maybe it is better to fix Tasks.dll but I'm unsure about xbuild compatibility. This missing ToString() override caused target framework monikor output to become invalid source file (i.e. it used to write ItemSpec as code(!) but this ITaskItem impl. in BuildEngine4 just wrote its type name as .ToString() result).
…on. Fixes #19881
We must use the secxml library directory to reference System, not bare. The bare build does not contain a full signature for some interfaces (there is a using XmlNode = object in a few interfaces that System.Configuration depends on). So System.Configuration must reference the System that has been compiled with XML support.
…unning on high latency links like usb. Uses a pair of START_BUFFERING/STOP_BUFFERING protocol commands.
The parallelization is done by overriding the default "all" target and instead of using the serial subdirectory processing that goes over the SUBDIR and xx_SUBDIR rules, we turn the list of subdirectories into the name of the target, for example: System.Collections.Concurrent becomes: ../../class/lib/net_4_5/Facades/System.Collections.Concurrent.dll Then a pattern is added to handle that rule: $(target_dir)/%.dll: This allows the build to be parallized.
… object. Fixes #19864
This patch introduces an infrastructure to stage the builds for the core assemblies that have cyclic dependencies. This deals directly with the following cycle: System.dll requires: System.Configuration.dll Mono.Security.dll System.Xml.dll They all require System.dll to be built System.Xml requires: System.dll System.Configuration.dll System.Security.dll requires: System.dll Mono.Security.dll System.Xml.dll Principle ========= The patch works by directing the build infrastructure to place intermediate build steps on their own directory. For example the first System.dll build that only takes a dependency in mscorlib.dll is placed not under the final directory but on a subdirectory called "bare". The second time that System.dll is built (after Mono.Security and System.Xml have been built) is placed on the "secxml" directory. The third time is the final build, and that one ends in the profile directory. The same principle is applied to System.Xml. Better Dependency Tracking ========================== To handle the multiple stages, the new Makefiles for the various parties involved in this loop are now able to build their dependencies. This means that typing "make" on System.Security or System.Xml or System will build all of the intermediate steps as required, without needing the toplevel Makefile to perform multiple build shots to incrementally build the result. Bug fixes ========= We must have regressed at some point the build of System.Xml as we were only doing one build of it, one without System.Configuration support. This patch introduces back the changes to build System.Xml in two steps. This patch fixes the setup where we end up rebuilding System.dll and overwriting it two times as the build progresses as a side effect (this is what required LIBRARY_USE_INTERMEDIATE_FILE). Details ======= library.make: Introduces a new "the_libdir_base" which is the raw directory where the final output will go. This points to the same location that libdir_base previously pointed to. The existing libdir_base is modified to contain an optional "intermediate" directory, where intermediate builds can be placed.
The fix mimics the behavior of Windows/.NET.
The Screen.FromRectangle method was too simple minded. It did not try to find the best match for a screen when the system has more than one screen. The new implementation makes at least some effort to find the closest screen with the most overlap with the rectangle.
The number of displays and sizes can be retrieved with the help of libXinerama. The implementation was done in a way that is backwards compatible, so on non-Linux systems or when libXinerama is not available the behavior will be the same as before. Also fixed the implementation of FormStartPosition.CenterScreen to bring up the form centered on the current display (with the current display being either the screen the top left corner of the owner form is on, or if there is no owner the screen that has the mouse pointer). This fixes Novell bug #325669 on Linux (https://bugzilla.novell.com/show_bug.cgi?id=325669).
…and ". The test case would explain what is not desired there.