mono.git
7 years ago[xbuild] Add Microsoft.NuGet.Build.Tasks.dll MSBuild task
Alexander Köplinger [Fri, 18 Mar 2016 20:49:27 +0000 (21:49 +0100)]
[xbuild] Add Microsoft.NuGet.Build.Tasks.dll MSBuild task

This is required for interoperating with project.json-based NuGet package configuration files
(not to be confused with DNX or AspNet Core which use it as a project file too) from MSBuild/xbuild.

The task hooks into the build process, resolves assembly references from the nuget package cache
and injects them into the compilation project so the csproj doesn't need to be modified when
adding new references/packages.

It is the first step on our road to PCL5/NuGet3.

7 years agoMerge pull request #3286 from lambdageek/dev/refl-to-managed
Aleksey Kliger (λgeek) [Fri, 15 Jul 2016 16:58:12 +0000 (12:58 -0400)]
Merge pull request #3286 from lambdageek/dev/refl-to-managed

[reflection] RuntimeType  Event and Property search partly in managed

7 years ago[jit] Fix some alignment issues in mono_unwind_ops_encode_full ().
Zoltan Varga [Fri, 15 Jul 2016 16:43:28 +0000 (12:43 -0400)]
[jit] Fix some alignment issues in mono_unwind_ops_encode_full ().

7 years ago[Facades] Build System.Drawing.Primitives only on profiles with no external dependenc...
Marek Safar [Fri, 15 Jul 2016 16:24:42 +0000 (18:24 +0200)]
[Facades] Build System.Drawing.Primitives only on profiles with no external dependencies inside bcl

7 years agoMerge pull request #3285 from lateralusX/jlorenss/win-x64-native-valuetype-abi
Johan Lorensson [Fri, 15 Jul 2016 15:13:28 +0000 (17:13 +0200)]
Merge pull request #3285 from lateralusX/jlorenss/win-x64-native-valuetype-abi

Rewrite of Windows x64 value type ABI to support DirectX wrapper libraries on JIT and full AOT.

7 years ago[Facades] System.Drawing.Primitives use type fowarders in monotouch profile when...
Marek Safar [Fri, 15 Jul 2016 14:37:28 +0000 (16:37 +0200)]
[Facades] System.Drawing.Primitives use type fowarders in monotouch profile when available

7 years ago[bcl] Don't build System.Net.Http.WebRequest.dll on mobile
Alexander Köplinger [Fri, 15 Jul 2016 12:06:23 +0000 (14:06 +0200)]
[bcl] Don't build System.Net.Http.WebRequest.dll on mobile

It's not shipped in Xamarin.iOS and Xamarin.Android, so we shouldn't build it for these profiles.

7 years agoRevert "[Facades] Exclude System.Drawing.Primitives from watch profile"
Marek Safar [Fri, 15 Jul 2016 10:27:05 +0000 (12:27 +0200)]
Revert "[Facades] Exclude System.Drawing.Primitives from watch profile"

This reverts commit 6db2cae90c5e33389a730893e1f3f0fb2dbaff06.

7 years ago[Facades] Exclude System.Drawing.Primitives from watch profile
Marek Safar [Fri, 15 Jul 2016 10:08:28 +0000 (12:08 +0200)]
[Facades] Exclude System.Drawing.Primitives from watch profile

7 years ago[llvm] Add generic IR implementations of some SIMD opcodes, not used yet.
Zoltan Varga [Fri, 15 Jul 2016 09:21:02 +0000 (05:21 -0400)]
[llvm] Add generic IR implementations of some SIMD opcodes, not used yet.

7 years agoMerge pull request #3274 from Unity-Technologies/fix-path-getfullpath-windows
Marek Safar [Fri, 15 Jul 2016 08:31:33 +0000 (10:31 +0200)]
Merge pull request #3274 from Unity-Technologies/fix-path-getfullpath-windows

Fix Path.GetFullPath for roots on Windows

7 years agoSmaller formatting adjustments based on feedback.
lateralusX [Fri, 15 Jul 2016 08:19:37 +0000 (10:19 +0200)]
Smaller formatting adjustments based on feedback.

7 years agoMerge pull request #3287 from JustArchi/patch-1
Zoltan Varga [Fri, 15 Jul 2016 05:54:08 +0000 (01:54 -0400)]
Merge pull request #3287 from JustArchi/patch-1

Fix compilation of AOT-less Mono

7 years agoFix compilation of AOT-less Mono
Łukasz Domeradzki [Fri, 15 Jul 2016 03:23:53 +0000 (05:23 +0200)]
Fix compilation of AOT-less Mono

```
aot-runtime.c:5838:1: error: expected identifier or ‘(’ before ‘{’ token
 {
 ^
```

7 years ago[reflection] Move System.RuntimeType.GetPropertiesByName to managed
Aleksey Kliger [Thu, 14 Jul 2016 23:15:35 +0000 (19:15 -0400)]
[reflection] Move System.RuntimeType.GetPropertiesByName to managed

7 years ago[reflection] Add System.Reflection.PropertyInfo.GetPropertyFromHandle method
Aleksey Kliger [Thu, 14 Jul 2016 23:13:52 +0000 (19:13 -0400)]
[reflection] Add System.Reflection.PropertyInfo.GetPropertyFromHandle method

Also add Mono.RuntimePropertyHandle struct representing a native MonoProperty pointer.

Also add ves_icall_System_Reflection_PropertyInfo_internal_from_handle_type icall
that wraps mono_property_get_object_checked.

7 years ago[runtime] Add finalizer to SafeGPtrArrayHandle
Aleksey Kliger [Thu, 14 Jul 2016 21:58:47 +0000 (17:58 -0400)]
[runtime] Add finalizer to SafeGPtrArrayHandle

7 years ago[llvm] Fix an enable debug info generation for llvm master.
Zoltan Varga [Thu, 14 Jul 2016 20:49:28 +0000 (16:49 -0400)]
[llvm] Fix an enable debug info generation for llvm 

7 years ago[reflection] mono_error_init
Aleksey Kliger [Thu, 14 Jul 2016 19:47:07 +0000 (15:47 -0400)]
[reflection] mono_error_init

avoid a crash when there's a cache hit

7 years ago[reflection] Move RuntimeType.GetEvents_internal to managed code
Aleksey Kliger [Thu, 14 Jul 2016 18:43:38 +0000 (14:43 -0400)]
[reflection] Move RuntimeType.GetEvents_internal to managed code

7 years ago[reflection] Add System.Reflection.EventInfo.GetEventFromHandle methods
Aleksey Kliger [Thu, 14 Jul 2016 18:41:37 +0000 (14:41 -0400)]
[reflection] Add System.Reflection.EventInfo.GetEventFromHandle methods

Add new Mono.RuntimeEventHandle struct wrapping a pointer to a native MonoEvent

Add new icall
ves_icall_System_Reflection_EventInfo_internal_from_handle_type that's
mostly a wrapper around mono_event_get_object_checked.

7 years ago[runtime] Faster parent check in ves_icall_System_Reflection_FieldInfo_internal_from_...
Aleksey Kliger [Thu, 14 Jul 2016 18:39:01 +0000 (14:39 -0400)]
[runtime] Faster parent check in ves_icall_System_Reflection_FieldInfo_internal_from_handle_type

Use mono_class_has_parent for a faster supertypes check instead of
following the parent pointers.

7 years agoPInvoke methods using SetLastError get dropped on Windows x64 full AOT.
lateralusX [Thu, 14 Jul 2016 18:40:58 +0000 (20:40 +0200)]
PInvoke methods using SetLastError get dropped on Windows x64 full AOT.

This happens because current implementation is doing a direct call to Win32
GetLastError in order to get the value before it get clobbered by the icall
setting the last error value in mono. When running AOT all constructs that tries
to call a method using a direct address will be dropped since that will not work
in full AOT. This results in incomplete compiled libraries causing runtime exceptions
in full AOT.

The fix on Windows x64 is to introduce a new OP code, GET_LAST_ERROR that will
retrieve the last error without clobbering it in the process. This is done by
emitting code reading the value directly from the TEB (thread environment block)
and will be lowered to just a move from the segment register holding the TEB data
structure on Windows x64. This is how GetLastError is doing this as well, but since
we won’t be able to call the method in a “safe” way in full AOT, using the segment
register directly will solve the issue. We use the segment register for accessing TLS,
so we already relying on the TEB structure.

NOTE, this will only be applied to Windows x64, full AOT for now.

7 years ago[llvm] Delete some dead code.
Zoltan Varga [Thu, 14 Jul 2016 18:31:20 +0000 (14:31 -0400)]
[llvm] Delete some dead code.

7 years ago[llvm] Delete unused intrinsics.
Zoltan Varga [Thu, 14 Jul 2016 18:15:04 +0000 (14:15 -0400)]
[llvm] Delete unused intrinsics.

7 years ago[sdb] Pass a MonoError* to mono_class_get_methods_by_name () instead of a MonoException*.
Zoltan Varga [Thu, 14 Jul 2016 17:49:02 +0000 (13:49 -0400)]
[sdb] Pass a MonoError* to mono_class_get_methods_by_name () instead of a MonoException*.

7 years agoFix a warning.
Zoltan Varga [Thu, 14 Jul 2016 17:46:15 +0000 (13:46 -0400)]
Fix a warning.

7 years agoFix a GC crash happening in full AOT compiled code where a delegate method can't
lateralusX [Thu, 14 Jul 2016 11:51:11 +0000 (13:51 +0200)]
Fix a GC crash happening in full AOT compiled code where a delegate method can't
be detected at runtime. Since the process crash, lot of valuable information was never
written out to the console (like the managed stack trace) needed to effectively resolve
the issue.

7 years agoAdd gsharedvt support for changed Windows x64 value type ABI.
lateralusX [Thu, 14 Jul 2016 11:39:57 +0000 (13:39 +0200)]
Add gsharedvt support for changed Windows x64 value type ABI.

7 years agoRewrite of Windows x64 value type ABI to support DirectX wrapper libraries.
lateralusX [Thu, 14 Jul 2016 11:27:44 +0000 (13:27 +0200)]
Rewrite of Windows x64 value type ABI to support DirectX wrapper libraries.

Current implementation used different value type ABI’s depending on if call
was a managed->native, native->managed or managed->managed call. The implementation
was also overcomplicated since it was a tweaked copy from System V x64 value type
ABI with scenarios and conditions that wouldn’t apply to the Windows x64 value
type ABI. Having a uniform value type ABI when possible regardless of managed->native,
native->managed or managed->managed calls simplifies scenarios and reduce complexity.

While all the above are legitimate reasons the primary driving factor behind
the rewrite was a different issue. There are .NET wrapper libraries around DirectX API
used by game engines and other libraries that uses a pattern using a call into a stub
managed method that gets patched directly in the MSIL to a calli that will end up in a
native DirectX vtable method. In current ABI we can’t detect scenario like this, so arguments
are passed as if the call was a managed->managed call causing issues for value types. Since DirectX
uses value types a lot (vectors, matrixes etc.), this was a blocker getting these technologies
running on Windows using DirectX at all. Another approach could be to change the behavior of the
library, but this would require a major redesign of the library and since several of these libraries
are mature, that wasn’t a realistic option, especially since MS .NET runtime handles the libraries as is
without modifications.

The rewrite makes sure Windows x64 value type ABI follow the platform value type ABI in all scenarios.

7 years agoMerge pull request #3279 from xmcclure/tarjan-crash-2
Andi McClure [Thu, 14 Jul 2016 16:28:03 +0000 (12:28 -0400)]
Merge pull request #3279 from xmcclure/tarjan-crash-2

Re-allow bridge callbacks to be set after GC init

7 years ago[llvm] Implement some SIMD opcodes using LLVM IR instead of calling an llvm intrinsics.
Zoltan Varga [Thu, 14 Jul 2016 16:24:22 +0000 (12:24 -0400)]
[llvm] Implement some SIMD opcodes using LLVM IR instead of calling an llvm intrinsics.

7 years agoMerge pull request #3281 from lambdageek/dev/g-ptr-array
Aleksey Kliger (λgeek) [Thu, 14 Jul 2016 15:32:58 +0000 (11:32 -0400)]
Merge pull request #3281 from lambdageek/dev/g-ptr-array

[reflection] RuntimeType Field and Method search partly in managed

7 years agoMove check for slash inside of existing short path check and do a char comparison...
Jonathan Chambers [Thu, 14 Jul 2016 13:40:27 +0000 (09:40 -0400)]
Move check for slash inside of existing short path check and do a char comparison rather than a string comparison

7 years ago[Facades] Remove wrong private facade
Marek Safar [Thu, 14 Jul 2016 12:23:46 +0000 (14:23 +0200)]
[Facades] Remove wrong private facade

7 years agoMerge pull request #3276 from esdrubal/access_token_move
Marcos Henrich [Thu, 14 Jul 2016 09:27:19 +0000 (10:27 +0100)]
Merge pull request #3276 from esdrubal/access_token_move

[corlib] Replaced SafeAccessTokenHandle.cs with ref source.

7 years ago[mcs] Add missing error message argument
Marek Safar [Thu, 14 Jul 2016 06:38:13 +0000 (08:38 +0200)]
[mcs] Add missing error message argument

7 years ago[bcl] Include all facade directories in the tarball
Alexander Köplinger [Wed, 13 Jul 2016 23:50:54 +0000 (01:50 +0200)]
[bcl] Include all facade directories in the tarball

net_4_x_PARALLEL_SUBDIRS doesn't implicitly include all facades anymore after 10c5e7251252be4466c4909310fe19b863266784.

7 years ago[reflection] Managed RuntimeType.GetConstructors_internal
Aleksey Kliger [Wed, 13 Jul 2016 22:22:40 +0000 (18:22 -0400)]
[reflection] Managed RuntimeType.GetConstructors_internal

7 years ago[Facades] Update list of full assemblies
Marek Safar [Wed, 13 Jul 2016 22:13:03 +0000 (00:13 +0200)]
[Facades] Update list of full assemblies

7 years ago[reflection] RuntimeType.GetMethodsByName in managed
Aleksey Kliger [Wed, 13 Jul 2016 19:51:48 +0000 (15:51 -0400)]
[reflection] RuntimeType.GetMethodsByName in managed

Also:
  1. MethodBase.GetMethodFromHandleInternalType_native icall
  2. reimplemented the other MethodBase GetMethodFromHandleXXX methods
  in terms of this new icall.
  3. MonoError-ize mono_class_get_methods_by_name

7 years ago[reflection] Managed version of RuntimeType.GetFields_internal
Aleksey Kliger [Wed, 13 Jul 2016 17:37:34 +0000 (13:37 -0400)]
[reflection] Managed version of RuntimeType.GetFields_internal

7 years agoBack out pending_bridge_callbacks_mutex in previous commit
Andi McClure [Wed, 13 Jul 2016 19:49:04 +0000 (15:49 -0400)]
Back out pending_bridge_callbacks_mutex in previous commit

The mutex on pending_bridge_callbacks was overkill because the init
model for the mono runtime already enforces the callbacks being set on
the init thread. Added a couple comments to formalize this.

7 years agoMerge pull request #3240 from alexanderkyte/aot_compiler_leaks
Zoltan Varga [Wed, 13 Jul 2016 19:03:14 +0000 (15:03 -0400)]
Merge pull request #3240 from alexanderkyte/aot_compiler_leaks

[runtime] Fix aot compiler leaks

7 years agoMerge pull request #3248 from esdrubal/web_request_abort
Marcos Henrich [Wed, 13 Jul 2016 16:41:22 +0000 (17:41 +0100)]
Merge pull request #3248 from esdrubal/web_request_abort

[System] EndRead now throws WebException on abort.

7 years agoMerge pull request #3268 from esdrubal/mono-sym-enable
Marcos Henrich [Wed, 13 Jul 2016 16:27:02 +0000 (17:27 +0100)]
Merge pull request #3268 from esdrubal/mono-sym-enable

[runtime] Enable compact seq point by default

7 years ago[corlib] Replaced SafeAccessTokenHandle.cs with ref source.
Marcos Henrich [Wed, 13 Jul 2016 16:24:37 +0000 (17:24 +0100)]
[corlib] Replaced SafeAccessTokenHandle.cs with ref source.

7 years ago[corlib] Add Mono.SafeGPtrArrayHandle
Aleksey Kliger [Tue, 12 Jul 2016 20:59:41 +0000 (16:59 -0400)]
[corlib] Add Mono.SafeGPtrArrayHandle

Wrap a GPtrArrayHandle struct in a safe handle that will free the
native resource after we're done.

7 years ago[corlib] Mono.RuntimeStructs.GPtrArray
Aleksey Kliger [Tue, 12 Jul 2016 20:20:56 +0000 (16:20 -0400)]
[corlib] Mono.RuntimeStructs.GPtrArray

and corresponding Mono.RuntimeGPtrArrayHandle
reflecting native GPtrArray struct in managed code.

7 years ago[reflection] Switch ves_icall_RuntimeType_GetFields_internal to GPtrArray
Aleksey Kliger [Tue, 12 Jul 2016 22:43:54 +0000 (18:43 -0400)]
[reflection] Switch ves_icall_RuntimeType_GetFields_internal to GPtrArray

instead of MonoPtrArray.  Next step is to return the GPtrArray to
managed code, so using a stack allocated array won't work anymore.

7 years ago[logging] Default to stdout if MONO_LOG_DEST is unset (#3272)
Aleksey Kliger (λgeek) [Wed, 13 Jul 2016 15:21:01 +0000 (11:21 -0400)]
[logging] Default to stdout if MONO_LOG_DEST is unset (#3272)

Follow up to e70a8aca1cd575582459db406ab3410e53074b73, do what the man
page says and default to stdout if MONO_LOG_DEST isn't specified.

7 years agoFix Path.GetFullPath for roots on Windows
Josh Peterson [Fri, 15 Apr 2016 17:04:27 +0000 (13:04 -0400)]
Fix Path.GetFullPath for roots on Windows

On Windows, xbuild can fail with the somewhat obscure error message: "error : Error building target GetReferenceAssemblyPaths: UNC paths should be of the form \\server\share." This occurs because a call to Path.GetFullPath(@"\") returns the string "\" on Windows, when it should return a root path that includes the drive letter, like "C:\".

The code in xbuild tries to scan directories for files. Specifically, it looks for "\.*dll". If any .dll files exist in the root directory, each will be returned with the path "/\foo.dll". This path is used to create a FileInfo, and the exception about a UNC path occurs.

So if the path is "\" or "/" Path.GetFullPath should return the correct root path, including the drive letter, on Windows.

Here is the full call stack from xbuild:

Error building target GetReferenceAssemblyPaths: System.ArgumentException: UNC paths should be of the form \\server\share.
at System.IO.Path.InsecureGetFullPath (System.String path) <0x25343f0 + 0x003fb> in <filename unknown>:0
at System.IO.Path.GetFullPath (System.String path) <0x2534378 + 0x00013> in <filename unknown>:0
at System.IO.FileInfo..ctor (System.String fileName) <0x25fae20 + 0x00033> in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.IO.FileInfo:.ctor (string)
at System.IO.DirectoryInfo.GetFiles (System.String searchPattern) <0x25fa7c0 + 0x00087> in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:GetFiles (string)
input, Int32 ptr, System.IO.DirectoryInfo directory, Boolean recursive) <0x25fa2b0 + 0x0016b> in <filename unknown>:0
input, Int32 ptr, System.IO.DirectoryInfo directory) <0x25fa270 + 0x0002f> in <filename unknown>:0
at Microsoft.Build.BuildEngine.DirectoryScanner.ProcessInclude (ITaskItem include_item, System.Collections.Generic.Dictionary`2 excludedItems, System.Collections.Generic.List`1 includedItems) <0x25d72d0 + 0x002ab> in <filename unknown>:0
at Microsoft.Build.BuildEngine.DirectoryScanner.Scan () <0x25d70e0 + 0x000ff> in <filename unknown>:0
at Microsoft.Build.BuildEngine.BuildItem.Evaluate (Microsoft.Build.BuildEngine.Project project, Boolean evaluatedTo) <0x25d5a50 + 0x005d3> in <filename unknown>:0
at Microsoft.Build.BuildEngine.BuildTaskItem.Execute () <0x25e5ad8 + 0x0002b> in <filename unknown>:0
at Microsoft.Build.BuildEngine.TaskBatchingImpl.Execute (IBuildTask buildTask, TaskExecutionMode taskExecutionMode) <0x25e3698 + 0x0004a> in <filename unknown>:0
at Microsoft.Build. BuildEngine.TaskBatchingImpl.Run (IBuildTask buildTask, TaskExecutionMode taskExecutionMode, System.Boolean& executeOnErrors) <0x25e50e0 + 0x0004f> in <filename unknown>:0
at Microsoft.Build.BuildEngine.TaskBatchingImpl.Build (IBuildTask buildTask, TaskExecutionMode taskExecutionMode, System.Boolean& executeOnErrors) <0x25e21b0 + 0x00097> in <filename unknown>:0
at Microsoft.Build.BuildEngine.TargetBatchingImpl.RunTargetWithBucket (System.Collections.Generic.Dictionary`2 bucket, Microsoft.Build.BuildEngine.Target target, System.Boolean& executeOnErrors) <0x25e14b8 + 0x00213> in <filename unknown>:0
at Microsoft.Build.BuildEngine.TargetBatchingImpl.Run (Microsoft.Build.BuildEngine.Target target, System.Boolean& executeOnErrors) <0x25e1360 + 0x000f7> in <filename unknown>:0
at Microsoft.Build.BuildEngine.TargetBatchingImpl.Build (Microsoft.Build.BuildEngine.Target target, System.Boolean& executeOnErrors) <0x25dfee0 + 0x00053> in <filename unknown>:0
at Microsoft.Build.BuildEngine.Target.DoBuild (System.Boolean& executeOnErrors) <0x25dfcf0 + 0x0004f> in <filename unknown>:0

7 years agoMerge pull request #3254 from mono/netstandard
Marek Safar [Wed, 13 Jul 2016 11:30:34 +0000 (13:30 +0200)]
Merge pull request #3254 from mono/netstandard

[bcl] netstandard 1.6 support

7 years ago[runtime] Added gen-seq-points-file= deprecated option
Marcos Henrich [Wed, 13 Jul 2016 10:17:36 +0000 (11:17 +0100)]
[runtime] Added gen-seq-points-file= deprecated option

Added gen-seq-points-file= back with deprecated message to avoid crashes
in application still using it.

7 years ago[runtime] Enable compact seq point by default
Marcos Henrich [Tue, 12 Jul 2016 16:31:22 +0000 (17:31 +0100)]
[runtime] Enable compact seq point by default

Enable compact seq points by default so that the stack trace have IL
offsets instead os native ones.

This changes will allow any stacktrace generated from now on to be
symbolicated using mono-symbolicate.

Deprecates options gen-compact-seq-points.

7 years ago[bcl] netstandart 1.6 support
Marek Safar [Wed, 13 Jul 2016 08:52:19 +0000 (10:52 +0200)]
[bcl] netstandart 1.6 support

7 years ago[mono-api-html] Add option to ignore breaking changes
Mikayla Hutchinson [Wed, 6 Jul 2016 18:00:04 +0000 (14:00 -0400)]
[mono-api-html] Add option to ignore breaking changes

7 years agoAllow bridge callbacks to be set after GC init
Andi McClure [Tue, 12 Jul 2016 22:31:58 +0000 (18:31 -0400)]
Allow bridge callbacks to be set after GC init

This is cleanup to the previous emergency fix for bug 42469. The goal of that fix was to defer bridge processor initialization until after sgen init, but it introduced a requirement mono_gc_register_bridge_callback be called before sgen init. This breaks Xamarin Designer, which sets up callbacks late.

This patch introduces an sgen_init_bridge () which is called both at startup and after callbacks are set, and performs the initialization once all pieces are in place. Additional concurrency and style issues are also addressed.

7 years agoMerge pull request #3224 from ludovic-henry/iolayer-extract-wait-handle
Ludovic Henry [Tue, 12 Jul 2016 21:00:28 +0000 (23:00 +0200)]
Merge pull request #3224 from ludovic-henry/iolayer-extract-wait-handle

[io-layer] Extract handle lifetime + waiting + signalling to utils

7 years ago[aot] Fixes strip tool invocation in to wrap paths in AOT compilation.
João Matos [Tue, 12 Jul 2016 15:59:26 +0000 (16:59 +0100)]
[aot] Fixes strip tool invocation in to wrap paths in AOT compilation.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=34498.

7 years agoFix windows build after 162f843968caf500ab09ea7176691e67334d416f
Aleksey Kliger [Tue, 12 Jul 2016 16:10:07 +0000 (12:10 -0400)]
Fix windows build after 162f843968caf500ab09ea7176691e67334d416f

7 years ago[corlib] Rewrite RuntimeType.GetGenericParameterConstraints (#3260)
Aleksey Kliger (λgeek) [Tue, 12 Jul 2016 15:16:59 +0000 (11:16 -0400)]
[corlib] Rewrite RuntimeType.GetGenericParameterConstraints (#3260)

* [corlib] Rewrite RuntimeType.GetGenericParameterConstraints

using managed code for managed object manipulation by surfacing the
native MonoGenericParamInfo struct to managed code as Mono.RuntimeStructs.GenericParamInfo

* [corlib] RuntimeType::GetGenericParameterAttributes can be managed code now.

* [corlib] Fix x86 breakage

RuntimeTypeHandle.GetGenericParameterInfo returns a pointer
Not a struct that's the same size as a pointer.  On the x86 Linux
calling convention they behave differently.

7 years agoMerge pull request #3265 from xmcclure/tarjan-crash
Andi McClure [Tue, 12 Jul 2016 15:11:46 +0000 (11:11 -0400)]
Merge pull request #3265 from xmcclure/tarjan-crash

Defer bridge processor init until after sgen init, fixing crash (bug 42469)

7 years ago[amd64] Reorganize add_valuetype () to make it easier to use the platform calling...
Zoltan Varga [Tue, 12 Jul 2016 13:34:41 +0000 (09:34 -0400)]
[amd64] Reorganize add_valuetype () to make it easier to use the platform calling convention for managed code as well. Implement dyncall support for passing/returning vtypes in registers.

7 years ago[io-layer] Move handles out of the io-layer to utils/w32handle
Ludovic Henry [Wed, 6 Jul 2016 10:10:25 +0000 (12:10 +0200)]
[io-layer] Move handles out of the io-layer to utils/w32handle

7 years ago[io-layer] Inline init_handles_slot
Ludovic Henry [Mon, 4 Jul 2016 16:28:44 +0000 (18:28 +0200)]
[io-layer] Inline init_handles_slot

7 years ago[io-layer] Replace _WAPI_PRIVATE_HANDLES and _WAPI_PRIVATE_HAVE_SLOT by _wapi_handle_...
Ludovic Henry [Mon, 4 Jul 2016 15:18:02 +0000 (17:18 +0200)]
[io-layer] Replace _WAPI_PRIVATE_HANDLES and _WAPI_PRIVATE_HAVE_SLOT by _wapi_handle_lookup_data

7 years ago[io-layer] Remove any remaining dependency of handles.c on other parts of the io...
Ludovic Henry [Fri, 1 Jul 2016 11:35:12 +0000 (13:35 +0200)]
[io-layer] Remove any remaining dependency of handles.c on other parts of the io-layer

7 years ago[io-layer] Replace _WAPI_HANDLE_INVALID by INVALID_HANDLE_VALUE
Ludovic Henry [Fri, 1 Jul 2016 11:41:58 +0000 (13:41 +0200)]
[io-layer] Replace _WAPI_HANDLE_INVALID by INVALID_HANDLE_VALUE

7 years ago[io-layer] Remove wapi_getdtablesize
Ludovic Henry [Fri, 1 Jul 2016 11:37:18 +0000 (13:37 +0200)]
[io-layer] Remove wapi_getdtablesize

7 years ago[io-layer] Move DuplicateHandle and CloseHandle to wapi.c
Ludovic Henry [Fri, 1 Jul 2016 11:34:25 +0000 (13:34 +0200)]
[io-layer] Move DuplicateHandle and CloseHandle to wapi.c

7 years ago[io-layer] Remove use of _wapi_has_shut_down
Ludovic Henry [Fri, 1 Jul 2016 11:33:50 +0000 (13:33 +0200)]
[io-layer] Remove use of _wapi_has_shut_down

7 years ago[io-layer] Remove unnecessary locking of _WAPI_SHARED_SEM_FILESHARE
Ludovic Henry [Mon, 4 Jul 2016 11:00:31 +0000 (13:00 +0200)]
[io-layer] Remove unnecessary locking of _WAPI_SHARED_SEM_FILESHARE

7 years ago[io-layer] Move _wapi_handle_spin to handles.c
Ludovic Henry [Mon, 11 Jul 2016 20:31:52 +0000 (22:31 +0200)]
[io-layer] Move _wapi_handle_spin to handles.c

7 years ago[io-layer] Move _WAPI_FD_HANDLE, _WAPI_SHARED_NAMESPACE and _WAPI_HANDLE_INVALID...
Ludovic Henry [Fri, 1 Jul 2016 11:27:46 +0000 (13:27 +0200)]
[io-layer] Move _WAPI_FD_HANDLE, _WAPI_SHARED_NAMESPACE and _WAPI_HANDLE_INVALID to handles-private.h

7 years ago[io-layer] Remove pseudo global handle
Ludovic Henry [Thu, 30 Jun 2016 17:50:20 +0000 (19:50 +0200)]
[io-layer] Remove pseudo global handle

7 years ago[io-layer] Allocate WapiHandle specific data on the heap
Ludovic Henry [Thu, 30 Jun 2016 17:45:58 +0000 (19:45 +0200)]
[io-layer] Allocate WapiHandle specific data on the heap

7 years ago[io-layer] Register WapiHandleOps dynamically
Ludovic Henry [Thu, 30 Jun 2016 16:05:33 +0000 (18:05 +0200)]
[io-layer] Register WapiHandleOps dynamically

7 years ago[io-layer] Move WapiHandleType and WapiHandleOps to handles-private.h
Ludovic Henry [Thu, 30 Jun 2016 15:37:49 +0000 (17:37 +0200)]
[io-layer] Move WapiHandleType and WapiHandleOps to handles-private.h

7 years ago[io-layer] Extract _wapi_search_handle_namespace from handles.c
Ludovic Henry [Thu, 30 Jun 2016 15:08:30 +0000 (17:08 +0200)]
[io-layer] Extract _wapi_search_handle_namespace from handles.c

7 years ago[io-layer] Add typename and typesize handle operations
Ludovic Henry [Thu, 30 Jun 2016 14:37:32 +0000 (16:37 +0200)]
[io-layer] Add typename and typesize handle operations

7 years ago[io-layer] Move _wapi_getpid out of handles.c
Ludovic Henry [Thu, 30 Jun 2016 13:45:36 +0000 (15:45 +0200)]
[io-layer] Move _wapi_getpid out of handles.c

7 years ago[io-layer] Add details operation on handle
Ludovic Henry [Thu, 30 Jun 2016 13:36:52 +0000 (15:36 +0200)]
[io-layer] Add details operation on handle

7 years ago[io-layer] Move io-layer initialization out of handles.c
Ludovic Henry [Thu, 30 Jun 2016 12:49:08 +0000 (14:49 +0200)]
[io-layer] Move io-layer initialization out of handles.c

7 years ago[io-layer] Move file_share_hash to io.c
Ludovic Henry [Thu, 30 Jun 2016 12:36:44 +0000 (14:36 +0200)]
[io-layer] Move file_share_hash to io.c

7 years ago[io-layer] Remove empty function _wapi_shm_semaphores_remove
Ludovic Henry [Thu, 30 Jun 2016 12:25:26 +0000 (14:25 +0200)]
[io-layer] Remove empty function _wapi_shm_semaphores_remove

7 years ago[io-layer] Remove unused _wapi_sem_id
Ludovic Henry [Thu, 30 Jun 2016 12:07:04 +0000 (14:07 +0200)]
[io-layer] Remove unused _wapi_sem_id

7 years ago[io-layer] Extract WapiHandleBase from _WapiHandleUnshared
Ludovic Henry [Thu, 30 Jun 2016 10:30:36 +0000 (12:30 +0200)]
[io-layer] Extract WapiHandleBase from _WapiHandleUnshared

7 years ago[io-layer] Make _WAPI_PRIVATE_MAX_SLOTS and _WAPI_HANDLE_INITIAL_COUNT definition...
Ludovic Henry [Thu, 30 Jun 2016 10:08:29 +0000 (12:08 +0200)]
[io-layer] Make _WAPI_PRIVATE_MAX_SLOTS and _WAPI_HANDLE_INITIAL_COUNT definition private

7 years ago[io-layer] Make _wapi_global_signal_handle definition private
Ludovic Henry [Thu, 30 Jun 2016 10:05:56 +0000 (12:05 +0200)]
[io-layer] Make _wapi_global_signal_handle definition private

7 years ago[io-layer] Make _WapiHandleUnshared definition private
Ludovic Henry [Mon, 27 Jun 2016 12:37:12 +0000 (14:37 +0200)]
[io-layer] Make _WapiHandleUnshared definition private

7 years ago[io-layer] Factor Mutex and NamedMutex code
Ludovic Henry [Mon, 27 Jun 2016 10:37:52 +0000 (12:37 +0200)]
[io-layer] Factor Mutex and NamedMutex code

7 years ago[io-layer] Factor Semaphore and NamedSemaphore code
Ludovic Henry [Fri, 24 Jun 2016 22:18:33 +0000 (00:18 +0200)]
[io-layer] Factor Semaphore and NamedSemaphore code

7 years ago[io-layer] Factor Event and NamedEvent code
Ludovic Henry [Fri, 24 Jun 2016 19:21:46 +0000 (21:21 +0200)]
[io-layer] Factor Event and NamedEvent code

7 years ago[io-layer] Make named handle use their equivalent non-named handle
Ludovic Henry [Fri, 24 Jun 2016 18:50:50 +0000 (20:50 +0200)]
[io-layer] Make named handle use their equivalent non-named handle

7 years agoMerge pull request #3267 from lateralusX/jlorenss/fix-win-build-missing-exports
Alexander Köplinger [Tue, 12 Jul 2016 08:48:23 +0000 (10:48 +0200)]
Merge pull request #3267 from lateralusX/jlorenss/fix-win-build-missing-exports

Fix windows build issue due to missing export in def files.

7 years agoFix windows build issue due to missing export in def files.
lateralusX [Tue, 12 Jul 2016 07:24:38 +0000 (09:24 +0200)]
Fix windows build issue due to missing export in def files.

7 years ago[runtime] Make mono_thread_resume_interruption () work during shutdown as well by...
Zoltan Varga [Tue, 12 Jul 2016 03:46:01 +0000 (23:46 -0400)]
[runtime] Make mono_thread_resume_interruption () work during shutdown as well by checking for ThreadState_StopRequested as well. Hopefully fixes #41644.

7 years agoDefer bridge processor init until after sgen init (bug 42469)
Andi McClure [Mon, 11 Jul 2016 21:51:56 +0000 (17:51 -0400)]
Defer bridge processor init until after sgen init (bug 42469)

mono_gc_register_bridge_callbacks is a function which the android implementation calls before initializing the runtime. One of the things this function previously did was initialize the default bridge processor if none has been initialized yet. However, because the function gets called before initializing the runtime, a bridge processor was never initialized. This lead to two bad effects:

- If a bridge processor was ever manually specified, the bridge processor would get initialized twice
- Tarjan crashes if initialized before sgen, so when Tarjan became the default bridge processor Android always crashed on launch

The default bridge processor is now initialized at the end of sgen_gc_init.

7 years agoMore verbose error message when sgen_register_fixed_internal_mem_type fails
Andi McClure [Mon, 11 Jul 2016 21:51:36 +0000 (17:51 -0400)]
More verbose error message when sgen_register_fixed_internal_mem_type fails