mono.git
9 years agoBump version to 3.10.
Zoltan Varga [Mon, 1 Sep 2014 15:47:11 +0000 (11:47 -0400)]
Bump version to 3.10.

9 years ago[runtime] Factor out the nested types computation code from mono_class_get_nested_typ...
Zoltan Varga [Sat, 19 Jul 2014 02:07:58 +0000 (04:07 +0200)]
[runtime] Factor out the nested types computation code from mono_class_get_nested_types () and reorganize it so most of the work is done outside the loader lock.

9 years ago[runtime] Use the image locks in many places instead of the loader lock.
Zoltan Varga [Sat, 19 Jul 2014 01:53:48 +0000 (03:53 +0200)]
[runtime] Use the image locks in many places instead of the loader lock.

9 years ago[runtime] Remove a missed mono_loader_unlock () from mono_metadata_get_header ().
Zoltan Varga [Sat, 19 Jul 2014 01:06:11 +0000 (03:06 +0200)]
[runtime] Remove a missed mono_loader_unlock () from mono_metadata_get_header ().

9 years ago[runtime] Reorganize mono_method_signature_checked () so most of the work is done...
Zoltan Varga [Sat, 19 Jul 2014 00:44:46 +0000 (02:44 +0200)]
[runtime] Reorganize mono_method_signature_checked () so most of the work is done outside the loader lock.

9 years ago[runtime] Reorganize mono_method_get_header () so most of the work is done outside...
Zoltan Varga [Sat, 19 Jul 2014 00:18:18 +0000 (02:18 +0200)]
[runtime] Reorganize mono_method_get_header () so most of the work is done outside the loader lock.

9 years ago[runtime] Remove locking from the mono_get_method_constrained_... () functions, its...
Zoltan Varga [Fri, 18 Jul 2014 12:04:30 +0000 (14:04 +0200)]
[runtime] Remove locking from the mono_get_method_constrained_... () functions, its not needed.

9 years ago[runtime] Reorganize mono_class_setup_interfaces () so most of the work is done outsi...
Zoltan Varga [Fri, 18 Jul 2014 11:45:21 +0000 (13:45 +0200)]
[runtime] Reorganize mono_class_setup_interfaces () so most of the work is done outside the loader lock.

9 years ago[runtime] Move the initialization of class->has_finalize into mono_class_has_finalize...
Zoltan Varga [Fri, 18 Jul 2014 11:15:38 +0000 (13:15 +0200)]
[runtime] Move the initialization of class->has_finalize into mono_class_has_finalizer () in most cases.

9 years ago[runtime] Reorganize mono_class_setup_methods () so most of the work is done outside...
Zoltan Varga [Fri, 18 Jul 2014 03:09:21 +0000 (05:09 +0200)]
[runtime] Reorganize mono_class_setup_methods () so most of the work is done outside the loader lock.

9 years ago[runtime] Reorganize mono_class_has_finalizer () so most of the work is done outside...
Zoltan Varga [Fri, 18 Jul 2014 02:43:50 +0000 (04:43 +0200)]
[runtime] Reorganize mono_class_has_finalizer () so most of the work is done outside the loader lock.

9 years ago[runtime] Reorganize mono_class_setup_events () so most of the work is done outside...
Zoltan Varga [Fri, 18 Jul 2014 02:33:26 +0000 (04:33 +0200)]
[runtime] Reorganize mono_class_setup_events () so most of the work is done outside the loader lock.

9 years ago[runtime] Reorganize mono_class_setup_properties () so most of the work is done outsi...
Zoltan Varga [Fri, 18 Jul 2014 02:25:42 +0000 (04:25 +0200)]
[runtime] Reorganize mono_class_setup_properties () so most of the work is done outside the loader lock.

9 years ago[runtime] Use the image lock in mono_type_from_typespec () instead of the loader...
Zoltan Varga [Thu, 17 Jul 2014 22:02:41 +0000 (00:02 +0200)]
[runtime] Use the image lock in mono_type_from_typespec () instead of the loader lock. Also do most of the work outside the lock.

9 years agoMerge pull request #1246 from schani/feature-separate-pointer-queue
Rodrigo Kumpera [Mon, 1 Sep 2014 14:13:41 +0000 (10:13 -0400)]
Merge pull request #1246 from schani/feature-separate-pointer-queue

[sgen] Refactor pointer queue out of pinning code.

9 years agoPut back csharp project removed in 0450000dc487c81cbf4e61a919caafe124da353e
Marek Safar [Mon, 1 Sep 2014 12:58:32 +0000 (14:58 +0200)]
Put back csharp project removed in 0450000dc487c81cbf4e61a919caafe124da353e

9 years ago[mcs] Fix removing incomplete generic types from eval cache. Fixes #22393
Marek Safar [Mon, 1 Sep 2014 12:57:23 +0000 (14:57 +0200)]
[mcs] Fix removing incomplete generic types from eval cache. Fixes #22393

9 years ago[mcs] Parsing of ternary expressions whose then condition is a lambda. Fixes #22523
Marek Safar [Mon, 1 Sep 2014 11:26:48 +0000 (13:26 +0200)]
[mcs] Parsing of ternary expressions whose then condition is a lambda. Fixes #22523

9 years ago[mcs] Remove wrong test
Marek Safar [Mon, 1 Sep 2014 11:22:21 +0000 (13:22 +0200)]
[mcs] Remove wrong test

9 years agoFixes c2ac44d3dd9520ddd9abdb672f957ea4bb329f2f
Marek Safar [Mon, 1 Sep 2014 10:43:32 +0000 (12:43 +0200)]
Fixes c2ac44d3dd9520ddd9abdb672f957ea4bb329f2f

9 years ago[system.data.linq] Delay reflection hit to actual execution point. Workarounds #22522
Marek Safar [Mon, 1 Sep 2014 09:22:57 +0000 (11:22 +0200)]
[system.data.linq] Delay reflection hit to actual execution point. Workarounds #22522

9 years ago[system.net.http] Update RequestMessage.RequestUri.AbsoluteUri after redirect. Fixes...
Marek Safar [Mon, 1 Sep 2014 08:09:09 +0000 (10:09 +0200)]
[system.net.http] Update RequestMessage.RequestUri.AbsoluteUri after redirect. Fixes #22383

9 years ago[runtime] Fix the windows build.
Zoltan Varga [Sun, 31 Aug 2014 08:34:10 +0000 (04:34 -0400)]
[runtime] Fix the windows build.

9 years ago[mcs] Revert to broken native csc definite assignment for structs
Marek Safar [Sat, 30 Aug 2014 11:51:58 +0000 (13:51 +0200)]
[mcs] Revert to broken native csc definite assignment for structs

9 years ago[mcs] nonliteral constants pattern matching
Marek Safar [Sat, 30 Aug 2014 10:05:42 +0000 (12:05 +0200)]
[mcs] nonliteral constants pattern matching

9 years ago[xbuild] Fix InstalledAssemblyTables signature
Marek Safar [Sat, 30 Aug 2014 06:23:26 +0000 (08:23 +0200)]
[xbuild] Fix InstalledAssemblyTables signature

9 years ago[mcs] simple constants pattern matching
Marek Safar [Fri, 29 Aug 2014 10:35:47 +0000 (12:35 +0200)]
[mcs] simple constants pattern matching

9 years ago[aot] Fix full-aot support when the AOT cache is enabled.
Zoltan Varga [Sat, 30 Aug 2014 03:47:33 +0000 (23:47 -0400)]
[aot] Fix full-aot support when the AOT cache is enabled.

9 years ago[jit] Avoid hardcoding tls offsets into the aot versions of the monitor enter/exit...
Zoltan Varga [Sat, 30 Aug 2014 03:47:01 +0000 (23:47 -0400)]
[jit] Avoid hardcoding tls offsets into the aot versions of the monitor enter/exit trampolines on amd64.

9 years ago[jit] Avoid uninitialized fields in the MonoDelegateTrampInfo structure.
Zoltan Varga [Fri, 29 Aug 2014 23:30:15 +0000 (19:30 -0400)]
[jit] Avoid uninitialized fields in the MonoDelegateTrampInfo structure.

9 years ago[runtime] Fix reading past the end of a string when setting the native thread name.
Zoltan Varga [Fri, 29 Aug 2014 23:29:48 +0000 (19:29 -0400)]
[runtime] Fix reading past the end of a string when setting the native thread name.

9 years ago[runtime] Fix a problem introduced by 522663cdfad5860ffbb84b2827b9d0156c4ed623.
Zoltan Varga [Fri, 29 Aug 2014 21:42:37 +0000 (17:42 -0400)]
[runtime] Fix a problem introduced by 522663cdfad5860ffbb84b2827b9d0156c4ed623.

9 years ago[runtime] Add an adapter between the MonoPrintCallback and the eglib GPrintFunc types.
Zoltan Varga [Fri, 29 Aug 2014 21:03:23 +0000 (17:03 -0400)]
[runtime] Add an adapter between the MonoPrintCallback and the eglib GPrintFunc types.

9 years ago[sgen] Refactor pointer queue out of pinning code.
Mark Probst [Wed, 22 Jan 2014 22:08:19 +0000 (14:08 -0800)]
[sgen] Refactor pointer queue out of pinning code.

9 years agoFix mono_marshal_free_ccw (). Fixes #22414.
Tom Hindle [Fri, 29 Aug 2014 20:05:50 +0000 (16:05 -0400)]
Fix mono_marshal_free_ccw (). Fixes #22414.

9 years ago[bcl] Catch exceptions thrown by SerialPortStream.Dispose () when called from the...
Zoltan Varga [Fri, 29 Aug 2014 19:06:25 +0000 (15:06 -0400)]
[bcl] Catch exceptions thrown by SerialPortStream.Dispose () when called from the finalizer. Fixes #15514.

9 years ago[sdb] Fix the checking of the handshake message.
Zoltan Varga [Fri, 29 Aug 2014 19:04:40 +0000 (15:04 -0400)]
[sdb] Fix the checking of the handshake message.

9 years ago[runtime] Add functionality for AOTing assemblies on demand when they are first used...
Zoltan Varga [Fri, 29 Aug 2014 18:28:02 +0000 (14:28 -0400)]
[runtime] Add functionality for AOTing assemblies on demand when they are first used. Configurable using a new "aotconfig" config element, i.e. <aotcache assemblies="mscorlib System"/>.

9 years ago[runtime] Add Steve Reid's public domain SHA1 code.
Zoltan Varga [Fri, 29 Aug 2014 18:20:40 +0000 (14:20 -0400)]
[runtime] Add Steve Reid's public domain SHA1 code.

9 years ago[eglib] Fix stderr output redirection.
Rodrigo Kumpera [Fri, 29 Aug 2014 18:33:27 +0000 (14:33 -0400)]
[eglib] Fix stderr output redirection.

9 years agoMerge pull request #1242 from esdrubal/xelement
Marek Safar [Fri, 29 Aug 2014 10:16:24 +0000 (01:16 -0900)]
Merge pull request #1242 from esdrubal/xelement

Fixes XContainer attempt to create a XNode from a null value.

9 years agoFixes XContainer attempt to create a XNode from a null value.
Marcos Henrich [Fri, 29 Aug 2014 09:59:39 +0000 (17:59 +0800)]
Fixes XContainer attempt to create a XNode from a null value.
Fixes #20151.

9 years agoTest XElement constructed from array with null values as object.
Marcos Henrich [Fri, 29 Aug 2014 09:57:31 +0000 (17:57 +0800)]
Test XElement constructed from array with null values as object.
Covers #20151.

9 years agoMerge pull request #1237 from esdrubal/xdocument
Marek Safar [Fri, 29 Aug 2014 06:05:14 +0000 (21:05 -0900)]
Merge pull request #1237 from esdrubal/xdocument

Changed XObject OnChanged and OnChanging to use Owner.

9 years agoMerge pull request #1241 from RyanMelenaNoesis/patch-1
Marek Safar [Fri, 29 Aug 2014 06:03:44 +0000 (21:03 -0900)]
Merge pull request #1241 from RyanMelenaNoesis/patch-1

Update X509CertificateValidationMode.cs

9 years agoUpdate X509CertificateValidationMode.cs
Ryan Melena [Fri, 29 Aug 2014 01:26:08 +0000 (20:26 -0500)]
Update X509CertificateValidationMode.cs

Remove explicit enum values for sake of consistency with existing enum.

9 years agoMerge pull request #1240 from NoesisLabs/master
Alexis Christoforides [Fri, 29 Aug 2014 00:21:58 +0000 (20:21 -0400)]
Merge pull request #1240 from NoesisLabs/master

Correct duplicate X509CertificateValidationMode definition error

9 years agoCorrect duplicate X509CertificateValidationMode definition error caused by enum chang...
Ryan J. Melena [Fri, 29 Aug 2014 00:01:48 +0000 (19:01 -0500)]
Correct duplicate X509CertificateValidationMode definition error caused by enum changing assemblies between .NET 4.0 and 4.5.

9 years agoMerge pull request #1200 from akoeplinger/remove-jvm
Zoltan Varga [Thu, 28 Aug 2014 23:17:43 +0000 (19:17 -0400)]
Merge pull request #1200 from akoeplinger/remove-jvm

[Cleanup] Remove TARGET_JVM

9 years agoRevert "Merge pull request #1219 from panzone/los_partial_marking"
Rodrigo Kumpera [Thu, 28 Aug 2014 23:12:51 +0000 (19:12 -0400)]
Revert "Merge pull request #1219 from panzone/los_partial_marking"

This reverts commit 397176d70101b9bcb7b016ad028378cadb3d302e, reversing
changes made to 33c345a945fb67d8964213dc032214ba65e55321.

9 years agoMerge pull request #1235 from directhex/master
Zoltan Varga [Thu, 28 Aug 2014 22:50:47 +0000 (18:50 -0400)]
Merge pull request #1235 from directhex/master

Add g_Ctoc to list of acceptable g_* symbols in mono, for test-eglib-remap

9 years ago[runtime] Fix a crash in the logging profiler when enumerating elf images.
Zoltan Varga [Thu, 28 Aug 2014 20:44:45 +0000 (16:44 -0400)]
[runtime] Fix a crash in the logging profiler when enumerating elf images.

9 years agoMerge pull request #1238 from esdrubal/datetimeoffset
Rodrigo Kumpera [Thu, 28 Aug 2014 20:12:47 +0000 (16:12 -0400)]
Merge pull request #1238 from esdrubal/datetimeoffset

Fixed DateTime compiler errors.

9 years agoMerge pull request #1236 from NoesisLabs/master
Alexis Christoforides [Thu, 28 Aug 2014 20:08:46 +0000 (16:08 -0400)]
Merge pull request #1236 from NoesisLabs/master

Support JWT functionality in System.IdentityModel.Tokens.Jwt

9 years agoFixed DateTime compiler errors.
Marcos Henrich [Thu, 28 Aug 2014 19:58:03 +0000 (03:58 +0800)]
Fixed DateTime compiler errors.

9 years agoChanged XObject OnChanged and OnChanging to use Owner.
Marcos Henrich [Thu, 28 Aug 2014 18:09:12 +0000 (02:09 +0800)]
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

9 years agoTest XDocument.Changed event. Covers #18772.
Marcos Henrich [Thu, 28 Aug 2014 18:00:30 +0000 (02:00 +0800)]
Test XDocument.Changed event. Covers #18772.

9 years agoAdd compiler pragmas for conditional .NET 4.5 compilation
Ryan J. Melena [Thu, 28 Aug 2014 15:34:09 +0000 (10:34 -0500)]
Add compiler pragmas for conditional .NET 4.5 compilation

9 years agoAdd file comment headers. This change is released under the MIT license.
Ryan J. Melena [Thu, 28 Aug 2014 15:05:58 +0000 (10:05 -0500)]
Add file comment headers.  This change is released under the MIT license.

9 years agoFix VS changes to .csproj file. This change is released under the MIT license.
Ryan J. Melena [Thu, 28 Aug 2014 14:23:51 +0000 (09:23 -0500)]
Fix VS changes to .csproj file.  This change is released under the MIT license.

9 years agoMinimal implementation of classes and methods necessary to support the JWT functional...
Ryan J. Melena [Thu, 28 Aug 2014 14:15:15 +0000 (09:15 -0500)]
Minimal implementation of classes and methods necessary to support the JWT functionality in System.IdentityModel.Tokens.Jwt (https://github.com/MSOpenTech/azure-activedirectory-identitymodel-extensions-for-dotnet).  This change is released under the MIT license.

9 years agoMerge pull request #1219 from panzone/los_partial_marking
Rodrigo Kumpera [Thu, 28 Aug 2014 16:28:05 +0000 (12:28 -0400)]
Merge pull request #1219 from panzone/los_partial_marking

[Sgen parallel collector] Los partial marking

9 years agoAdd g_Ctoc to list of acceptable g_* symbols in mono, for test-eglib-remap.
Jo Shields [Thu, 28 Aug 2014 16:26:31 +0000 (17:26 +0100)]
Add g_Ctoc to list of acceptable g_* symbols in mono, for test-eglib-remap.

In theory, this test is used to verify that no unknown glib symbols exist
in eglib. However, it's tripping on g_Ctoc which is not a glib (or eglib)
symbol, instead it comes from the IO layer - and glib symbols never use
uppercase characters anyway

9 years agoMerge pull request #1234 from esdrubal/datetimeoffset
Marek Safar [Thu, 28 Aug 2014 16:06:30 +0000 (07:06 -0900)]
Merge pull request #1234 from esdrubal/datetimeoffset

DateTime.CoreParseExact.

9 years ago[xbuild] Allow metadata in skipped task output expressions
Marek Safar [Thu, 28 Aug 2014 15:44:42 +0000 (17:44 +0200)]
[xbuild] Allow metadata in skipped task output expressions

9 years agoRemoved unreachable code.
Marcos Henrich [Thu, 28 Aug 2014 15:43:10 +0000 (23:43 +0800)]
Removed unreachable code.

9 years agoChanged DateTimeOffset.ParseExact to use DateTime.CoreParseExact.
Marcos Henrich [Thu, 28 Aug 2014 15:39:03 +0000 (23:39 +0800)]
Changed DateTimeOffset.ParseExact to use DateTime.CoreParseExact.

9 years agoImproved DateTime._DoParse offset logic.
Marcos Henrich [Thu, 28 Aug 2014 15:37:29 +0000 (23:37 +0800)]
Improved DateTime._DoParse offset logic.

9 years agoRemoved line causing problems when 'K' was followed by something.
Marcos Henrich [Thu, 28 Aug 2014 15:35:48 +0000 (23:35 +0800)]
Removed line causing problems when 'K' was followed by something.

9 years agoImproved DateTime parsing of years.
Marcos Henrich [Thu, 28 Aug 2014 15:31:19 +0000 (23:31 +0800)]
Improved DateTime parsing of years.
Years with 5 or more digits and less than 1000 are now correctly parsed.

9 years agoCreated DateTime.CoreParseExact so to be used by DateTimeOffset.
Marcos Henrich [Thu, 28 Aug 2014 15:27:57 +0000 (23:27 +0800)]
Created DateTime.CoreParseExact so to be used by DateTimeOffset.

9 years ago[mcs] Fixes failing error test
Marek Safar [Thu, 28 Aug 2014 14:35:31 +0000 (16:35 +0200)]
[mcs] Fixes failing error test

9 years ago[mcs] type pattern expression
Marek Safar [Wed, 27 Aug 2014 15:56:47 +0000 (17:56 +0200)]
[mcs] type pattern expression

9 years agoChanged DateTime._DoParser to support DateTimeOffset patterns.
Marcos Henrich [Thu, 28 Aug 2014 14:11:15 +0000 (22:11 +0800)]
Changed DateTime._DoParser to support DateTimeOffset patterns.

9 years agoMerge pull request #1233 from esdrubal/uriparserisbaseof
Marek Safar [Thu, 28 Aug 2014 12:22:48 +0000 (03:22 -0900)]
Merge pull request #1233 from esdrubal/uriparserisbaseof

UriParser.IsBaseOf now explicitly throws ArgumentNullException.

9 years agoUriParser.IsBaseOf now explicitly throws ArgumentNullException.
Marcos Henrich [Thu, 28 Aug 2014 08:12:06 +0000 (16:12 +0800)]
UriParser.IsBaseOf now explicitly throws ArgumentNullException.
A change in Uri.Compare was making IsBaseOf to return false when arguments were null.
NullReferenceException is thrown by .NET, nonetheless the correct behavior is to throw a ArgumentNullException..

9 years agoMerge pull request #1232 from akoeplinger/fix-test
Marek Safar [Thu, 28 Aug 2014 05:44:34 +0000 (20:44 -0900)]
Merge pull request #1232 from akoeplinger/fix-test

[MSBuild] Fixed a test that failed when the GAC wasn't available

9 years ago[MSBuild] Fixed a test that failed when the GAC wasn't available
Alexander Köplinger [Wed, 27 Aug 2014 20:28:49 +0000 (22:28 +0200)]
[MSBuild] Fixed a test that failed when the GAC wasn't available

PR #1229 added a test that relies on the GAC and fails when it isn't available, like when building on a clean machine with monolite.
Skip the test in that case.

9 years ago[runtime] Incorporate team feedback on the new logging APIs.
Rodrigo Kumpera [Wed, 27 Aug 2014 19:47:06 +0000 (15:47 -0400)]
[runtime] Incorporate team feedback on the new logging APIs.

9 years agoFix badge URL in README.md, the previous one got cached by GitHub
Alexander Köplinger [Wed, 27 Aug 2014 18:06:47 +0000 (20:06 +0200)]
Fix badge URL in README.md, the previous one got cached by GitHub

9 years ago[mcs] Add 6.0 to version error reporting
Marek Safar [Wed, 27 Aug 2014 12:09:25 +0000 (14:09 +0200)]
[mcs] Add 6.0 to version error reporting

9 years agoMerge pull request #1231 from esdrubal/gthreshold
Marek Safar [Wed, 27 Aug 2014 15:13:45 +0000 (06:13 -0900)]
Merge pull request #1231 from esdrubal/gthreshold

Serializer were not generated if generationThreshold was changed.

9 years agoSerializer were not generated if generationThreshold was changed.
Marcos Henrich [Wed, 27 Aug 2014 14:20:00 +0000 (22:20 +0800)]
Serializer were not generated if generationThreshold was changed.

9 years agoMerge pull request #1230 from esdrubal/xslattribute
Marek Safar [Wed, 27 Aug 2014 12:58:41 +0000 (03:58 -0900)]
Merge pull request #1230 from esdrubal/xslattribute

Process XslLiteralElements with only child attributes as empty ones.

9 years agoProcess XslLiteralElements with only child attributes as empty ones.
Marcos Henrich [Wed, 27 Aug 2014 12:37:17 +0000 (20:37 +0800)]
Process XslLiteralElements with only child attributes as empty ones.
Fixes #14751

9 years agoTest xls transformation of single child node to an attribute.
Marcos Henrich [Wed, 27 Aug 2014 12:20:47 +0000 (20:20 +0800)]
Test xls transformation of single child node to an attribute.

9 years ago[eglib] Fix logging on iOS (asl_vlog != asl_log)
Sebastien Pouliot [Wed, 27 Aug 2014 01:54:30 +0000 (21:54 -0400)]
[eglib] Fix logging on iOS (asl_vlog != asl_log)

asl_vlog last parameter is a va_list and giving it a char* leads to crash
which calls our native unhandled exception handler, which also tries to
log what happens making the watchdog unhappy about the food quality

0x000000008badf00d

9 years agoResolve build issues on Windows.
Alexis Christoforides [Tue, 26 Aug 2014 19:48:53 +0000 (15:48 -0400)]
Resolve build issues on Windows.

9 years agoFix the build.
Zoltan Varga [Tue, 26 Aug 2014 19:01:08 +0000 (15:01 -0400)]
Fix the build.

9 years ago[WCF]: Fix #22179 - 'finally' protect ClientRuntimeChannel.Begin/EndProcess().
Martin Baulig [Tue, 26 Aug 2014 17:59:27 +0000 (19:59 +0200)]
[WCF]: Fix #22179 - 'finally' protect ClientRuntimeChannel.Begin/EndProcess().

9 years agoMerge pull request #1229 from andreiagaita/master
Marek Safar [Tue, 26 Aug 2014 17:07:09 +0000 (08:07 -0900)]
Merge pull request #1229 from andreiagaita/master

[MSBuild] Make sure assembly references with extensions are located correctly

9 years ago[mcs] Predefined attibutes can have unresolved parameter types.
Marek Safar [Tue, 26 Aug 2014 15:13:41 +0000 (17:13 +0200)]
[mcs] Predefined attibutes can have unresolved parameter types.

9 years ago[mcs] Put back future lang version for easier migration path
Marek Safar [Tue, 26 Aug 2014 11:46:16 +0000 (13:46 +0200)]
[mcs] Put back future lang version for easier migration path

9 years ago[mcs] Don't report error when predefined InterlockedCompareExchange_T is not available.
Marek Safar [Tue, 26 Aug 2014 11:39:15 +0000 (13:39 +0200)]
[mcs] Don't report error when predefined InterlockedCompareExchange_T is not available.

9 years ago[mcs] Hide backing fields in default debugger display
Marek Safar [Mon, 25 Aug 2014 16:27:41 +0000 (18:27 +0200)]
[mcs] Hide backing fields in default debugger display

9 years ago[mcs] Replace future with experimental
Marek Safar [Mon, 25 Aug 2014 14:41:21 +0000 (16:41 +0200)]
[mcs] Replace future with experimental

9 years ago[mcs] Better error message
Marek Safar [Mon, 25 Aug 2014 14:10:45 +0000 (16:10 +0200)]
[mcs] Better error message

9 years ago[system] Add AcceptWebSocketAsync signatures
Marek Safar [Mon, 25 Aug 2014 14:10:15 +0000 (16:10 +0200)]
[system] Add AcceptWebSocketAsync signatures

9 years agoUpdate the LLVM backend to work with llvm branch mono-2014-08-23-b401e6b9699423409a05...
Zoltan Varga [Tue, 26 Aug 2014 04:32:43 +0000 (00:32 -0400)]
Update the LLVM backend to work with llvm branch mono-2014-08-23-b401e6b9699423409a055dc873e4d3f361a908c0.

9 years ago[runtime] Don't call mono_arch_handle_exception() when chaining
T.J. Purtell [Fri, 15 Aug 2014 20:43:36 +0000 (13:43 -0700)]
[runtime] Don't call mono_arch_handle_exception() when chaining

Context: https://bugzilla.xamarin.com/show_bug.cgi?id=18763#c12
Context: https://bugzilla.xamarin.com/show_bug.cgi?id=18763#c14
Context: http://stackoverflow.com/a/1789879/83444

mono_set_crash_chaining() was added in 8ffc4070 in order to better
support Android crash logs.

Crash logging in Android is "weird" (something we didn't know at the
time of 8ffc4070); when a process crashes on Android, ideally:

 1. The Android signal handler is executed,
 2. Bionic will attempt to connect to /system/bin/debuggerd.
 3. debuggerd will try to connect to the crashing process, then
    retrieve "useful" information from the crashing process (stack
    trace, register values, etc.)

The problem with 8ffc4070 was that there is a "window" between steps
(1) and (3) during which the crashing process continues to execute but
debuggerd hasn't attached to the process. It is possible that the
crashing process can thus exit before debuggerd has had a chance to
attach, killing the purpose of the crash logs.

Case in point: consider mono_sigsegv_signal_handler(). In 8ffc4070,
if mono_do_crash_chaining is TRUE, then Mono will execute:

  mono_handle_native_sigsegv (SIGSEGV, ctx);
  mono_chain_signal (SIG_HANDLER_PARAMS);
  mono_arch_handle_exception (ctx, NULL);

Because mono_chain_signal() doesn't block, abort the process, or
otherwise do anything to prevent execution from continuing, execution
will hit mono_arch_handle_exception(), which will exit the process.
If you're unlucky, this will happen before debuggerd has had a chance
to attach to the process.

The obvious fix is to prevent mono_arch_handle_exception() from being
invoked. The question is, *how*? jonp suggested [0] that after
mono_chain_signal() returns then _exit(2) or a busy loop could be
invoked. Unfortunately, _exit(2) makes the process exit explicit, and
~reliably prevents debuggerd from doing anything.

A busy loop doesn't work because it just causes the process to hang
within signal handler context, and debuggerd is never able to log
anything about the crashed process.

It would seem that the signal handler itself must exit without causing
the process to exit so that debuggerd has a chance to do ANYTHING,
otherwise nothing will happen reliably.

Thanks to T.J. Purtell for investigating and providing the patch.

[0]: https://github.com/mono/mono/pull/1206#issuecomment-52357802

--- Original commit message [formatted] ---

re #18763: After the chained handler executes, it may return to allow
the crashed instruction to be restarted or it may have taken
corrective action so the instruction can be resumed successfully.

For example, bionic resets the signal handler for SIGSEGV to default
expecting that the kernel will restart the offending instruction and
cause the kernel to abort the process.  Don't do mono exception
handling after chaining to support these types of signal management.