mono.git
6 years agoBump API snapshot submodule
monojenkins [Tue, 25 Jul 2017 07:59:43 +0000 (07:59 +0000)]
Bump API snapshot submodule

6 years agoBump CoreFX
Marek Safar [Mon, 24 Jul 2017 18:28:39 +0000 (20:28 +0200)]
Bump CoreFX

6 years agoUpdate bockbuild. Fixes #57002
Alexis Christoforides [Tue, 25 Jul 2017 05:25:54 +0000 (01:25 -0400)]
Update bockbuild. Fixes #57002

6 years ago[runtime] Fix the size calculation for CustomAttributeType coded indexes, they can...
Zoltan Varga [Tue, 25 Jul 2017 03:20:43 +0000 (23:20 -0400)]
[runtime] Fix the size calculation for CustomAttributeType coded indexes, they can only point to the MethodDef/MemberRef tables even through 3 bits are used to encode them, only 2 values are used. Fixes #58210. (#5256)

6 years ago[jit] Handle OP_VCALL_MEMBASE in get_simd_vreg (). Fixes #58344.
Zoltan Varga [Mon, 24 Jul 2017 22:28:52 +0000 (18:28 -0400)]
[jit] Handle OP_VCALL_MEMBASE in get_simd_vreg (). Fixes #58344.

6 years agoBump bockbuild.
Zoltan Varga [Mon, 24 Jul 2017 21:35:08 +0000 (17:35 -0400)]
Bump bockbuild.

6 years agoBump roslyn to 2.3.1
Marek Safar [Mon, 24 Jul 2017 14:24:43 +0000 (16:24 +0200)]
Bump roslyn to 2.3.1

6 years agoBump bockbuild.
Zoltan Varga [Mon, 24 Jul 2017 15:31:34 +0000 (11:31 -0400)]
Bump bockbuild.

6 years agoUpdate CODEOWNERS
Alex Rønne Petersen [Sun, 23 Jul 2017 05:24:55 +0000 (07:24 +0200)]
Update CODEOWNERS

6 years agoMerge pull request #5252 from alexrp/profiler-stress-fixes
Alex Rønne Petersen [Sun, 23 Jul 2017 04:06:28 +0000 (06:06 +0200)]
Merge pull request #5252 from alexrp/profiler-stress-fixes

[acceptance-tests] A few fixes for the profiler stress test suite.

6 years agoMerge pull request #5253 from alexrp/profiler-lib
Alex Rønne Petersen [Sat, 22 Jul 2017 18:26:16 +0000 (20:26 +0200)]
Merge pull request #5253 from alexrp/profiler-lib

[Mono.Profiler.Log] Catch SecurityException for missing icalls.

6 years ago[Mono.Profiler.Log] Catch SecurityException for missing icalls.
Alex Rønne Petersen [Sat, 22 Jul 2017 15:15:11 +0000 (17:15 +0200)]
[Mono.Profiler.Log] Catch SecurityException for missing icalls.

This is the exception that is thrown on .NET because icalls are not allowed in
non-GAC assemblies.

6 years ago[acceptance-tests] Disable the ironjs-v8 test on arm32/arm64.
Alex Rønne Petersen [Sat, 22 Jul 2017 13:58:54 +0000 (15:58 +0200)]
[acceptance-tests] Disable the ironjs-v8 test on arm32/arm64.

It times out even with a 24-hour timeout. Eventually we should investigate why,
but disable it for now so the lane can become green.

6 years ago[acceptance-tests] Fix a crash in the profiler stress runner caused by racey modifica...
Alex Rønne Petersen [Sat, 22 Jul 2017 12:42:06 +0000 (14:42 +0200)]
[acceptance-tests] Fix a crash in the profiler stress runner caused by racey modification of a StringBuilder.

6 years ago[acceptance-tests] Set individual timeout for profiler stress tests back to 8 hours.
Alex Rønne Petersen [Sat, 22 Jul 2017 12:35:33 +0000 (14:35 +0200)]
[acceptance-tests] Set individual timeout for profiler stress tests back to 8 hours.

6 years ago[acceptance-tests] Build profiler stress runner with debug info.
Alex Rønne Petersen [Sat, 22 Jul 2017 12:33:35 +0000 (14:33 +0200)]
[acceptance-tests] Build profiler stress runner with debug info.

6 years ago[bockbuild] Avoid overwriting self.local_configure_flags in some packages, extend...
Zoltan Varga [Sat, 22 Jul 2017 00:02:43 +0000 (20:02 -0400)]
[bockbuild] Avoid overwriting self.local_configure_flags in some packages, extend them instead. (#5239)

6 years agoMerge pull request #5248 from alexrp/profiler-api
Alex Rønne Petersen [Fri, 21 Jul 2017 18:09:54 +0000 (20:09 +0200)]
Merge pull request #5248 from alexrp/profiler-api

[profiler] Add back some legacy profiler API functions.

6 years ago[mempool] Annotate functions for clang's ThreadSanitizer (#5191)
Armin Hasitzka [Fri, 21 Jul 2017 09:39:04 +0000 (11:39 +0200)]
[mempool] Annotate functions for clang's ThreadSanitizer (#5191)

* [mempool] Annotate functions for ThreadSanitizer
Whitelist `mono_mempool_alloc`, `mono_mempool_new_size` and `mono_mempool_destroy` according to https://bugzilla.xamarin.com/show_bug.cgi?id=57936

* [fixup!] Test the NO_SANITIZE_THREAD macro

* [fixup!] Merge comments / documentation

6 years ago[acceptance-tests] Temporarily increase the profiler stress timeout to 24 hours.
Alex Rønne Petersen [Fri, 21 Jul 2017 09:12:58 +0000 (11:12 +0200)]
[acceptance-tests] Temporarily increase the profiler stress timeout to 24 hours.

This is temporary and is just to see how long ironjs-v8 actually takes to complete on ARM. We may need to just exclude it there.

6 years agoBump API snapshot submodule
monojenkins [Fri, 21 Jul 2017 08:50:26 +0000 (08:50 +0000)]
Bump API snapshot submodule

6 years agoImplement ServiceEndpoint.EndpointBehaviors
pjt33 [Thu, 20 Jul 2017 11:02:16 +0000 (13:02 +0200)]
Implement ServiceEndpoint.EndpointBehaviors

This follows the reference source in understanding `EndpointBehaviors` to be an alias of `Behaviors` with a more general type.

Note that although an alias might not seem necessary to implement, when using netstandard1.3 the [`System.ServiceModel.Primitives`](https://www.nuget.org/packages/System.ServiceModel.Primitives) package exposes `EndpointBehaviors` but not `Behaviors`.

6 years ago[msvc] Update project files with new profiler-related source files.
Alex Rønne Petersen [Fri, 21 Jul 2017 07:53:46 +0000 (09:53 +0200)]
[msvc] Update project files with new profiler-related source files.

6 years ago[Marshal.IsComObject] Make this predicate return false instead of throwing an excepti...
Miguel de Icaza [Fri, 21 Jul 2017 02:47:48 +0000 (22:47 -0400)]
[Marshal.IsComObject] Make this predicate return false instead of throwing an exception which is what the calling code expects (#5246)

6 years agoReenable MonoTests.Remoting.IpcChannelTest.Bug609381 (#5245)
Ludovic Henry [Thu, 20 Jul 2017 20:08:26 +0000 (16:08 -0400)]
Reenable MonoTests.Remoting.IpcChannelTest.Bug609381 (#5245)

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

6 years ago[msvc] Update def files.
Alex Rønne Petersen [Thu, 20 Jul 2017 19:13:15 +0000 (21:13 +0200)]
[msvc] Update def files.

6 years ago[profiler] Add back some legacy profiler API functions.
Alex Rønne Petersen [Thu, 20 Jul 2017 18:44:25 +0000 (20:44 +0200)]
[profiler] Add back some legacy profiler API functions.

These are used by XA/XI/XM and because XM in particular needs to work with
both old and new versions of system Mono, we need to make sure these functions
still exist.

6 years ago[profiler] Rename mono_profiler_install to mono_profiler_create.
Alex Rønne Petersen [Thu, 20 Jul 2017 18:07:47 +0000 (20:07 +0200)]
[profiler] Rename mono_profiler_install to mono_profiler_create.

6 years agoMerge pull request #5198 from BrzVlad/fix-binprot-stats
Vlad Brezae [Thu, 20 Jul 2017 17:30:49 +0000 (20:30 +0300)]
Merge pull request #5198 from BrzVlad/fix-binprot-stats

[sgen] Parallel gc improvements

6 years ago[jit] test builtin types (#5208)
Bernhard Urban [Thu, 20 Jul 2017 17:24:11 +0000 (19:24 +0200)]
[jit] test builtin types (#5208)

* [builtin-types] import test suite

List of original contributors:

Zoltan Varga <vargaz@gmail.com>
Rodrigo Kumpera <kumpera@gmail.com>

* [builtin-types] import updated definitions from xamarin-macios

https://github.com/xamarin/xamarin-macios/blob/8fbbfa5ca7154fcfd553f7a7b242ffee9a95f240/src/NativeTypes/Primitives.tt

* [builtin-types] make regression suite work

* [builtin-types] disable broken tests

* [fixup] disable failing tests on arm64

6 years ago[interp] reuse finally_ips infrastructue for fault clauses
Bernhard Urban [Tue, 18 Jul 2017 17:11:48 +0000 (19:11 +0200)]
[interp] reuse finally_ips infrastructue for fault clauses

6 years agoTweak the Unreal profile
Mikayla Hutchinson [Wed, 19 Jul 2017 00:02:12 +0000 (20:02 -0400)]
Tweak the Unreal profile

6 years agoMerge pull request #5243 from alexrp/profiler-stress-fixes
Alex Rønne Petersen [Thu, 20 Jul 2017 13:34:06 +0000 (15:34 +0200)]
Merge pull request #5243 from alexrp/profiler-stress-fixes

[acceptance-tests] Don't mark msbiology as a failure if it OOMs on 32-bit.

6 years ago[sgen] Fix function signature
Vlad Brezae [Tue, 4 Jul 2017 15:59:05 +0000 (18:59 +0300)]
[sgen] Fix function signature

6 years ago[sgen] Compact allocated block list
Vlad Brezae [Sat, 24 Jun 2017 20:40:48 +0000 (23:40 +0300)]
[sgen] Compact allocated block list

It helps with its repeated traversal and improves work distribution when using parallel modes.

6 years ago[sgen] Improve card table parallelization
Vlad Brezae [Fri, 23 Jun 2017 20:09:05 +0000 (23:09 +0300)]
[sgen] Improve card table parallelization

Improve caching by scanning consecutive blocks and avoiding full block list travesal.

6 years ago[sgen] Run a single worker cycle in major parallel finish case
Vlad Brezae [Mon, 3 Jul 2017 21:14:15 +0000 (00:14 +0300)]
[sgen] Run a single worker cycle in major parallel finish case

This was not the case when we were doing a forced concurrent finish.

6 years ago[sgen] Avoid logging unnecessary binary protocol events
Vlad Brezae [Fri, 30 Jun 2017 22:53:36 +0000 (01:53 +0300)]
[sgen] Avoid logging unnecessary binary protocol events

6 years ago[sgen] Add explicit binary protocol stats for collections
Vlad Brezae [Fri, 30 Jun 2017 22:47:46 +0000 (01:47 +0300)]
[sgen] Add explicit binary protocol stats for collections

Using the cardtable scan and finish_gray_stack start and end events is cumbersome to parse and require a lot of logging, especially in the case of the parallel collector.

6 years ago[sgen] Include mod union times to stats
Vlad Brezae [Fri, 30 Jun 2017 21:01:52 +0000 (00:01 +0300)]
[sgen] Include mod union times to stats

6 years ago[sgen] Use parallel minors for pause mode
Vlad Brezae [Wed, 28 Jun 2017 10:12:59 +0000 (13:12 +0300)]
[sgen] Use parallel minors for pause mode

It should makes pauses less influenced by workload spikes

6 years ago[sgen] Avoid waiting for workers to report their own finish
Vlad Brezae [Tue, 27 Jun 2017 22:41:22 +0000 (01:41 +0300)]
[sgen] Avoid waiting for workers to report their own finish

If a worker is stuck doing work in another context, it might not be very responsive in transitioning its own state from WORK_ENQUEUED to WORKING and finally to FINISHING. When joining worker threads, we check whether we have any threads working in the corresponding context and, if there aren't any, change their state directly from the gc thread.

We can do this because work is distributed from centralized pools (worker_distribute_gray_queue and the job_queue), instead of per worker. Therefore we don't need all the workers to perform actual work in the context.

6 years agoUpdate CODEOWNERS
Marek Safar [Thu, 20 Jul 2017 09:42:01 +0000 (11:42 +0200)]
Update CODEOWNERS

6 years ago[acceptance-tests] Don't mark msbiology as a failure if it OOMs on 32-bit.
Alex Rønne Petersen [Thu, 20 Jul 2017 00:23:17 +0000 (02:23 +0200)]
[acceptance-tests] Don't mark msbiology as a failure if it OOMs on 32-bit.

This is known to happen on some platforms.

6 years ago[threads] Add checks around libc calls (#5240)
Ludovic Henry [Wed, 19 Jul 2017 21:50:07 +0000 (17:50 -0400)]
[threads] Add checks around libc calls (#5240)

6 years ago[threads] Make mono_thread_detach_internal static (#5241)
Ludovic Henry [Wed, 19 Jul 2017 21:49:20 +0000 (17:49 -0400)]
[threads] Make mono_thread_detach_internal static (#5241)

6 years ago[acceptance-tests] Further increase the individual test timeout in the profiler stres...
Alex Rønne Petersen [Wed, 19 Jul 2017 19:32:21 +0000 (21:32 +0200)]
[acceptance-tests] Further increase the individual test timeout in the profiler stress runner.

It seems ironjs-v8 takes even longer to run on ARM than fsharp, msbiology, and roslyn.

6 years ago[bcl] Fix the parallel build in the tools dir. (#5236)
Zoltan Varga [Wed, 19 Jul 2017 19:03:58 +0000 (15:03 -0400)]
[bcl] Fix the parallel build in the tools dir. (#5236)

6 years ago[offset-tool] fix assignment for GeniOS
Bernhard Urban [Wed, 19 Jul 2017 13:33:00 +0000 (15:33 +0200)]
[offset-tool] fix assignment for GeniOS

fixes this compilation error

MonoAotOffsetsDumper.cs(279,59): error CS0201: Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement

6 years ago[btls] Remove create-object-library.sh script which is no longer used. (#5232)
Zoltan Varga [Wed, 19 Jul 2017 04:21:32 +0000 (00:21 -0400)]
[btls] Remove create-object-library.sh script which is no longer used. (#5232)

6 years agoFix build of "unreal" profile
Alexander Köplinger [Tue, 18 Jul 2017 23:13:40 +0000 (01:13 +0200)]
Fix build of "unreal" profile

6 years agoMerge pull request #5224 from alexrp/profiler-multiple-args
Alex Rønne Petersen [Tue, 18 Jul 2017 22:39:40 +0000 (00:39 +0200)]
Merge pull request #5224 from alexrp/profiler-multiple-args

[profiler] Better support for multiple profilers.

6 years ago[System.Net.Http]: Close request stream when HttpClientHandler.SendAsync() is done...
Martin Baulig [Tue, 18 Jul 2017 15:09:37 +0000 (11:09 -0400)]
[System.Net.Http]: Close request stream when HttpClientHandler.SendAsync() is done writing data. (#5226)

6 years ago[acceptance-tests] Increase individual timeout of profiler stress tests to 8 hours.
Alex Rønne Petersen [Tue, 18 Jul 2017 08:04:29 +0000 (10:04 +0200)]
[acceptance-tests] Increase individual timeout of profiler stress tests to 8 hours.

fsharp, roslyn, and msbiology take a very long time to run on ARM. Hopefully this is enough.

6 years ago[llvm] Disable an optimization in LLVM where we deleted and recomputed the MONO_INST_...
Zoltan Varga [Tue, 18 Jul 2017 06:21:59 +0000 (02:21 -0400)]
[llvm] Disable an optimization in LLVM where we deleted and recomputed the MONO_INST_INDIRECT flags during codegen. This doesn't work since the INDIRECT flag prohibits the insertion of phi nodes, so its later removal leads to the generation of LLVM IR which is missing phi nodes. (#5227)

6 years ago[msbuild] Bump msbuild, fix build breakage
Ankit Jain [Tue, 18 Jul 2017 00:19:10 +0000 (20:19 -0400)]
[msbuild] Bump msbuild, fix build breakage

6 years ago[llvm] Set the MonoJitInfo.from_llvm flag for methods loaded from llvm, it got broken...
Zoltan Varga [Mon, 17 Jul 2017 23:14:02 +0000 (19:14 -0400)]
[llvm] Set the MonoJitInfo.from_llvm flag for methods loaded from llvm, it got broken by 1debf3934120547b3003c0ec4ec90bae4b08ee13. (#5223)

6 years ago[offsets-tool] Add a --gen-ios argument which can be used together with --targetdir...
Zoltan Varga [Mon, 17 Jul 2017 22:54:59 +0000 (18:54 -0400)]
[offsets-tool] Add a --gen-ios argument which can be used together with --targetdir= to generate ios offsets without having to specify the macos path. (#5218)

6 years ago[msbuild] Bump msbuild to fix build breakage
Ankit Jain [Mon, 17 Jul 2017 21:56:11 +0000 (17:56 -0400)]
[msbuild] Bump msbuild to fix build breakage

.. specifically get msbuild@81687aa7dd4ad9b76c52c1efa841b4527e0f45f9

6 years ago[profiler] Fix a crash in the AOT profiler when the output option isn't given.
Alex Rønne Petersen [Mon, 17 Jul 2017 21:03:36 +0000 (23:03 +0200)]
[profiler] Fix a crash in the AOT profiler when the output option isn't given.

6 years ago[mini] Support loading multiple profilers with the --profile option.
Alex Rønne Petersen [Mon, 17 Jul 2017 20:59:26 +0000 (22:59 +0200)]
[mini] Support loading multiple profilers with the --profile option.

The runtime has ~always supported having multiple profilers loaded, so it
didn't make much sense that only the last --profile option given would be used.

6 years ago[Mono.Profiler.Log] Remove coverage event support.
Alex Rønne Petersen [Mon, 17 Jul 2017 20:47:30 +0000 (22:47 +0200)]
[Mono.Profiler.Log] Remove coverage event support.

I intend to move code coverage support to a separate profiler module, so these
events will eventually be removed from the log format. As such, I'd rather not
commit to having these event classes in the API.

This won't affect users of the library who don't enable code coverage.

6 years ago[profiler] Profiler entry point name must now include the module name.
Alex Rønne Petersen [Mon, 17 Jul 2017 20:43:42 +0000 (22:43 +0200)]
[profiler] Profiler entry point name must now include the module name.

So mono_profiler_init becomes e.g. mono_profiler_init_log.

This allows us to link together multiple profilers into a single module and
load them selectively. This is especially useful for XA/XI/XM.

6 years agoMerge pull request #5194 from xmcclure/orbis-freeswept
Andi McClure [Mon, 17 Jul 2017 17:48:53 +0000 (13:48 -0400)]
Merge pull request #5194 from xmcclure/orbis-freeswept

Do not major_free_swept_blocks on Orbis.

6 years ago[msbuild] Bump to get new changes on xplat-master
Ankit Jain [Mon, 17 Jul 2017 17:34:31 +0000 (13:34 -0400)]
[msbuild] Bump to get new changes on xplat-master

6 years agoMerge pull request #5206 from alexrp/profiler-gc-base-init
Alex Rønne Petersen [Mon, 17 Jul 2017 17:25:17 +0000 (19:25 +0200)]
Merge pull request #5206 from alexrp/profiler-gc-base-init

[profiler] Don't call mono_gc_base_init () before loading profilers.

6 years ago[profiler] Don't call mono_gc_base_init () before loading profilers.
Alex Rønne Petersen [Thu, 13 Jul 2017 22:36:19 +0000 (00:36 +0200)]
[profiler] Don't call mono_gc_base_init () before loading profilers.

Calling this function could cause us to miss some profiler events.

In the past, we needed to call this function so that SMR and mono-threads were
initialized. Since then, 8dec9848f6208531ae14ea08f123c01da0357c42 changed
profiler initialization to happen later during startup, so this is no longer
necessary.

6 years agoMerge pull request #5216 from alexrp/profiler-runtime-settings
Alex Rønne Petersen [Mon, 17 Jul 2017 17:15:13 +0000 (19:15 +0200)]
Merge pull request #5216 from alexrp/profiler-runtime-settings

[profiler] Introduce runtime control API.

6 years agoAdd SoapAction to Content-typ for SOAP 1.2 (#5219)
Albert Ruff [Mon, 17 Jul 2017 16:30:44 +0000 (18:30 +0200)]
Add SoapAction to Content-typ for SOAP 1.2 (#5219)

6 years ago[msvc] Update csproj files (#5220)
monojenkins [Mon, 17 Jul 2017 15:38:53 +0000 (17:38 +0200)]
[msvc] Update csproj files (#5220)

6 years agoBump corefx (#5217)
Alexander Köplinger [Sun, 16 Jul 2017 17:59:41 +0000 (19:59 +0200)]
Bump corefx (#5217)

6 years ago[System] Suppress a few instances of CS0618 obsolete warnings
Alexander Köplinger [Sun, 16 Jul 2017 00:43:10 +0000 (02:43 +0200)]
[System] Suppress a few instances of CS0618 obsolete warnings

6 years ago[corlib] Preserve List<T>.ConvertAll in TypeTest (#5215)
Alexander Köplinger [Sat, 15 Jul 2017 23:49:00 +0000 (01:49 +0200)]
[corlib] Preserve List<T>.ConvertAll in TypeTest (#5215)

TypeTest.GetGenericMethodDefinitionOverInflatedMethodOnGTD accesses
List<T>.ConvertAll() via reflection but doesn't use the method
elsewhere so the linker can remove it. Added some usage to avoid that.

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

6 years ago[profiler] Use g_strerror () instead of strerror ().
Alex Rønne Petersen [Sat, 15 Jul 2017 21:13:37 +0000 (23:13 +0200)]
[profiler] Use g_strerror () instead of strerror ().

6 years ago[profiler] Change sample frequency to a 32-bit int.
Alex Rønne Petersen [Sat, 15 Jul 2017 20:55:08 +0000 (22:55 +0200)]
[profiler] Change sample frequency to a 32-bit int.

The unit is hertz, so values above 100-1000 are already extremely unusual.
Changing it to a 32-bit int avoids word tearing on 32-bit platforms.

6 years ago[profiler] Introduce runtime control API.
Alex Rønne Petersen [Sat, 15 Jul 2017 17:43:38 +0000 (19:43 +0200)]
[profiler] Introduce runtime control API.

6 years agoMerge pull request #5210 from alexrp/profiler-runtime-settings
Alex Rønne Petersen [Sat, 15 Jul 2017 11:33:20 +0000 (13:33 +0200)]
Merge pull request #5210 from alexrp/profiler-runtime-settings

[profiler] Housecleaning

6 years ago[profiler] Move heapshot logic to the correct GC event.
Alex Rønne Petersen [Sat, 15 Jul 2017 00:12:38 +0000 (02:12 +0200)]
[profiler] Move heapshot logic to the correct GC event.

MONO_GC_EVENT_START is actually sent _after_ all the 'stop world' events. The
heapshot logic being in this switch case only worked by accident previously.

6 years ago[profiler] Clean up MonoProfilerGCEvent enum.
Alex Rønne Petersen [Sat, 15 Jul 2017 00:08:40 +0000 (02:08 +0200)]
[profiler] Clean up MonoProfilerGCEvent enum.

* Remove the mark/reclaim events as they've been broken for a long time and
  aren't particularly useful.
* Reorder the enum member declarations to the order they actually arrive in.

6 years ago[bcl] Remove the ValueAdd and InetAccess NUnit categories (#2212)
Alexander Köplinger [Fri, 14 Jul 2017 21:38:31 +0000 (23:38 +0200)]
[bcl] Remove the ValueAdd and InetAccess NUnit categories (#2212)

ValueAdd was added over a decade ago and all the tests marked with this category are passing now.

We have *tons* of tests that rely on working DNS/Internet that aren't marked with
InetAccess (and they actually provide good value so we don't want to exclude them).

Since these categories don't really make sense and just causes confusion
it's better to just remove them.

6 years ago[profiler] Add a heapshot-on-shutdown option.
Alex Rønne Petersen [Fri, 14 Jul 2017 18:30:15 +0000 (20:30 +0200)]
[profiler] Add a heapshot-on-shutdown option.

6 years ago[pedump] Print failure cause message when a class cannot be initialized
Aleksey Kliger [Fri, 14 Jul 2017 16:58:08 +0000 (12:58 -0400)]
[pedump] Print failure cause message when a class cannot be initialized

6 years agoAdd @luhenry and @kumpera to CODEOWNERS for some files
Ludovic Henry [Fri, 14 Jul 2017 19:59:12 +0000 (15:59 -0400)]
Add @luhenry and @kumpera to CODEOWNERS for some files

6 years ago[llvm] Reserve the proper number of got entries in the llvm got instead of 16 which...
Zoltan Varga [Fri, 14 Jul 2017 19:39:16 +0000 (15:39 -0400)]
[llvm] Reserve the proper number of got entries in the llvm got instead of 16 which used to be enough in the past. Hopefully fixes #56111. (#5207)

6 years ago[metadata] Encode public key length correctly for keys longer than 128 bytes
Aleksey Kliger [Thu, 13 Jul 2017 19:54:12 +0000 (15:54 -0400)]
[metadata] Encode public key length correctly for keys longer than 128 bytes

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

For keys longer than 1024 bits, we encoded the length incorrectly as
   0x80 (length & 0xff)
instead of the correct algorithm:
  if (length < 0x80)
    length
  else if (length < 0x4000)
    0x80|(length>>8) (length & 0xff)
  else
    0xc0|(length>>24) (length>>16)&0xff (length>>8)&0xff length&0xff

which is provided by mono_metadata_encode_value.

See ECMA-335 II.24.2.4 #US and #Blob heaps

N.B.: we now always allocate the memory for the key as (keylen + 4) which
over-allocates by a couple of bytes in the cases where the key is shorter.

6 years ago[tests] Add regression test for InternalsVisibleTo with long PublicKey
Aleksey Kliger [Thu, 13 Jul 2017 23:02:10 +0000 (19:02 -0400)]
[tests] Add regression test for InternalsVisibleTo with long PublicKey

Regression test for https://bugzilla.xamarin.com/show_bug.cgi?id=57691

We build a library that has an InternalsVisibleTo attribute that references an
executable that is signed with a long (>128bytes) public key.  Previously we
were using an incorrect method of encoding the key length.

6 years ago[tests] Use test runner for test-internalsvisibleto
Aleksey Kliger [Thu, 13 Jul 2017 21:38:25 +0000 (17:38 -0400)]
[tests] Use test runner for test-internalsvisibleto

Also add the source files to EXTRA_DIST

6 years ago[Microsoft.Build] Relax check in BuildSubmissionTest a bit more
Alexander Köplinger [Fri, 14 Jul 2017 18:27:08 +0000 (20:27 +0200)]
[Microsoft.Build] Relax check in BuildSubmissionTest a bit more

6 years ago[Mono.Profiler.Log] Fix LogProcessor.ReadObject ().
Alex Rønne Petersen [Thu, 13 Jul 2017 17:01:09 +0000 (19:01 +0200)]
[Mono.Profiler.Log] Fix LogProcessor.ReadObject ().

6 years ago[msvc] Update VTune project files.
Alex Rønne Petersen [Thu, 13 Jul 2017 16:31:59 +0000 (18:31 +0200)]
[msvc] Update VTune project files.

6 years ago[profiler] Fix sampling thread shutdown logic to handle idle mode correctly.
Alex Rønne Petersen [Thu, 13 Jul 2017 15:37:22 +0000 (17:37 +0200)]
[profiler] Fix sampling thread shutdown logic to handle idle mode correctly.

6 years ago[profiler] Use tabledefs.h constants for method attributes.
Alex Rønne Petersen [Thu, 13 Jul 2017 13:30:37 +0000 (15:30 +0200)]
[profiler] Use tabledefs.h constants for method attributes.

6 years ago[profiler] Move the log format description to the header.
Alex Rønne Petersen [Thu, 13 Jul 2017 13:02:06 +0000 (15:02 +0200)]
[profiler] Move the log format description to the header.

6 years ago[acceptance-tests] Update the profiler-stress runner for removed options.
Alex Rønne Petersen [Thu, 13 Jul 2017 11:54:39 +0000 (13:54 +0200)]
[acceptance-tests] Update the profiler-stress runner for removed options.

6 years ago[profiler] More options reworking/refactoring.
Alex Rønne Petersen [Thu, 13 Jul 2017 11:37:27 +0000 (13:37 +0200)]
[profiler] More options reworking/refactoring.

This commit does a few different things.

First, metadata event options have been removed. We now always emit these
events. This is done because they contain important data that must be present
in order for dynamic event mask changes at runtime to result in useful data.
Also, almost all uses of the profiler require this data to be present, so
letting it be turned arguably just adds confusion for users.

Second, the PROFLOG_*_FEATURE flags have been removed. These made the code a
bit confusing because it was unclear whether code in log.c should be checking
the PROFLOG_*_FEATURE flag or the PROFLOG_*_EVENTS flag for a particular kind
of event. For heapshot in particular, the heapshot mode is now a separate enum
configuration variable. For enter/leave and coverage, switching those on and
off in the log profiler at runtime is not something we want to support at this
time.

As a result of the above change, some options are now processed manually rather
than being part of the event_list array.

Third, the way we turn off GC root events when needed is now by setting the
callback to NULL. This is more efficient as it signals to the runtime that it
doesn't have to gather root information. This will especially matter later on
when the profiler root info revamp lands, as it collects a lot more data than
we do today. Also, GC roots are no longer gathered unless we're doing a
heapshot.

Fourth, the profiler now always starts the sampling thread in idle mode. This
is so that we can reconfigure and enable/disable it at runtime as needed.

Finally, the alloc alias option now includes GC move events, and GC resize
events are only emitted if the gc option is given.

6 years ago[w32error] Add ENXIO error case (#5199)
Ludovic Henry [Fri, 14 Jul 2017 14:58:25 +0000 (10:58 -0400)]
[w32error] Add ENXIO error case (#5199)

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

6 years ago[Microsoft.Build] Make BuildSubmissionTest.EndBuildWaitsForCompletion more reliable...
Alexander Köplinger [Fri, 14 Jul 2017 12:47:14 +0000 (14:47 +0200)]
[Microsoft.Build] Make BuildSubmissionTest.EndBuildWaitsForCompletion more reliable (#5209)

We've seen this test failure a few times:

```
MESSAGE:
  #2
  Expected: greater than or equal to 00:00:01
  But was:  00:00:00.9544900

+++++++++++++++++++
STACK TRACE:
  at MonoTests.Microsoft.Build.Execution.BuildSubmissionTest.EndBuildWaitsForSubmissionCompletion () [0x000d8] in /mnt/jenkins/workspace/test-mono-mainline-linux/label/ubuntu-1404-amd64/mcs/class/Microsoft.Build/Test/Microsoft.Build.Execution/BuildSubmissionTest.cs:110
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in /mnt/jenkins/workspace/test-mono-mainline-linux/label/ubuntu-1404-amd64/mcs/class/corlib/System.Reflection/MonoMethod.cs:305
```

Rewriting the test to use Stopwatch instead of DateTime
for measuring elapsed time should make it more reliable.

6 years ago[profiler] Clarify docs for mono_profiler_set_sample_mode ().
Alex Rønne Petersen [Thu, 13 Jul 2017 08:45:59 +0000 (10:45 +0200)]
[profiler] Clarify docs for mono_profiler_set_sample_mode ().

6 years ago[profiler] Use mono_cpu_count () from utils/proclib.
Alex Rønne Petersen [Wed, 12 Jul 2017 18:16:31 +0000 (20:16 +0200)]
[profiler] Use mono_cpu_count () from utils/proclib.

6 years ago[utils/proclib] Export mono_cpu_count () for use in the profiler.
Alex Rønne Petersen [Wed, 12 Jul 2017 18:16:03 +0000 (20:16 +0200)]
[utils/proclib] Export mono_cpu_count () for use in the profiler.