head 1.13; access; symbols pkgsrc-2020Q4:1.12.0.46 pkgsrc-2020Q4-base:1.12 pkgsrc-2020Q3:1.12.0.44 pkgsrc-2020Q3-base:1.12 pkgsrc-2020Q2:1.12.0.40 pkgsrc-2020Q2-base:1.12 pkgsrc-2020Q1:1.12.0.20 pkgsrc-2020Q1-base:1.12 pkgsrc-2019Q4:1.12.0.42 pkgsrc-2019Q4-base:1.12 pkgsrc-2019Q3:1.12.0.38 pkgsrc-2019Q3-base:1.12 pkgsrc-2019Q2:1.12.0.36 pkgsrc-2019Q2-base:1.12 pkgsrc-2019Q1:1.12.0.34 pkgsrc-2019Q1-base:1.12 pkgsrc-2018Q4:1.12.0.32 pkgsrc-2018Q4-base:1.12 pkgsrc-2018Q3:1.12.0.30 pkgsrc-2018Q3-base:1.12 pkgsrc-2018Q2:1.12.0.28 pkgsrc-2018Q2-base:1.12 pkgsrc-2018Q1:1.12.0.26 pkgsrc-2018Q1-base:1.12 pkgsrc-2017Q4:1.12.0.24 pkgsrc-2017Q4-base:1.12 pkgsrc-2017Q3:1.12.0.22 pkgsrc-2017Q3-base:1.12 pkgsrc-2017Q2:1.12.0.18 pkgsrc-2017Q2-base:1.12 pkgsrc-2017Q1:1.12.0.16 pkgsrc-2017Q1-base:1.12 pkgsrc-2016Q4:1.12.0.14 pkgsrc-2016Q4-base:1.12 pkgsrc-2016Q3:1.12.0.12 pkgsrc-2016Q3-base:1.12 pkgsrc-2016Q2:1.12.0.10 pkgsrc-2016Q2-base:1.12 pkgsrc-2016Q1:1.12.0.8 pkgsrc-2016Q1-base:1.12 pkgsrc-2015Q4:1.12.0.6 pkgsrc-2015Q4-base:1.12 pkgsrc-2015Q3:1.12.0.4 pkgsrc-2015Q3-base:1.12 pkgsrc-2015Q2:1.12.0.2 pkgsrc-2015Q2-base:1.12 pkgsrc-2015Q1:1.11.0.4 pkgsrc-2015Q1-base:1.11 pkgsrc-2014Q4:1.11.0.2 pkgsrc-2014Q4-base:1.11 pkgsrc-2014Q3:1.10.0.12 pkgsrc-2014Q3-base:1.10 pkgsrc-2014Q2:1.10.0.10 pkgsrc-2014Q2-base:1.10 pkgsrc-2014Q1:1.10.0.8 pkgsrc-2014Q1-base:1.10 pkgsrc-2013Q4:1.10.0.6 pkgsrc-2013Q4-base:1.10 pkgsrc-2013Q3:1.10.0.4 pkgsrc-2013Q3-base:1.10 pkgsrc-2013Q2:1.10.0.2 pkgsrc-2013Q2-base:1.10 pkgsrc-2013Q1:1.9.0.18 pkgsrc-2013Q1-base:1.9 pkgsrc-2012Q4:1.9.0.16 pkgsrc-2012Q4-base:1.9 pkgsrc-2012Q3:1.9.0.14 pkgsrc-2012Q3-base:1.9 pkgsrc-2012Q2:1.9.0.12 pkgsrc-2012Q2-base:1.9 pkgsrc-2012Q1:1.9.0.10 pkgsrc-2012Q1-base:1.9 pkgsrc-2011Q4:1.9.0.8 pkgsrc-2011Q4-base:1.9 pkgsrc-2011Q3:1.9.0.6 pkgsrc-2011Q3-base:1.9 pkgsrc-2011Q2:1.9.0.4 pkgsrc-2011Q2-base:1.9 pkgsrc-2011Q1:1.9.0.2 pkgsrc-2011Q1-base:1.9 pkgsrc-2010Q4:1.8.0.28 pkgsrc-2010Q4-base:1.8 pkgsrc-2010Q3:1.8.0.26 pkgsrc-2010Q3-base:1.8 pkgsrc-2010Q2:1.8.0.24 pkgsrc-2010Q2-base:1.8 pkgsrc-2010Q1:1.8.0.22 pkgsrc-2010Q1-base:1.8 pkgsrc-2009Q4:1.8.0.20 pkgsrc-2009Q4-base:1.8 pkgsrc-2009Q3:1.8.0.18 pkgsrc-2009Q3-base:1.8 pkgsrc-2009Q2:1.8.0.16 pkgsrc-2009Q2-base:1.8 pkgsrc-2009Q1:1.8.0.14 pkgsrc-2009Q1-base:1.8 pkgsrc-2008Q4:1.8.0.12 pkgsrc-2008Q4-base:1.8 pkgsrc-2008Q3:1.8.0.10 pkgsrc-2008Q3-base:1.8 cube-native-xorg:1.8.0.8 cube-native-xorg-base:1.8 pkgsrc-2008Q2:1.8.0.6 pkgsrc-2008Q2-base:1.8 cwrapper:1.8.0.4 pkgsrc-2008Q1:1.8.0.2 pkgsrc-2008Q1-base:1.8 pkgsrc-2007Q4:1.7.0.16 pkgsrc-2007Q4-base:1.7 pkgsrc-2007Q3:1.7.0.14 pkgsrc-2007Q3-base:1.7 pkgsrc-2007Q2:1.7.0.12 pkgsrc-2007Q2-base:1.7 pkgsrc-2007Q1:1.7.0.10 pkgsrc-2007Q1-base:1.7 pkgsrc-2006Q4:1.7.0.8 pkgsrc-2006Q4-base:1.7 pkgsrc-2006Q3:1.7.0.6 pkgsrc-2006Q3-base:1.7 pkgsrc-2006Q2:1.7.0.4 pkgsrc-2006Q2-base:1.7 pkgsrc-2006Q1:1.7.0.2 pkgsrc-2006Q1-base:1.7 pkgsrc-2005Q4:1.6.0.4 pkgsrc-2005Q4-base:1.6 pkgsrc-2005Q3:1.6.0.2 pkgsrc-2005Q3-base:1.6 pkgsrc-2005Q2:1.5.0.2 pkgsrc-2005Q2-base:1.5 pkgsrc-2005Q1:1.4.0.6 pkgsrc-2005Q1-base:1.4 pkgsrc-2004Q4:1.4.0.4 pkgsrc-2004Q4-base:1.4 pkgsrc-2004Q3:1.4.0.2 pkgsrc-2004Q3-base:1.4 pkgsrc-2004Q2:1.3.0.2 pkgsrc-2004Q2-base:1.3 pkgsrc-2004Q1:1.2.0.2 pkgsrc-2004Q1-base:1.2; locks; strict; comment @# @; 1.13 date 2021.03.03.12.05.41; author nia; state dead; branches; next 1.12; commitid oNQdXX5APs6nhRJC; 1.12 date 2015.06.15.09.27.29; author joerg; state Exp; branches; next 1.11; commitid fUPDZ52T7mGXvvpy; 1.11 date 2014.11.30.08.40.51; author spz; state Exp; branches; next 1.10; commitid dPz4ybZZP7Dzwb0y; 1.10 date 2013.05.29.11.11.12; author wiz; state Exp; branches; next 1.9; commitid NGljWiPkgYeC6wRw; 1.9 date 2011.03.17.14.24.52; author kefren; state Exp; branches; next 1.8; 1.8 date 2008.02.13.14.16.43; author kefren; state Exp; branches; next 1.7; 1.7 date 2006.01.03.08.03.53; author recht; state Exp; branches; next 1.6; 1.6 date 2005.07.31.15.26.58; author recht; state Exp; branches; next 1.5; 1.5 date 2005.03.27.10.25.51; author recht; state dead; branches; next 1.4; 1.4 date 2004.06.26.20.19.16; author recht; state Exp; branches; next 1.3; 1.3 date 2004.05.11.17.33.42; author recht; state Exp; branches; next 1.2; 1.2 date 2003.12.03.17.08.24; author recht; state Exp; branches; next 1.1; 1.1 date 2003.12.03.00.12.12; author recht; state Exp; branches; next ; desc @@ 1.13 log @Move lang/mono6 to lang/mono. The old mono4 has been refusing to build on all platforms for a while, while mono6 at least builds on some, so hopefully this is less misleading. @ text @$NetBSD: patch-ak,v 1.12 2015/06/15 09:27:29 joerg Exp $ --- libgc/pthread_support.c.orig 2015-04-24 01:26:16.000000000 +0000 +++ libgc/pthread_support.c @@@@ -71,7 +71,7 @@@@ defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS)) || \ defined(GC_NETBSD_THREADS) && !defined(USE_PTHREAD_SPECIFIC) || \ defined(GC_FREEBSD_THREADS) && !defined(USE_PTHREAD_SPECIFIC) || \ - defined(GC_OPENBSD_THREADS) + !defined(USE_COMPILER_TLS) || defined(GC_OPENBSD_THREADS) # define USE_PTHREAD_SPECIFIC # endif #endif @@@@ -595,6 +595,20 @@@@ static void start_mark_threads() } } # endif /* HPUX || GC_DGUX386_THREADS */ +# if defined(__NetBSD__) +# define MAX_STACK_SIZE (1024 * 1024 *sizeof(word)) + { + size_t old_size; + int code; + + if (pthread_attr_getstacksize(&attr, &old_size) != 0) + ABORT("pthread_attr_getstacksize failed\n"); + if (old_size > MAX_STACK_SIZE) { + if (pthread_attr_setstacksize(&attr, MAX_STACK_SIZE) != 0) + ABORT("pthread_attr_setstacksize failed\n"); + } + } +# endif # ifdef CONDPRINT if (GC_print_stats) { GC_printf1("Starting %ld marker threads\n", GC_markers - 1); @@@@ -1282,6 +1296,22 @@@@ void GC_end_blocking(void) { #define __d10_sleep sleep #endif /* GC_DGUX386_THREADS */ +#undef nanosleep +#undef usleep +#undef sleep + +/* A wrapper for the standard C nanosleep function */ +int WRAP_FUNC(nanosleep) (const struct timespec *rqtp, struct timespec *rmtp) +{ + int result; + + GC_start_blocking(); + result = REAL_FUNC(nanosleep)(rqtp, rmtp); + GC_end_blocking(); + + return result; +} + /* A wrapper for the standard C sleep function */ int WRAP_FUNC(sleep) (unsigned int seconds) { @ 1.12 log @Behave when address space limits are in place: (1) Default heap limit to 75% of available address space. (2) Limit GC marker threads to 4MB/8MB (32bit vs 64bit) stack space. As Mono tries to create 16 such threads by default, the default stack size on AMD64 would eat 2GB VA alone. Bump revision. @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.11 2014/11/30 08:40:51 spz Exp $ @ 1.11 log @Update of Mono to version 3.10.0 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) 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. @ text @d1 2 a2 2 $NetBSD: patch-ak,v 1.10 2013/05/29 11:11:12 wiz Exp $ --- libgc/pthread_support.c.orig 2014-09-22 13:23:05.000000000 +0000 d13 22 a34 1 @@@@ -1282,6 +1282,22 @@@@ void GC_end_blocking(void) { @ 1.10 log @Update to 3.0.10: New in Mono 3.0.10 A hot-fix release. Reverted parallel mkbundle. Fixed duplicated debug symbol problem in the compiler. New in Mono 3.0.9 Fix gtk+ copy & paste. Fix debugger support for custom attributes. Proper stack bounds calculation on windows. Add partial generic methods to our C# compiler. NaCL support for ARM. Fix LLVM loading on OSX. New in Mono 3.0.8 Multiple improvements to the BCL to reduce usage of non generic collections and use faster string comparisons. Optimize large object cloning and boxing. Multiple changes to bring mono closer to full PCL compatibility. Add System.WeakReference Sgen can now return memory to the system for Many compiler fixes for async. Improved FullAOT support for async. NaCl build fixes and improvements. WCF now has cookie support in .net 4.0. Optimize Marshal.Read/Write methods to avoid a trip to unmanaged when needed. Optimize LINQ with arrays. Multiple fixes to the sgen's concurrent collector. New in Mono 3.0.7 Multiple fixes to the sgen's concurrent collector. Performance improvements in primitive types parsing. Add a configuration time option to disable remoting. Optimize tls lookups on full-aot + arm. Add a configuration option to disable remoting. Multiple improvements and bug fixes in culture related code. Runtime assembly mapping for PCL. Fix Binder primitive conversion to make .net. Optimize Activator.CreateInstance (). Optimize icalls in FullAOT code. Implement Volatile.Read/Write and Interlocked.MemoryBarrier (). Optimized unmanaged to managed string conversion. New in Mono 3.0.6 This is another hotfix release. It reverses the visibility change made to Mono.Runtime.GetDisplayName. New in Mono 3.0.5 This is a hot-fix release. It fixes a crash in the runtime support for generics, which could be triggered by Xamarin Studio. New in Mono 3.0.4 Garbage Collector Many changes went into our GC implementation. We added long links support to our traditional Boehm collector. As for SGen, it is finally a true concurrent GC, with cementing support. We also fixed several bugs, such as #9928 pointer free deadlock problem and bugs in mono_gc_weak_link_get. Async Rewrite of async StreamReader/StreamWritter operations to not fail on subsequent async call. Fixes #9761 ASP.NET Updated encoding support. Some minor bug fixes. Other improvements New MONO_DISABLE_SHARED_AREA environment variable lets you turn of the use of shared memory in Mono (used by performance counters and optionally by the io-layer). Updated EntityFramework version that ships with Mono. Support for ConnectionLifetime parameter in SqlClient (contributed by 7digital). Fixed C# Evaluator Terse reader with loops Don't report user operator error during probing user conversions. Fixes #10170. Add explicit interface GetType implementation to avoid object::GetType become proxy. (C# compiler fix) Implement use of __refvalue as an lvalue. Fixes #10034. Packaging We no longer install a /usr/bin/pkg-config on OSX, to stop clashing with Homebrew. New in Mono 3.0.3 Mono garbage collectors now feature multiple dtrace probes for users on MacOS and Solaris. Many stability improvements and performance work on Mono's Async support. Garbage Collector Sgen now has a concurrent GC that can significantly reduce max pauses. This is an experimental feature that is been continuously developed. Click here for more details. Bug Fixes #8401, #9247, #8903, #9087, #9225, #9186, #9118, #9137, #9133, #9116, #1446, #2246, #6918, #8904, #8927, #2907, #8829, #8786 New in Mono 3.0.2 We are now on a cadence to deliver new Mono features and updates on a regular basis. A month after our last release we are now bringing some 363 commits, with 3055 files changed, 171240 insertions(+), 179104 deletions(-) Major Features 'Reactive Extensions': Mono now bundles the open sourced Microsoft's Reactive Extensions F# 3.0: We have updated the bundled F# compiler on OSX to version 3.0 (tag 3.0.22 from the open source fsharp repository). SGen Garbage Collector: new lazy sweep strategy in Mono's new GC that reduces the GC times for major collections significantly. We have also tuned and improved the collector. System.Json: We reverted System.Json to Mono's version, as it was lighter and tolerates more input than Microsoft's one. We ship System.Json.Microsoft as well for users that want to use the Microsoft stack. Runtime: Many improvements to Mono, better x86 and ARM support across the board. NTLM: Large upgrade to our NTLM stack. clang: Mono now builds with Clang. monodoc: vast improvements to our documentation infrastructure. Bug fixes in 3.0.2 #8566, #8565, #8549, #8646, #8592, #8561, #8559, #8557, #8553, #8533, #8502, #8468, #8449, #8448, #8414, #8399, #8385, #8384, #8383, #8366, #8334, #8320, #8312, #8285, #8283, #8263, #8232, #8156, #8037, #7965, #6650, #5760, #4587, #3582, #3275, #2471 and #2190 New in Mono 3.0 Major Highlights C# Compiler Mono now has a complete C# 5.0 compiler with asynchronous programming support. Our C# compiler has now completed its migration from using System.Reflection.Emit as its code generation backend to use the IKVM.Reflection API. This functionality was previewed in Mono 2.10 and is now the default. With this functionality, developers can use any mscorlib that they want (for example the MicroFramework one, or a custom one) without having to build a custom compiler. We were able to eliminate the multiple executables for the compiler, and unify all the compilers into one as well as reducing our build times significantly. gmcs, dmcs and smcs are now merely aliases to call the mcs compiler with the proper -sdk flag. Tool/Library Purpose Profile New Backend 2.10 Backend gmcs C# Compiler 2.0 IKVM.Reflection System.Reflection 2.0 dmcs C# compiler 4.0 IVKM.Reflection System.Reflection 4.0 smcs C# Compiler 2.1 (Silverlight, MonoTouch, MonoDroid) IKVM.Reflection System.Reflection 2.0 mcs C# Compiler Any profile, any mscorlib IKVM.Reflection IKVM.Reflection csharp Interactive C# Shell/REPL 4.5 System.Reflection 4.5 System.Reflection 4.0 Mono.CSharp C# Compiler as a Service 2.0, 2.1 and 4.0. System.Reflection 4.0 System.Reflection System.Reflection is still used as a backend for the compiler as a service and the C# interactive shell. Evaluation can now Compile Types The Evaluator.Eval () API is no longer limited to expressions and statements, you can now pass entire namespace, class, interface, struct definitions as a string and have the result get compiled. This extends to the csharp command: csharp> class X { public int a; } csharp> var t = new X () { a = 1 }; csharp> print (t.a); 1 csharp> Instance API The compiler as a service exposed by the Mono.CSharp library is no longer limited to be a global compiler, now you can instantiate multiple scopes for the compiler, each having its own set of localized types and global variables. For example, the following sample assigns a string in one context and an int in another one: using System; using Mono.CSharp; class MyWorld { public Evaluator Evaluator; public MyWorld (string [] args) { var r = new Report (new ConsoleReportPrinter ()); var cmd = new CommandLineParser (r); var settings = cmd.ParseArguments (args); if (settings == null || r.Errors > 0) Environment.Exit (1); Evaluator = new Evaluator (settings, r); } } class X { static int Main (string [] args) { var first = new MyWorld (args); var second = new MyWorld (args); first.Evaluator.Run ("var Demo = \"hello, world\";"); second.Evaluator.Run ("var Demo = 1;"); first.Evaluator.Run ("print (Demo);"); second.Evaluator.Run ("print (Demo);"); return 0; } } C# Interactive Shell New convenience function print, can be used instead of Console.WriteLine Additionally, the C# interactive shell will by default use a terse syntax that does not require a semicolon at the end of an expression, for example: csharp> 1 + 2 3 csharp> 4.5 Profile The 4.5 Profile is a strict superset of the 4.0 API and is now the default profile. Because 4.5 API is a strict superset of 4.0 API they both share the same assembly version number, so we actually install the 4.5 library into the GAC. Some of the changes in the 4.5 API family include: New Async methods WinRT compatibility API Newly introduced assemblies (System.Net.Http, System.Threading.Tasks.Dataflow) New Microsoft Open Source Stacks We now include the following assemblies as part of Mono from Microsoft's ASP.NET WebStack: System.Net.Http.Formatting.dll System.Web.Http.dll System.Web.Razor.dll System.Web.WebPages.Deployment.dll System.Web.WebPages.Razor.dll System.Web.WebPages.dll System.Web.Mvc.dll System.Json.dll (Previously available in Mono, but now replaced with Microsoft's implementation) We also bundle the recently open sourced Entity Framework and EntityFramework.dll Garbage Collector SGen now has a new task management system that allows it to easily scale new GC-related tasks across multiple CPUs if available: SGen on SMP systems is able to distribute more work across the worker threads. Previously only the mark phase was distributed. SGen is now able to perform parallel collection in the nursery. SGen has been ported to Win32 SGen has been ported to the MIPS platform Precise stack scanning has been improved considerably, and it is now supported on x86 and ARM. On OSX, SGen now uses Mach APIs directly to speedup some tasks in the garbage collector. Runtime Optimizations Implemented fast version of ThreadLocal (it is now a low-level intrinstic operation) List optimizations Support for new attributes to force inlining. Major change in Mono to support the full table of Unicode surrogate characters. This code was written by Damien Diederen and David Mitchell from Logos software. Runtime supports deferred attaching to the process (when using suspend=n,server=y the runtime collects metadata until a debugger is attached). Implement tail call optimizations on PowerPC for F# (Bug #664631) New profiler that can be used with Intel's VTune Amplifier Profiler. Support for System.Net.NetworkInformation.NetworkChanged events on Linux. New tool: crlupdate this is the Mono Certficate Revocation List Downloader and Updater and can be used to download of new, or update of existing, Certficate Revocation List (CRL) associated with the certificates present in the user (default) or machine stores. The CRL present in the stores are used to determine the validity of unexpired, trusted X.509 certificates. ASP.NET Bring the error page to the new millenium. CodeContracts Alexander Chebaturkin has implemented initial version of static Code Contract analyser as part of SoC 2011. Smaller Updates Partial support for Portable Class Libraries (details) Updated Unicode tables, fixes long-standing 480178 MacOS X We continue to expand significantly our support for MacOS X and iOS. Mono can now be compiled by users as a 64-bit binary. Mono still ships as a 32-bit binary, as most libraries that exist today for Mono run only in 32 bits. DriveInfo now returns correct information on OSX. Mono.Data.Sqlite It is now possible to configure the threading model for SQLite using the SetConfig method in the SQLiteConnection class. Supports iOS crypto APIs. C5 Library We have updated the venerable C5 library to the latest version. Breaking Changes Since Mono 2.10 In order to be compatible with Microsoft .NET's behavior, exceptions thrown in object finalizers now cause a full runtime abort. This behavior was already present for thread pool threads, but hadn't been enabled for the finalizer thread yet. Generally, one should avoid exceptions in finalizers entirely. If you must use them, catch them so that they do not terminate the application. GDB GDB support has been extended with a new gdb hook that is aware of the SGenGC internals. Added pretty printers for more runtime data structures like MonoVTable to the mono gdb mode. MIPS port The MIPS port is now complete, it can do a full bootstrap, and run the runtime/corlib test suites. Soft Debugger Single stepping is now implemented using breakpoints in most cases, speeding it up considerably. Calls to System.Diagnostics.Debugger:Log()/Break () are now routed to the debugger using new UserLog/UserBreak event types. S390x is now supported (Neale Ferguson). MIPS is now supported. Added new methods to Mono.Debugger.Soft and the runtime to decrease the amount of packets transmitted between the debugger and the debuggee. This significantly improves performance over high latency connections like USB. Many bug fixes. Static Compiler (AOT) Made changes to some AOT data structures to reduce their size, especially when using generics. This reduces the size of an mscorlib AOT image by about 1-2%. Many changes to the class libraries allow more core Generics code to run on systems that do not support JIT compilation. @ text @d1 2 a2 2 $NetBSD: patch-ak,v 1.9 2011/03/17 14:24:52 kefren Exp $ --- libgc/pthread_support.c.orig 2012-12-05 17:44:36.000000000 +0000 d13 1 a13 1 @@@@ -1280,6 +1280,22 @@@@ void GC_end_blocking(void) { @ 1.9 log @Don't force using pthread TLS in NetBSD but check first if compiler support (__thread) exists. Should fix PR/44725 @ text @d1 4 a4 6 $NetBSD$ --- libgc/pthread_support.c.orig 2011-01-04 19:39:55.000000000 +0200 +++ libgc/pthread_support.c 2011-03-17 16:14:10.000000000 +0200 @@@@ -68,8 +68,8 @@@@ # if (defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) || \ d6 2 a7 1 - defined(GC_NETBSD_THREADS) && !defined(USE_PTHREAD_SPECIFIC) || \ a8 1 + defined(GC_NETBSD_THREADS) && !defined(USE_PTHREAD_SPECIFIC) && \ d12 2 a13 2 @@@@ -1175,6 +1175,22 @@@@ @ 1.8 log @Update to mono 1.2.6 @ text @d2 14 a15 3 --- libgc/pthread_support.c.orig 2007-11-09 00:07:02.000000000 +0200 +++ libgc/pthread_support.c 2008-02-05 14:01:40.000000000 +0200 @@@@ -1160,6 +1160,22 @@@@ void GC_end_blocking(void) { @ 1.7 log @update to mono 1.1.12 What is new in Mono 1.1.12 Ports Neale updated the S390 JIT compiler to match the new cross platform register allocator. Paolo fixed a number PowerPC bugs that were exposed by new tests. He also fixed floating point code generation on ARM. IronPython This version of Mono can run IronPython 0.9.6. JIT Optimizations An SSA-less Dead Code Elimination (fastdce) optimization was checked in by Massi. This optimization will be more useful on the next release as we tune some of the optimizations that produce dead code. Registry An implementation of the registry is now available on Unix. 2.0 profile updates. TryParse methods are no longer wrappers for Parse, Parse is now implemented in terms of Parse which will give us the performance associated with TryParse (Carlos). Implement the string compares from 2.0 (Atsushi). Implemented System.Globalization and System.Text from 2.0 as well as updating many of the CJK codecs (Atsushi). Reflection updates from Zoltan. Uri parsers from Sebastien. System.XML 2.0: Most of 2.0 API has been fixed up except for Xml.Serialization have been done. Atsushi continues to work on stabilizing the 2.0 API. Ben added the initial support for the Nullable boxing conventions. These implement the last-minute changes that went into the Nullable in .NET. It is known to have some bugs, as well as incomplete support in parts of the runtime. Chris Toshok continues to work on the 2.0 System.Configuration assembly which is a key component of many of the new ASP.NET classes. Dick implemented the 2.0 Semaphore classes (named and unnamed). Debugger The Debugger works for the first time. It might still be a bit flaky, but I have been using it. Get it from: here. The X-Develop 1.2 beta has GUI support for it as well. Text Encoding Atsushi implemented the 2.x support for text encodings: the new unmanaged APIs and the fallback code. SharpZipLib upgraded We have upgraded SharpZipLib to the latest version, required to run the new IKVM. Monodoc Improved the Web UI, based on code from Eric Butler. Windows.Forms Windows.Forms is moving into bug fixing mode. We need as many people as possible testing their Windows.Forms applications and submit bug reports for any issues found with it. These are some of the highlights, as Windows.Forms is the piece that changed the most in this release: Alexander updates his "Nice" theme. He also checked in a new theme "ClearLooks". Set the variable MONO_THEME to "nice" or "clearlooks" to select these themes. Jackson added MDI and toolwindow support, improved the TreeView and ListView widgets. Mike improved the Menu infrastructure and introduced shortcut and key navigation support into Windows.Forms Pedro contributed some updates to his summer of code DataGridView widget. Peter added cut and paste support to the Textbox and RichTextBox widgets, keybindings for it, drag and drop and undo support. HttpListener Gonzalo implemented the embeddable HttpListener web server. Very cute. System.Drawing Jordi has upgraded our System.Drawing stack to implement the 2.0 API. Jonathan Gilbert fixed an important bug in GDI+ that prevented some applications from running correctly (UnlockBitmap was busted). Compilers Ankit continues to improve the assembler and disassembler to support generics and has updated the PEAPI accordingly. Harinath Raja, Marek Safar and Martin Baulig and continued to fix bugs in the C# compiler and improve the error and warning reporting of the compiler. Basic compiler: Many bug fixes and improvements from Alexandre Rocha, Jelmer Vernooij and Maverson Eduardo. Atsushi fixed many bugs in the -doc: command line handling in the C# compiler. Cesar continued to improve the JScript compiler, the Mozilla test suite now at 8577 successful tests out of 8866 (96.74%). IO Layer Dick did various improvements to the IO-layer: threads were moved back into the shared handle space now that the leak bug is gone. The main thread will now dispose all of its resources upon termination. ShellExecute will now work properly on Windows. Npgsql Francisco upgraded Npgsql database driver to 1.0beta1. Bug Fixes Many bug fixes and tests everywhere. In particular CodeDOM got a large test harness by Gert, many bug fixes by Gonzalo to System.Web. Gamin is now correctly autodetected for the FileSystemWatcher. Special thanks go to Robert Jordan which provided plenty of bug fixes and bug reports for this release of Mono. We also want to thank Zoltan which continues to fix bugs everywhere in the runtime. John Luke updated and fixed various Mono.Cairo binding issues. Jonathan Pryor updated the Mono.Unix namespace extensively. Senganal is the new maintainer of System.Data and has been fixing many of the System.Data bugs. What is new in Mono 1.1.10 mod_mono Auto-Configuration Mod_mono, the apache module for providing ASP.NET support has historically been difficult to configure and it required system administrators to manually register all the directories that contained an ASP.NET application. This was troublesome for many and also stopped mod_mono from being adopted for multi-user systems. mod_mono 1.1.10 features a new auto-configuration system which allows ASP.NET applications to work without having to make any configuration changes to Apache. The experience of the new auto-configuration system is similar to PHP: any file that has one of the ASP.NET extensions will automatically be handled by Mono. The feature can be turned off if desired, see our documentation page for more details. mod_mono and virtual hosts Mod_mono now works correctly with virtual hosts, and it is possible to use the mod_mono control panel to restart individual servers. Windows.Forms Control drawing performance improved (background drawing handling). libgdiplus now support turning off anti-aliasing. Drag and Drop for X11 has been implemented. Support for auto-sizing is implemented. Menu improvements on X11. Extensive bug fixes. Kornél reimplemented the ImageList control. DataGridView widget for 2.x: by Pedro Martínez Julia, made possible by the Google Summer of Code and Jordi which acted as the mentor. Code Access Security System.Drawing doesn't require permissions to call unmanaged code to work (big speedup when running with the security manager active). Many CAS permissions (and tests) were added for System.dll and System.Webdll (work in progress); Class library / Security ProtectedData is now working under Mono. It use a managed implementation on Linux/POSIX and native DAPI (p/invoke) on Windows (requires Windows 2000); ProtectedMemory is working on Windows (requires Windows 2000 SP3 or later); MozRoots MozRoots is a new command-line tool to download and import the list of Mozilla's trusted root certificates into Mono's trust store. Mono by default does not have any root certificates on its certificate store and it is up to each deployment to add the certificates that they trust to the store. This has caused some confussion with people using TLS and SSL with Mono. The MozRoots tool makes it simple to import a set of root certificates from Mozilla into the Mono store. Security Tools sn: assemblies can now be signed with RSA key pairs ranging from 384 to 16384 bits; XSP Sebastien added support to XSP for PKCS#12 private key/certificates; JavaScript compiler From Cesar and Florian: Compiler: added support for: multiple file compilation and import statement. Run-time: Florian Gross added support for performing late binding operations in System.Object derived objects. Status 6981 successful tests out of 7229 from Mozilla's test suite. ASP.NET Completed ViewState MAC, a cryptographic checksum to prevent tampering with the view state. Input/output filtering works again. Many bug fixes and performance improvements are available in this version thanks to Gonzalo. LDAP • Changes in Connection.cs regarding appropriate handling in method ServerCertificateValidation. • Added support for error code 113 SSL_HANDSHAKE_FAILED. • Added two files ResultCodeMessages.txt and ExceptionMessages.txt in Novell.Directory.Ldap.Utilclass • Added support for subordinate subtree scope. • Removed hard coded dependency on Mono Security • Fix for a race condition in Connection.cs • Updated with support for Interactiveness of SSL Handshake, Ldap Events, Edir Events, Intermediate Response • Connection.cs class is modified by synchronizing the stream threads so as to avoid the memory consumption and handle consumption. • Changed version from 2.1.1 to 2.1.4 in Connection.cs. • Updated ChangeLog so that latest changes are on the top. Mono.Posix assembly Filenames exported from Mono.Unix and Mono.Unix.Native may be in a special UnixEncoding format so that arbitrary filenames may be accessed (i.e. filenames outside of UTF-8 or the MONO_EXTERNAL_ENCODINGS value). See the post "Mono.Unix Filename Marshalling" The Mono.Unix namespace is being reorganized for easier maintenance, easier documentation, and CLS compliance. The low-level Syscall and Stdlib and related types will move into the Mono.Unix.Native namespace. The UnixConvert, UnixDirectory, UnixFile, UnixGroup, and UnixUser classes are obsolete and will be removed in a future release. The types of existing members will change in the next release. This release is still 100% compatible with previous releases. Impacted members have been marked [Obsolete] with messages to indicate the replacement method. The next release will be an API break (changing the return type of effected properties & methods), and obsolete types will be removed in the following release. Mono.Unix is targeting API stability for 1.2. If you have any suggestions for improvement, I would love to hear them. See also: "Mono.Unix Reorganization" and "Mono.Unix Future Directions, Questions" MonoDoc Rafael contributed a hierarchical storage for bookmarks to the Monodoc GUI browser. GtkHTML# is now an optional dependency as well as GeckoSharp. Relocatable Mono is now relocatable. This means that a Mono package or RPM can be relocated to any directory and will continue to work. This works on Linux systems and Solaris 10. Important: If you embed Mono, you must now call the can call instead mono_assembly_setrootdir($libdir) and mono_set_config_dir ($sysconfdir) to set the library directory and the system configuration directories. Cairo bindings Idan contributed some large changes to Mono.Cairo to polish the API: Matrix: • Removed Matrix_T struct and associated properties, • Added ==, != operators • Implemented ICloneable • Overrode Equals, GetHashcode, ToString • Made constructors a little simpler, New matrices are constructed as the identity matrix. • Added IsIdentity • Fiddled a bit with Multiply, now there is void Multiply (Matrix b) -- multiplies this matrix by b static Matrix Multiply (Matrix a, Matrix b) -- multiplies a by b and returns the result. • Threw out all references to "Identify", it's the "Identity". CairoAPI: fix out/ref issues (it was previously segfaulting). Graphics: • convert [Inverse]Transform(Point/Distance) properties to methods so you can transform arbitrary points/distances. • Added Transform (Matrix m) • Fixed Matrix {get; set;} to use updated CairoAPI. • Fixed FontSetMatrix (this should be made into a property for consistency) C# compiler The default encoding for the compiler has changed from the hardcoded ISO-28591 to be the default encoding used in your system. This will help developers compile code that was written in the editor they are using. The last two features of C# 2.0 have been completed by Carlos Alberto: Friend Assemblies and External Alias qualifiers. We are only missing the late semantics changes that were introduced for nullable types and boxing in C# for a fully compatible implementation. .NET 2.x updates Chris Toshok continues to work on the System.Configuration framework for ASP.NET 2.x on which many of the new features are built. Roozbeh Pournader contributed a PersianCalendar implementation. Roozbeh described the Persian calendar to Microsoft originally so we have a very good implementation. Our Calendars now support half of the new 2.x features. Atsushi updated parts of System.XML method signatures to match RTM. Various Changes Support for contravariant and covariant delegates in the System.Delegate class for 2.x operations. Updated ICSharpCode.SharpZipLib to the latest version. Runtime will no longer turn segfaults in unmanaged code into a NullReferenceException. Now faults in unmanaged code will abort the program execution and display the stack trace (managed/unmanaged). This was useful to uncover a number of real bugs in a few applications and some of our own libraries. Performance, Memory Usage Our quest to reduce memory consumption continues. Thanks to Jon Trowbridge for implementing a new heap profiler (the heap-buddy module on SVN) which has helped tremendously in identifying the fat in the class libraries and spots for easy optimization. Some areas that received attention: StreamReader.ReadLine is much more efficient memory-wise. Zoltan implemented a feature to track the page access to the executable images. Which was used by Zoltan and Ben to reduce the number of page faults required to run an application (AOT and regular uses). Paolo reduced the amount of memory used by our internal data structures. In this release region-locking of files has been turned off by default which will improve IO for some applications, it can be turned on by setting the MONO_STRICT_IO_EMULATION variable. A new profiler: `mono-profiler-aot' has been created that tracks the usage patterns for executables. The output of this profile can be fed back into Mono's AOT compiler to order the functions on the disk to produce precompiled images that have methods in sequential pages. Zoltan implemented frame pointer elimination on x86-64 platforms. Patrik Torstensson and Zoltan improved the performance of methods with exception clauses when the exception object is not used (Bug #62150). Patrik ported the mul_imm optimizations from the old JIT engine to mini. Ben optimized DateTime parsing. What is new in Mono 1.1.9 New Ports Zoltan completed the IA64 (Itanium) port of Mono. The Itanium port is a full 64 bit port of the Mono JIT compiler. Paolo completed the ARM port of Mono, it works on little endian and big endian ARM systems. Dick added support for 64 bit thread ids to the io-layer. Mono can run the IronPython test suite Runtime Carlos implemented publisher policies The generics code performance was largely improved by Michal Moskal and various bugs in the implementation have been fixed thanks to the Nemerle Programming Language team that is making extensive use of it. Iron Python 0.9 works as well as all of its regression tests (Zoltan and Martin). Notice that the IronPython regression tests need various Makefile fixes and some symlinks to cope with filename casing to work. David Waite contributed LinkedList implementation. GDI+ Hisham, Jordi and Peter have adapted GDI+ to use Cairo 1.0 instead of Cairo 0.3 which we were previously using. This upgraded version of GDI+ is much faster and Windows.Forms application feel faster and smoother on Linux as a result. As part of this upgrade numerous bugs were fixed and memory management was audited by Jordi and Peter to eliminate memory leaks. Rectangle drawing operations are faster by 30% now, blitting large images is 50% faster. There are now 500 nunit tests for the library and many new contributions from Mainsoft. Winforms progress Alexander Olk contributed a new theme, the "nice" theme, a screenshot can be seen here. The first version of RichTextBox from Peter debuts in this release and includes an RTF parser. More news on Winforms development are here. Globalization/Internationalization: String Collation. We have a completely new reimplementation of the CompareInfo infrastructure in this release of Mono, a managed implementation of string collation that is compatible with Windows collation. Atsushi Enomoto worked on this project for the past four months before we merged it on this release. Currently the code has to be turned on by setting the MONO_USE_MANAGED_COLLATION environment variable to "yes" In the past we had used ICU but this approach had two problems: the code lived in the C world and the cost of transitioning from managed to unmanaged code for string collation was fairly high. ICU also implemented different semantics than those exposed by .NET and a mapping of one system into the other was not really possible. Globalization/Internationalization: Region information. Atsushi has also contributed a new framework and updated the RegionInfo information. Encodings: Two new encodings are implemented: GB18030 and iso-2022-jp. ADO.NET Suresh deployed a new NUnit and Mono.Data-based testing framework for the System.Data namespace. Suresh implemented OdbcCommandBuilder and fixed various bugs in System.Data.Odbc and SqlClient Providers. Dan implemented OracleCommandBulder based on SqlCommandBulder so you can do inserts, updates, deletes in a DataTable without having to create the SQL to do the inserts, updates, and deletes as well as adding support for OUTPUT parameters and the TIMESTAMP Oracle 9i data type. implemented a quick-and-dirty way to get primary key info and table info (Schema Info support in OracleDataReader) neccessary to support OracleCommandBulder Dan implemented SybaseCommandBuilder; however, it does not work since the SybaseDataReader needs to have SchemaInfo command behavior implemented Fixes to SqlCommandBuilder to get updates to work based on what Suresh did Mono.Data.Sqlite Thomas Zoechling, Jeroen Zwartepoorte and Dan Morgan created various bugfixes and a patch to add named parameters. Joshua made it so several commands can be executed in a single invocation, instead of just the first one (semicolon delimited commands). Assembly Version Numbers Mono assemblies version now default to the beta version numbers (2.0.0.0 and 8.0.0.0 series, by Kornel Pal). ASP.NET A major rewrite to ASP.NET is now available as part of this release, the highlights of the new code include: • Tests: 67,700 lines of new tests: • NUnit test suite for about 50% of the controls. • Extensive standalone tests. • JSUnit (see section later). • Unmanaged I/O: the new implementation uses unmanaged buffers for uploads (HTTP POST for example) and content generation as opposed to the managed buffers that we have today, which greatly reduces the pressure on Mono's GC and also avoids redundant copies of data by sharing buffers as much as possible improving performance. • Use of TCP Cork on Linux to avoid TCP glitches and delays, this reduces the latency to get a full page. • Support for Linux sendfile to transfer static pages (support for more platforms will come later). • XSP now transfers Socket ownership to the AppDomain to avoid round trips and expensive AppDomain boundary crossing increasing performance. • New controls: about 40% of the existing controls were rewritten from scratch with test suites to validate their output. • New application pipeline: a new iterators-based design reduces the complexity and increases the maintainability of the old version. • Support for HttpClientCertificate on XSP, soon to come to Apache. • Improved tracing support. • Latency has been reduced in various key places and the new unmanaged buffers accelerate the processing of medium and large sized pages (small pages remain about the same speed) and large uploads wont disrupt your Mono process. The new ASP.NET stack is brought to you by Eyal Alaluf, Peter Bartok, Jackson Harper, Miguel de Icaza, Ben Maurer, Jordi Mas, Gonzalo Paniagua, Dick Porter, Sebastien Pouliot and Chris Toshok. ASP.NET Configuration The System.Configuration assembly has been mostly implemented and integrated into ASP.NET. Now it is possible to read web configuration files using the new configuration object model (Lluis). XSP Web Server XSP has been split up in two: Mono.WebServer.dll and xsp.exe. XSP only handles command line parsing and Mono.WebServer.dll is the assembly that implements the functionality. Mono.WebServer.dll is an embeddable library that can be used to host ASP.NET in your own applications. In the past people resorted to making a replica of XSP in their applications if they wanted to host ASP.NET. This was contributed by Brian Ritchie a few months back, and its finally on the main trunk. The Mono.WebServer.dll deployment model follows the new Guidelines for Library Deployment and there are versions available for running on the 1.x and 2.x profiles. XSP now also takes advantage of certain Linux features like sendfile and TCP Cork to improve performance. XSP also contains support for HTTPS connections using the --https flag by Brian Ritchie. JScript.NET Compiler Progress: JScript now passes 4586 tests of the Mozilla ECMAScript test suite out of 5994 (76.51%) Cesar added various new features to the compiler: • Support for value types and reference types. • Support for conversions and boxing. • Exact support for numeric values. • Optimization when accessing literal's methods that belong its prototype. • Port Mozilla's decompiler for infrastructure that's used in closure's construction. • Report filename and line number on errors. Marek implemented JScriptCodeProvider and stubbed JScriptCodeGenerator. Florian contributed many updates to the JScript runtime as part of his collaboration in Google's Summer of Code project: • Library functions: Array.prototype, Number.prototype, String.prototype and many more. • Integrated the Mozilla test suite into Mono. • LateBinding logic including prototype chain look up. • Anonymous functions. • Decompilation of functions to their source code. • delete and other operators. New: JSUnit As part of the new ASP.NET testing framework Chris Toshok developed JSUnit: a new JavaScript unit test framework to automate running the tests for various web controls and validate that they do the right thing. Monodoc Monodoc now defaults to use the Mozilla rendering engine to display its values, thanks to Mario Sopena and the Google Summer of Code effort and it also uses CSS to render its pages. Monodoc will now also show pending contributions that you might have in your file system as well as including search support. Tools AL (assembly linker) can now sign, and delay-sign, assemblies and makecert can now generate PKCS#12 files (Sebastien); Code Access Security Sebastien continued his work on CAS: • Support for FullTrustAssemblies in policy resolution; • IsolatedStorage now supports user quotas (when the security manager is enabled); • PermissionRequestEvidence is now part of the evidences during policy resolution; • Many bugs and corner cases were fixed. Mono's SSL Stack Improvements to the asynchronous methods in SslClientStream and SslServerStream were contributed by JD Conley: they are now thread safe, support asynchronous handshaking plus various important fixes. Support for _optional_ client-side mutual authentication (Sebastien). Support for server-side mutual authentication (Sebastien) Rewritten async support for Ssl[Client|Server]Stream (JD Conley); Mono.Cairo Hisham and John Luke have upgraded the Mono.Cairo API to match the recently released Cairo 1.0 as well as providing documentation for the new API in Monodoc. There are new Gtk and X11 samples included in the distribution. Mono.Posix Mono.Posix: This assembly now provides a remoting channel based on Unix sockets. It is a standalone channel and does not require the System.Runtime.Remoting assembly to work (Lluis). C# Due to popular request, the C# compiler now reports precise error/warning location with both line and column numbers (Atsushi). Support for the Namespace Alias Qualifier to the C# compiler was added by Hari. The compiler went through many bug fixes and a few internal structural changes as anonymous methods, iterators and partial classes start to get used by developers. Contributors include Martin, Harinath, Marek, Miguel and Atsushi which has been on a bug fixing quest on this release. Still missing for full 2.x support: external assembly alias and friend assemblies. ilasm/monodis Our IL assembler and disassembler for the first time are able to round trip all the Mono assemblies and we consider them finally complete for real use. Thanks to Ankit for fixing all the remaining issues. VB.NET Manjula and Sudha upgraded various pieces of the Basic compiler and its runtime. Npgsql: Postgress provider. Updates from Francisco Figueiredo: Better metadata support. Thanks Josh Cooley (jbnpgsql at tuxinthebox dot net). Added refcursor parameter support. Now, refcursors can be passed as arguments for functions. Npgsql now can handle functions which return refcursor and setof refcursor. Now, results are returned as NpgsqlDataReader resultsets. There is no need to explicitly call "fetch all ..." Critical bug fixed with ConnectorPool when creating MinPoolSize connections. Connections weren't properly handled. Thanks Josh Cooley (jbnpgsql at tuxinthebox dot net) Firebird provider From Carlos: Support for the new INSERT ... RETURNING statement of Firebird v2.0 Added support to the new CREATE SEQUENCE and SET GENERATOR statements to the FbBatchExecution class. Add parameter information for DML statements and allow the configuration of quoted identifiers usage to the DataAdapter Configuration Wizard. @ text @d1 4 a4 35 $NetBSD: patch-ak,v 1.6 2005/07/31 15:26:58 recht Exp $ --- libgc/pthread_support.c.orig 2005-12-07 06:42:46.000000000 +0100 +++ libgc/pthread_support.c @@@@ -68,7 +68,7 @@@@ # endif # if (defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) || \ - defined(GC_DARWIN_THREADS)) && !defined(USE_PTHREAD_SPECIFIC) + defined(GC_DARWIN_THREADS) || defined(GC_NETBSD_THREADS)) && !defined(USE_PTHREAD_SPECIFIC) # define USE_PTHREAD_SPECIFIC # endif @@@@ -120,7 +120,10 @@@@ # include #endif /* GC_DARWIN_THREADS */ - +#if defined(GC_NETBSD_THREADS) +# include +# include +#endif #if defined(GC_DGUX386_THREADS) # include @@@@ -978,7 +981,7 @@@@ void GC_thr_init() # if defined(GC_FREEBSD_THREADS) GC_nprocs = 1; # endif -# if defined(GC_DARWIN_THREADS) +# if defined(GC_DARWIN_THREADS) || defined(GC_NETBSD_THREADS) int ncpus = 1; size_t len = sizeof(ncpus); sysctl((int[2]) {CTL_HW, HW_NCPU}, 2, &ncpus, &len, NULL, 0); @@@@ -1115,8 +1118,24 @@@@ void GC_end_blocking(void) { d12 1 a12 1 +/* A wrapper for the standard C nanosleep function */ d25 1 a25 2 -int WRAP_FUNC(sleep) (unsigned int seconds) +unsigned int WRAP_FUNC(sleep) (unsigned int seconds) a26 22 int result; @@@@ -1126,6 +1145,19 @@@@ int WRAP_FUNC(sleep) (unsigned int secon return result; } +/* A wrapper for the standard C usleep function */ +int WRAP_FUNC(usleep) (useconds_t microseconds) +{ + int result; + + GC_start_blocking(); + result = REAL_FUNC(usleep)(microseconds); + GC_end_blocking(); + + return result; +} + + struct start_info { void *(*start_routine)(void *); void *arg; @ 1.6 log @update to mono 1.1.8 Patch provided by Jerome Laban. The patch also includes improved also includes improved NetBSD support (implemented by Jerome). Hi mono 1.1.8: Debugger The Mono Debugger is being released in sync for the first time with the Mono runtime. We need testers to try it out (the command line debugger is called `mdb'). Windows.Forms Here a toplevel list of all things new for 1.1.8 MWF: DomainUpDown and NumericUpDown implemented First version with DataGrid support (still incomplete) First version with MDI support (still incomplete) Drag & Drop implemented for X11 and Win32 Clipboard implemented for X11 and Win32 HelpProvider implemented ErrorProvider implemented Cursor class completed ResXWriter and ResXReader completed SWF.Timers now working properly A bunch of compatibility fixes Image I/O now working on Win32 (this is actually in System.Drawing) Scaling, Performance Harinath has been fine tuning our Regular Expressions class library to reduce allocations which translate into an increase in performance (about 10% on the output match). Regexp.Replace will now be O(number of $s in the replacement string) instead of O(length of replacement string). The The 1024 limit on Socket.Select is gone, Mono will now use poll when available. System.Web will consume less memory as well (Gonzalo). Code Access Security Sebastien's progress in this release: AppDomain based sandboxes are supported (limited by #74411); Stack propagation for async code, threads and SWF; Default policies (like LocalIntranet, Internet...) are now supported; The new features allows NRobot 0.20 (http://home.gna.org/nrobot/) to "work" (as much as the permissions are currently present in the class libraries) on Mono 1.1.8 with a single modification (change the imperative assert in NRobot/Engine/GameArena.cs to a declarative assert). ASP.NET 2.x controls Lluis completed various new controls for ASP.NET 2.x: ImageMap, Wizard, SiteMapDataSource and SiteMapPath. Reflection Lluis added support for producing debugging information from Reflection.Emit. This means that all the Reflection-based compilers and VMs will be able to produce debugging information and have the Mono debugger step through the code. Packaging mono-ikvm has been merged into mono-core. Should make it easier for people to get ikvm mono-nunit is back with the nunit stuff. Needed for mono-tools Mono-shlib-cop Jonathan Pryor has contributed this tool to assist developers that use P/Invoke. mono-shlib-cop is a tool that inspects a managed assembly looking for erroneous or suspecious behavior of shared libraries. The tool takes one or more assembly filenames, and inspects each assembly specified. The errors checked for include: Does the shared library exist? Does the requested symbol exist within the shared library? It also checks if a program uses shared libraries that are part of a -devel package. VB.NET New on this release: late binding, decimal, named arguments, optiona byrefs, Mono.Unix The Mono.Unix namespace will be replacing the old Mono.Posix in Mono 1.2 and is still under development. In this release cleanups continued and a few new features are present. Changes since the last release: Removed types: MapAttribute, IncludeAttribute, ErrorMarshal, ErrorMarshal.ErrorTranslator Removed UnixMarshal.IsErrorDescriptionThreadSafe property Renamed LockFlags enum to LockfCommand Removed StdioFileStream.FilePosition property and replaced with RestoreFilePosition() and SaveFilePosition() methods Renamed UnixConvert.ToFilePermissions(string) to UnixConvert.FromOctalPermissionString(string) Additions Syscall.execv(), Syscall.execve(), Syscall.execvp(), Syscall.fexecve() Syscall.fcntl (int, FcntlCommand, DirectoryNotifyFlags) Syscall.mmap, Syscall.munmap, Syscall.msync, Syscall.mlock, Syscall.munlock, Syscall.mlockall, Syscall.munlockall, Syscall.mremap, Syscall.mincore, Syscall.remap_file_pages Syscall.mkstemp Thread safety for "obvious" exports from Stdlib, Syscall UnixConvert.ToOctalPermissionString, UnixConvert.FromUnixPermissionString, UnixConvert.ToUnixPermissionString UnixFileInfo uses stat(2) now, not lstat(2), so a UnixFileInfo created on a symlink will give information about the target, not the link. Lots of documentation added JScript Cesar implemented access to local variables in nested functions in JScript. Bug fixes, scalability There are plenty of bug fixes, performance and scalability improvements that are too detailed to list on the release notes. mono 1.1.7: The Mono core is pretty much complete for the 1.2 release, at this point we are only waiting for Windows.Forms to be completed before we can ship it. At this point we are scheduled to release Mono 1.2 in September. In the meantime, Mono development has fallen into two categories: New code: Windows.Forms, libraries from the 2.x profile (ASP.NET 2, ADO.NET 2), new compilers (JScript, Basic, C# 2.0). ie, non-core components. New VM features: cross-platform register allocator, new string collation framework, precise garbage collector. These are being developed on either branches or on separate trees and do not affect trunk. The above setup allows us to continue development without interfering with the stability of Mono 1.1.x. New I/O Layer In Mono 1.1.7 we are including Dick Porter's new IO-Layer, which is daemon-less. Before 1.1.7 Mono would always launch an auxiliary process that would be used by multiple Mono programs to share information like: global mutexes (named mutexes), file sharing status per-file, process and thread status. Mono no longer requires a separate shared process to provide the previous features, this has significantly improved Mono's I/O performance. Beagle is three times as fast indexing files and xsp tripled its speed. Http Client Interactions In the past the HttpWebRequest could starve the ThreadPool and it would lead to deadlocks as documented on our web site. Gonzalo deployed a new implementation that does not have these problems and can take advantage of Linux epoll or kqueue. This code not only eliminated the potential deadlocks, but also improved the client http throughput by avoiding unnecessary context switches. Also ReadWriteTimeout is supported and Abort works properly now. FreeBSD support Thanks to Bill Middleton support for i386 FreeBSD (tested against 5.4 and 6.x-CURRENT) is now available. Windows.Forms Extensive progress on the Windows.Forms support code since the March 18th release. Jackson wrote a new double-buffering framework to bring our implementation in line with the expected behavior. Databinding is now supported on this release (simple and complex data binding), not all controls are ready though, controls that support it: ListBox, CheckedListBox and ComboBox (Jackson and Jordi). Alexander Olk implemented the file dialogs and did various touch-ups to other dialogs and widgets. Complete widgets: ImageListStreamer (Jackson), Prototype widgets: DataGrid widget and data container widgets (Jordi) and RichTextBox (Peter) ASP.NET New ASP.NET 2.0 controls completed: ButtonField, DetailsView, FormView, GridView, CheckBoxField, HyperlinkField, ImageField, TemplateField by Lluis. Implemented support for two-way bindings in ASP.NET, ObjectDataSource and various improvements to the Menu control. Gonzalo added support for code render syntax inside non-server tags, ie., > C# Compiler Hari and Marek continue the work on making the compiler comply more strictly to the C# specification. In some areas the compiler is faster, and consumes less memory, but it also provides better error messages and includes many new warnings that before were ignored. Martin synchronized the generics compiler codebase with our main compiler codebase. Also all bug reported on the generics compiler (except two parsing errors) have now been fixed and the generics class libraries have been modified to match the Beta2 libraries. Marek implemented C# 2.0 conditional attributes and DefaultCharSet attribute. SSL/TLS Many important fixes from Sebastien: Fixed asynchronous operations; Fixed support for client-side certificates; Performance enhancements; Security Continued work on the CAS from Sebastien (--security flag). Exposed more of the Mono.Security libraries as the .NET 2.x framework includes more features. New Assemblies. The following assemblies are now functional: System.Configuration.Install Written by Muthu Kannan and Harinath Raja. System.ServiceProcess: Joerg Rosenkranz Completed the support and implemented the service host daemon. JavaScript Cesar's effort on JScript continue, not the compiler implements: Strict-Equality operators Eval RegularExpressionLiteral For-in statement Custom constructors Increment/Decrement operators First-class functions Plus bug fixing. The JScript's runtime support now supports: ArrayConstructor's CreateInstance function ArrayPrototype's join method JSFieldInfo's GetValue and SetValue functions JScriptException's constructor Initial implementation of LateBinding's CallValue and SetIndexedPropertyValueStatic Basic Language Manjula, Sudha and Ankit continued working on the Basic compiler and the Basic runtime: Implemented "End statement" Support "Exit Function" Support declaration of decimal numbers. Support 'Or' argument of AttributeTargets in AttributeUsage Conditional Constant Directives Support expressions for directives Support Reference Parameter when parameters and arguments are different The runtime now features late binding: it is 75% complete. It works with sub, functions, properties and fields, arrays. Late binding fit in well with simple expressions (like in conditional expressions and arithmatic expressions). Finally, there is support for default values using an attribute by round-tripping and patching the runtime. ADO.NET SQLServer: Added support for Asynchronous command execution (Ankit and Suresh). Various disconnected mode improvements: loading datatables. Mono.Posix assembly There is a new UnixListener and UnixClient classes in the Mono.Unix namespace. Build System Users will have to do make at least once in Mono before they can do make in any directory. @ text @d1 1 a1 1 $NetBSD$ d3 1 a3 1 --- libgc/pthread_support.c.orig 2005-06-19 11:59:53.000000000 +0200 d26 1 a26 1 @@@@ -956,7 +959,7 @@@@ void GC_thr_init() d35 1 a35 1 @@@@ -1093,8 +1096,24 @@@@ void GC_end_blocking(void) { d61 1 a61 1 @@@@ -1104,6 +1123,19 @@@@ int WRAP_FUNC(sleep) (unsigned int secon @ 1.5 log @update to mono-1.1.5 The latest development release -- which is recommended for all users by the mono project. Major highlights include Nullable Types and Fixed Size Buffer features in the compiler; Much more improved Windows.Forms implementations; Increased performance, reduced memory usage. See the detailed release notes here: http://www.go-mono.com/archive/1.1.5/ @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.4 2004/06/26 20:19:16 recht Exp $ d3 4 a6 19 --- mono/metadata/mono-config.c.orig 2004-06-19 20:03:54.000000000 +0200 +++ mono/metadata/mono-config.c 2004-06-26 14:02:25.000000000 +0200 @@@@ -285,7 +285,7 @@@@ home = g_get_home_dir (); for (i = 0; (aname = get_assembly_filename (assembly, i)) != NULL; ++i) { - cfg = g_build_filename (mono_get_config_dir (), "mono", "assemblies", aname, cfg_name, NULL); + cfg = g_build_filename (mono_get_config_dir (), "assemblies", aname, cfg_name, NULL); got_it += mono_config_parse_file_with_context (&state, cfg); g_free (cfg); @@@@ -322,7 +322,7 @@@@ return; } - mono_cfg = g_build_filename (mono_get_config_dir (), "mono", "config", NULL); + mono_cfg = g_build_filename (mono_get_config_dir (), "config", NULL); mono_config_parse_file (mono_cfg); g_free (mono_cfg); d8 73 @ 1.4 log @update to mono-0.97 (release candidate 1) Changes include: - any bug-fixes and code generator improvements - new Thread.Abort implementation, - I/O libraries - speed improvements ... and much more @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.3 2004/05/11 17:33:42 recht Exp $ @ 1.3 log @Update to mono-0.91 (beta1). Too many changes to list them all. For a complete list see: http://www.go-mono.com/archive/beta1/beta1.html Some of the higlights: - Global Assembly Cache (GAC) - CLS support in the C# compiler - new SQL expression parser - new Interpreter @ text @d1 1 a1 1 $NetBSD$ d3 3 a5 3 --- mono/metadata/mono-config.c.orig 2004-05-11 14:06:35.000000000 +0200 +++ mono/metadata/mono-config.c 2004-05-11 14:06:59.000000000 +0200 @@@@ -308,7 +308,7 @@@@ d14 1 a14 1 @@@@ -345,7 +345,7 @@@@ @ 1.2 log @update to 0.29 lots of updates fixes see http://www.go-mono.com/archive/mono-0.29.html for details @ text @d3 4 a6 3 --- mono/metadata/mono-config.c.orig 2003-11-27 21:10:10.000000000 +0100 +++ mono/metadata/mono-config.c 2003-11-27 21:12:30.000000000 +0100 @@@@ -258,7 +258,7 @@@@ d8 12 a19 4 /* Ensure mono_cfg_dir gets a value */ mono_install_get_config_dir (); - mono_cfg = g_build_filename (mono_cfg_dir, "mono", "config", NULL); + mono_cfg = g_build_filename (mono_cfg_dir, "config", NULL, NULL); @ 1.1 log @Add missing LIBTOOL_OVERRIDE for libgc and add a libgc patch from Christian Limpach wrt to signal handling. Pull in FreeBSD fixes from the FreeBSD port and disable pthread for NetBSD and FreeBSD for libgc. Fix a sysconfdir related path problem. bump PKGREVISION @ text @@