447a8172f3
Also: general patch refresh Upstream release notes: Mono 3.10.0 is a bugfix release with a few features. Highlights Implemented System.IO.Compression.FileSystem. Uri now implements the .NET 4.5 behavior, it can be reverted to the old behavior in the same way by setting the System.Uri::s_IriParsing static field to false. Performance Remove unnecessary locking from core metadata parsing functions. Avoid cache thrashing of locals array when looping over enumerator. Known Issues The OSX packages have an invalid libgdiplus library that affects users of System.Drawing that requires it to work. This specially affects Xamarin.Mac users that fit the following criteria: Uses Xamarin.Mac Classic (Unified is unaffected). Uses the subsets of System.Drawing that use libgdiplus.dylib internally - System.Drawing.RectangleF, PointF, Colors are unaffected - System.Drawing.Bitmap, and font for example are affected The symptom of the problem is your application failing with: “System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus —> System.Exception: GdiplusStartup” Bug fixes +++++++++ Runtime Fix support for unaligned offsets in the store_membase_imm opcodes. Fixes #23267. Fix the lookup of nested types which have a namespace. Fixes #21653. Increase some opcode sizes. Fixes #23026. Always pass the imt arg to interface calls in gsharedvt methods. Fixes #22624. Store the epilog length in MonoArchEHJitInfo instead of encoding it in jinfo->unwind_desc, since the latter can overflow for methods with large epilogs. Fixes #22685. Add a mono_thread_detach_if_exiting () public api function which can be called by embedding code to detach the runtime if the code is running from a pthread dtor. Fixes #21164. Fix yet another native types problem. Fixes #22053. Fix the leaking of mach ports introduced by 98bbf8512aec0fa01b4426583280f6d231d22187. Fixes #22068. Add support for constrained calls with vtype return types in gsharedvt code. Fixes #22109. Fix the PLATFORM_GNU check so it works with gnueabi etc. as well. Fixes #21520. Don’t make runtime invoke signatures generic. Fixes #21973. Allow v8..v15 in unwind info on arm64. Fixes part of #21615. Fix Process.PrivateMemorySize64 etc. on ios. Fixes #21882. Fix enum->int casts in gsharedvt code. Fixes #21893. Don’t assert when loading a generic methodspec with 0 arity. Fixes #19097. Avoid asserting when a cattr cannot be loaded. Fixes #21653. Avoid making generic calls from gsharedvt methods normally, go through the rgctx infrastructure instead. Fixes #21677. Class Libraries Fix Uri UserInfo parsing. Fixes 23246. Update RequestMessage.RequestUri.AbsoluteUri after redirect. Fixes #22383. Fixes XContainer attempt to create a XNode from a null value. Fixes #20151. Changed XObject OnChanged and OnChanging to use Owner. When XObject.Owner is not a XElement XObject.Parent returns null and the owner would not be notified of changing and changed events. Fixes #18772. Process XslLiteralElements with only child attributes as empty ones. Fixes #14751. ‘finally’ protect ClientRuntimeChannel.Begin/EndProcess(). Fixes #22179. WebClient.OpenWrite() must get the response on close. Fixes #10163. Fix WebClient.UploadValuesTaskAsync(); Fixes #20359. Improve System.Security.Claims. Fixes #22282. Fixed serialization of XmlNode field with attribute XmlAnyElement. Fixes #3211. Handle String::Format with escaped closing }. Fixes #22114 Add a missing check to TypeBuilder.CreateType (). Fixes #22059. Xml Serialization of Base class w/o a parameterless constructor. Removed validation code that did not allowed serialization of base classes without a parameterless constructor. Fixes #6913. Fixed XmlSerializer to handle attribute XmlSchemePrivider.IsAny. XmlSerializer no longer outputs a root element with class name when the class has the attribute XmlSchemeProvider and IsAny is true. Fixes #11916 Test that DeflateStream.Read does read an empty stream. Covers #19313. Reseting all private key values to null is required because a new import may not overwrite existing values. Fixes #18482. Handle quoted filename value. Fixes #21960. Dispose XmlReader using correct value. Fixes #21771. C# Compiler Don’t use `1 naming for compiler generated second level and deeper nested types. Fixes #22893. Extend missing type check to type lookups. Fixes #20933. Fix copy and paste error in constraints checker. Fixes #22131. Speed up nullable tokenizer. Fixes #20195. Coalescing operator if the lhs of a null is a integer type that is larger than the integer type on the rhs. Fixes #22054. Check for duplicate destructors. Fixes #21983. Switch statement with constant block at first label. Fixes #21805. Decimal constants modulo folding. Fixes #21743. Update codegen for boolean loads. Fixes #21685. MSBuild Workaround for issues with CreateItem task where metadata are not generated due to up-to-data inputs. Fixes #23022. Add KeepDuplicates etc. to 4.0 as internal. Fixes #20961. ------------------------------------------------------------------------ Mono 3.8.0 has 711 commits since the last release. This is the work of 61 contributors since May 28. 58 bugs were fixed. Highlights Major performance and scalability improvements across the the whole runtime. Finished the Windows 64 port. Debugger wire protocol optimized for usb connections. Debugger Updated wire protocol better handles high latency connections such as those found when doing USB debugging. Client library now aggressively caches information and batches requests. Under one test scenario single stepping packets transmitted dropped from 2233 to only 16, with the latency going from seconds to 20 milliseconds. Performance The JIT now better handles long remainders by powers of two, generating significantly better code. Over 10x faster code is generated for delegates that are only invoked once. C# features such as async and LINQ produce a lot of those delegates, so this improvement will impact everyone. Improved alias analysis can now handle second order aliases and eliminate null checks. The runtime now has a concurrently readable hashtable that can makes reflection heavy workloads significantly faster and more scalable. Garbage Collection Optimized one of the core data structures of the garbage collector; should result in 5-10% reduction in collection times. Bug fixes +++++++++ Runtime Fix the leaking of mach ports introduced by 98bbf8512aec0fa01b4426583280f6d231d22187. Fixes #22068 Fix Process.PrivateMemorySize64 etc. on ios. Fixes #21882 Fix enum->int casts in gsharedvt code. Fixes #21893 Avoid making generic calls from gsharedvt methods normally, go through the rgctx infrastructure instead. Fixes #21677 Fix another native-types problem. Hopefully fixes #21670 and #21636 Use alias information to eliminate explicit null checks. Fixes #21645 Initialize fields in MonoField:GetFieldOffset () if needed. Fixes part of #21604 Properly handle rethrow outside of catch blocks. Fixes #20412 Disable runtime unit tests on linux, because it cannot be linked due to circular dependencies between libraries. Fixes #21520 When parsing a method header, ensure we pass any available generic context. Fixes #21388 Added new mono_domain_set_config function; used to fix ConfigurationErrorsException in #10468 Only apply the maverick stack size hack to the main thread. Fixes #10096 Don’t hardcode the temp dir to /tmp, use g_get_tmp_dir instead. Fixes #20894 Explicit thread GC data around instead of relying on TLS storage. Fixes #20360 Make WaitForPendingFinalizers () really wait for the finalizers added by a previous GC. Fixes #20503 Fix the marshal7.cs test, longs can be aligned to 4 bytes on 32 bit linux, and the runtime no longer aligns structure sizes to 8 bytes. Fixes #20788 Fix the popping of LMF frames during unwinding. Fixes #20616 Fix the marshalling of ByValTStr types which have a size specified. Fixes #20674 Fix the decoding of MonoJitInfo. Fixes #16439 Make it possible to create views to magic zero size files such as /dev/zero. Fixes #19460 Free static bound delegate wrappers of dynamic methods. Fixes #19058 Don’t perform double accounting of offset for named memory segments. Fixes #20591 Avoid joining attached threads. Fixes #19343 Fix support for custom marshallers defined in other assemblies. Fixes #20020 Fix a jit assertion on a class which contains an empty struct as a static field. Fixes #20349 Applied patch from Kyle Edwards kyleedwardsny@gmail.com. Fix isinf () check with clang. Fixes #20244 Fix constrained type unwrap for enum types. Fixes #18371 Class Libraries Handle quoted filename value. Fixes #21960 Correctly handle partial chunk sizes. Fixes #20583 Tweak Dictionary initial capacity to be more conservative. Fixes #21375 Handle closed-over-null delegates created with IL when using InvokeDynamic. Fixes #21196 Fix a race in a Task test. Fixes #20921 Contract the values array when decoding an array with a negative number and a trailer that evals to zero. Fixes #20456 Fixes issue with expression columns and IsNull. Fixes #20925 Array qsort without head allocation. Fixes #20922 Enum::TryParse ignores leading whitespaces. Fixes #20870 Fix disposing of DelegatingHandler. Fixes #20818 Fix digest authentication (bug #18799) Only recycle ServicePoints from the idle timer (fixes #19823) Changed ConcurrentDictionary.Contains(KeyValuePair<TKey, TValue>) to also compare value. Fixes #16990 Add System.ServiceModel.Security assembly. Fixes #20108 Removed NET_2_1 conditional blocks from FileInfo. Fixes #19862 C# Compiler Update codegen for boolean loads. Fixes #21685 Effective base class can include inherited types. Fixes #21390 Handle duplicate resume point registration. Fixes #21387 Arguments can be empty when reporting missing params argument. Fixes #21215 Flow analysis of moved arguments. Fixes #20983 Run new initializer await checks only in async context. Fixes #20614 Parse numeric expressions using invariant culture. Fixes #20582 Reachability analysis should ignore local variables declarations. Fixes #20603 Check for missing dependencies of container types. Fixes #20382 Resolve event expression when testing left side expression. Fixes #20493 Flow analysis of binary expressions not using logical operators. Fixes #20515 MSBuild Add 4.5.1 framework. Fixes #20827 Parsing conditions with property references. Fixes #20634 Implements property functions using constructor syntax. Fixes #12999 Mono Debugger Avoid clearning event requests if they reference an assembly which is unloaded. Instead, remove the assembly reference from the event request so it stays active. Fixes #9924.
33 lines
1.1 KiB
Text
33 lines
1.1 KiB
Text
$NetBSD: patch-cc,v 1.6 2014/11/30 08:40:51 spz Exp $
|
|
|
|
Currently mono is not copying the domain default context for some of
|
|
the newly created threads. This leads to some problems with programs
|
|
that use remoting stack, for example monodevelop that is unusable -
|
|
it doesn't compile and run projects. The following hack fixes the
|
|
issue until further investigations for pkgsrc-2010Q3 release.
|
|
|
|
Bug tracking: https://bugzilla.novell.com/show_bug.cgi?id=599485
|
|
|
|
|
|
--- mono/metadata/domain.c.orig 2014-10-04 09:27:43.000000000 +0000
|
|
+++ mono/metadata/domain.c
|
|
@@ -2359,7 +2359,18 @@ mono_context_set (MonoAppContext * new_c
|
|
MonoAppContext *
|
|
mono_context_get (void)
|
|
{
|
|
- return GET_APPCONTEXT ();
|
|
+ MonoAppContext *retval = GET_APPCONTEXT();
|
|
+#ifdef __NetBSD__
|
|
+ /*
|
|
+ * We gotta find out why context is sometime NULL for newly threads
|
|
+ * Until then use default context if it's not set
|
|
+ */
|
|
+ if(retval == NULL) {
|
|
+ retval = ves_icall_System_AppDomain_InternalGetDefaultContext();
|
|
+ mono_context_set(retval);
|
|
+ }
|
|
+#endif
|
|
+ return retval;
|
|
}
|
|
|
|
/* LOCKING: the caller holds the lock for this domain */
|