mono.git
9 years agoAdded Symbolicate tool.
Marcos Henrich [Wed, 19 Nov 2014 19:45:15 +0000 (19:45 +0000)]
Added Symbolicate tool.
Symbolicate tool replaces stack frames "<filename unknown>:0" with correct file name and line.

9 years agoAdded opcode il_seq_point.
Marcos Henrich [Tue, 18 Nov 2014 11:42:31 +0000 (11:42 +0000)]
Added opcode il_seq_point.
il_seq_point has zero length and is used in release instead of the expensive seq_point opcode.

9 years agoChanged METHOD_EXIT_IL_OFFSET back to 0xffffff. The previous value was -2, that could...
Marcos Henrich [Mon, 17 Nov 2014 12:47:43 +0000 (20:47 +0800)]
Changed METHOD_EXIT_IL_OFFSET back to 0xffffff. The previous value was -2, that could introduce comparison issues. Added flag MONO_SEQ_POINT_FLAG_EXIT_IL that is used to encode the exit IL, this avoids a 4 byte IL offset delta.

9 years agoAdded out_buf parameter to encode_var_int and decode_var_int.
Marcos Henrich [Mon, 17 Nov 2014 10:20:15 +0000 (18:20 +0800)]
Added out_buf parameter to encode_var_int and decode_var_int.

9 years agoRenamed seq_point_info_write_size to seq_point_info_get_write_size.
Marcos Henrich [Fri, 14 Nov 2014 18:37:10 +0000 (02:37 +0800)]
Renamed seq_point_info_write_size to seq_point_info_get_write_size.

9 years agoMonoSeqPointInfo data is now compressed. Encode data MonoSeqPointInfo len, has_debug_...
Marcos Henrich [Fri, 31 Oct 2014 13:54:03 +0000 (13:54 +0000)]
MonoSeqPointInfo data is now compressed. Encode data MonoSeqPointInfo len, has_debug_data and alloc_data into a single variable int.

9 years agoMonoSeqPointInfo no longer uses a GByteArray. GByteArray requires too much memory...
Marcos Henrich [Fri, 31 Oct 2014 10:29:15 +0000 (10:29 +0000)]
MonoSeqPointInfo no longer uses a GByteArray. GByteArray requires too much memory, we still use GByteArray to build the buffer but when its done we store in MonoSeqPointInfo a copy.

9 years agoMerged SeqPoint.next_array with SeqPoint.array.
Marcos Henrich [Fri, 31 Oct 2014 09:38:09 +0000 (09:38 +0000)]
Merged SeqPoint.next_array with SeqPoint.array.

9 years agoSeqPoint next array is no longer allocated by default. Next array will only be alloca...
Marcos Henrich [Fri, 31 Oct 2014 08:57:23 +0000 (08:57 +0000)]
SeqPoint next array is no longer allocated by default. Next array will only be allocated if has_debug_data is true.

9 years agoAdded size of sequence points to mono jit stats.
Marcos Henrich [Fri, 31 Oct 2014 08:54:24 +0000 (08:54 +0000)]
Added size of sequence points to mono jit stats.

9 years agoIgnore seq points of entry and exit IL offsets. Those seq points are only required...
Marcos Henrich [Thu, 30 Oct 2014 22:37:45 +0000 (22:37 +0000)]
Ignore seq points of entry and exit IL offsets. Those seq points are only required for debugging.

9 years agoChanged mini-exceptions functions to get IL offsets from seq point. mono_walk_stack_f...
Marcos Henrich [Thu, 30 Oct 2014 22:34:44 +0000 (22:34 +0000)]
Changed mini-exceptions functions to get IL offsets from seq point. mono_walk_stack_full and ves_icall_get_trace are now using find_prev_seq_point_for_native_offset to retrieve IL offsets.

9 years agoSequence points debug data is no longer store by default. Debug data is only stored...
Marcos Henrich [Thu, 30 Oct 2014 21:17:55 +0000 (21:17 +0000)]
Sequence points debug data is no longer store by default. Debug data is only stored when cfg->gen_seq_points_debug_data is true.

9 years agoSequence points are now generated by default.
Marcos Henrich [Thu, 30 Oct 2014 21:14:16 +0000 (21:14 +0000)]
Sequence points are now generated by default.

9 years agoChanged METHOD_EXIT_IL_OFFSET to -2 The new value produces lower deltas and does...
Marcos Henrich [Thu, 30 Oct 2014 15:20:10 +0000 (15:20 +0000)]
Changed METHOD_EXIT_IL_OFFSET to -2 The new value produces lower deltas and does not overflow when using variable integer encoding.

9 years agoaot-runtime and aot-compiler now use seq_point_info_read/write.
Marcos Henrich [Thu, 30 Oct 2014 09:18:10 +0000 (09:18 +0000)]
aot-runtime and aot-compiler now use seq_point_info_read/write.

9 years agoAdded methods to read and write MonoSeqPointInfo.
Marcos Henrich [Thu, 30 Oct 2014 09:15:07 +0000 (09:15 +0000)]
Added methods to read and write MonoSeqPointInfo.

9 years agoSeqPoint are now kept in memory with a compact encoding. MonoSeqPointInfo has now...
Marcos Henrich [Wed, 29 Oct 2014 11:00:46 +0000 (11:00 +0000)]
SeqPoint are now kept in memory with a compact encoding. MonoSeqPointInfo has now a pointer to a buffer containing encoded sequence points, and to a buffer containing next values. As there is no longer an array of SeqPoint ready to be read, SeqPointIterator was added.

9 years agoMoved sequence point logic to seq-points.h and seq-points.c
Marcos Henrich [Tue, 28 Oct 2014 22:06:07 +0000 (22:06 +0000)]
Moved sequence point logic to seq-points.h and seq-points.c

9 years agoImproved exception stack frame displayed data. Added stack frame method address display.
Marcos Henrich [Wed, 17 Sep 2014 19:08:31 +0000 (20:08 +0100)]
Improved exception stack frame displayed data. Added stack frame method address display.

9 years agoAdded to StackFrame a field for the method address. Incremented MONO_CORLIB_VERSION.
Marcos Henrich [Wed, 17 Sep 2014 18:48:43 +0000 (19:48 +0100)]
Added to StackFrame a field for the method address. Incremented MONO_CORLIB_VERSION.

9 years ago[mcs] Makes flow analysis of goto/goto case significantly faster. Fixes #24511
Marek Safar [Tue, 18 Nov 2014 09:27:17 +0000 (10:27 +0100)]
[mcs] Makes flow analysis of goto/goto case significantly faster. Fixes #24511

9 years ago[jit] Fix a class initialization race which happens if a class initializer initialize...
Zoltan Varga [Tue, 18 Nov 2014 02:44:35 +0000 (21:44 -0500)]
[jit] Fix a class initialization race which happens if a class initializer initializes a got slot before it finishes running. Fixes #23242.

9 years ago[aot] Disable COM support in AOT code, the COM wrapper code doesn't play well with...
Zoltan Varga [Mon, 17 Nov 2014 22:42:28 +0000 (17:42 -0500)]
[aot] Disable COM support in AOT code, the COM wrapper code doesn't play well with AOT.

9 years agoMerge pull request #1406 from BrzVlad/monitor-resurrect
Mark Probst [Mon, 17 Nov 2014 22:17:32 +0000 (14:17 -0800)]
Merge pull request #1406 from BrzVlad/monitor-resurrect

Keep the monitor link to the object active also in the resurrection case

9 years agoMerge pull request #1388 from schani/fix-23401
Rodrigo Kumpera [Mon, 17 Nov 2014 22:17:04 +0000 (17:17 -0500)]
Merge pull request #1388 from schani/fix-23401

Fix 23401

9 years ago[runtime] Avoid crashes when a non-runtime thread receives a SIGQUIT.
Zoltan Varga [Mon, 17 Nov 2014 22:03:35 +0000 (17:03 -0500)]
[runtime] Avoid crashes when a non-runtime thread receives a SIGQUIT.

9 years agoMerge pull request #1408 from brendanzagaeski/signed-xml-bug-7716
Sebastien Pouliot [Mon, 17 Nov 2014 21:32:54 +0000 (16:32 -0500)]
Merge pull request #1408 from brendanzagaeski/signed-xml-bug-7716

[System.Security] Fix SignedXml bug #7716 with tests

9 years ago[arm] Applied patch from Richard Dunkley <rick.dunkley@gmail.com>. Fix complication...
Zoltan Varga [Mon, 17 Nov 2014 20:46:31 +0000 (15:46 -0500)]
[arm] Applied patch from Richard Dunkley <rick.dunkley@gmail.com>. Fix complication problems with newer gcc versions. Fixes #24588.

9 years ago[System.Security] Fix SignedXml bug #7716 with tests
Brendan Zagaeski [Sat, 15 Nov 2014 05:34:42 +0000 (00:34 -0500)]
[System.Security] Fix SignedXml bug #7716 with tests

The underlying problem for bug 7716 [1] was that the Mono C14N XML
canonicalizer was not sorting the XML attributes in the same order as
Microsoft .NET's canonicalizer.

The C14N specification [2] states: "the attributes are sorted
lexicographically by attribute name (based on Unicode character code
points)." This wording suggests that the order of attributes should be
strictly ascending based on Unicode byte value. This commit changes the
attribute sort order to match the specification.

The new tests pass on Windows, fail on Mono before this change, and
succeed on Mono after this change.

[1] https://bugzilla.xamarin.com/show_bug.cgi?id=7716
[2] http://www.w3.org/TR/2000/WD-xml-c14n-20000119.html

9 years agoKeep the monitor link to the object active also in the resurrection case.
Vlad Brezae [Mon, 17 Nov 2014 20:23:32 +0000 (12:23 -0800)]
Keep the monitor link to the object active also in the resurrection case.

The MonoThreadsSync data field contains a weak reference to the object that uses the structure, which should be a tracking one.

9 years agoMerge pull request #1405 from mono/revert-1289-stackframe
Rodrigo Kumpera [Mon, 17 Nov 2014 19:39:43 +0000 (14:39 -0500)]
Merge pull request #1405 from mono/revert-1289-stackframe

Revert "Improved exception stack frame displayed data."

9 years agoRevert "Improved exception stack frame displayed data."
Rodrigo Kumpera [Mon, 17 Nov 2014 19:37:41 +0000 (14:37 -0500)]
Revert "Improved exception stack frame displayed data."

9 years agoMerge pull request #1289 from esdrubal/stackframe
Rodrigo Kumpera [Mon, 17 Nov 2014 17:44:35 +0000 (12:44 -0500)]
Merge pull request #1289 from esdrubal/stackframe

Improved exception stack frame displayed data.

9 years agoChanged METHOD_EXIT_IL_OFFSET back to 0xffffff.
Marcos Henrich [Mon, 17 Nov 2014 12:47:43 +0000 (20:47 +0800)]
Changed METHOD_EXIT_IL_OFFSET back to 0xffffff.
The previous value was -2, that could introduce comparison issues.
Added flag MONO_SEQ_POINT_FLAG_EXIT_IL that is used to encode the exit IL, this avoids a 4 byte IL offset delta.

9 years agoAdded out_buf parameter to encode_var_int and decode_var_int.
Marcos Henrich [Mon, 17 Nov 2014 10:20:15 +0000 (18:20 +0800)]
Added out_buf parameter to encode_var_int and decode_var_int.

9 years agoRenamed seq_point_info_write_size to seq_point_info_get_write_size.
Marcos Henrich [Fri, 14 Nov 2014 18:37:10 +0000 (02:37 +0800)]
Renamed seq_point_info_write_size to seq_point_info_get_write_size.

9 years agoMonoSeqPointInfo data is now compressed.
Marcos Henrich [Fri, 31 Oct 2014 13:54:03 +0000 (13:54 +0000)]
MonoSeqPointInfo data is now compressed.
Encode data MonoSeqPointInfo len, has_debug_data and alloc_data into a single variable int.

9 years agoMonoSeqPointInfo no longer uses a GByteArray.
Marcos Henrich [Fri, 31 Oct 2014 10:29:15 +0000 (10:29 +0000)]
MonoSeqPointInfo no longer uses a GByteArray.
GByteArray requires too much memory, we still use GByteArray to build the buffer but when its done we store in MonoSeqPointInfo a copy.

9 years agoMerged SeqPoint.next_array with SeqPoint.array.
Marcos Henrich [Fri, 31 Oct 2014 09:38:09 +0000 (09:38 +0000)]
Merged SeqPoint.next_array with SeqPoint.array.

9 years agoSeqPoint next array is no longer allocated by default.
Marcos Henrich [Fri, 31 Oct 2014 08:57:23 +0000 (08:57 +0000)]
SeqPoint next array is no longer allocated by default.
Next array will only be allocated if has_debug_data is true.

9 years agoAdded size of sequence points to mono jit stats.
Marcos Henrich [Fri, 31 Oct 2014 08:54:24 +0000 (08:54 +0000)]
Added size of sequence points to mono jit stats.

9 years agoIgnore seq points of entry and exit IL offsets.
Marcos Henrich [Thu, 30 Oct 2014 22:37:45 +0000 (22:37 +0000)]
Ignore seq points of entry and exit IL offsets.
Those seq points are only required for debugging.

9 years agoChanged mini-exceptions functions to get IL offsets from seq point.
Marcos Henrich [Thu, 30 Oct 2014 22:34:44 +0000 (22:34 +0000)]
Changed mini-exceptions functions to get IL offsets from seq point.
mono_walk_stack_full and ves_icall_get_trace are now using find_prev_seq_point_for_native_offset to retrieve IL offsets.

9 years agoSequence points debug data is no longer store by default.
Marcos Henrich [Thu, 30 Oct 2014 21:17:55 +0000 (21:17 +0000)]
Sequence points debug data is no longer store by default.
Debug data is only stored when cfg->gen_seq_points_debug_data is true.

9 years agoSequence points are now generated by default.
Marcos Henrich [Thu, 30 Oct 2014 21:14:16 +0000 (21:14 +0000)]
Sequence points are now generated by default.

9 years agoChanged METHOD_EXIT_IL_OFFSET to -2
Marcos Henrich [Thu, 30 Oct 2014 15:20:10 +0000 (15:20 +0000)]
Changed METHOD_EXIT_IL_OFFSET to -2
The new value produces lower deltas and does not overflow when using variable integer encoding.

9 years agoaot-runtime and aot-compiler now use seq_point_info_read/write.
Marcos Henrich [Thu, 30 Oct 2014 09:18:10 +0000 (09:18 +0000)]
aot-runtime and aot-compiler now use seq_point_info_read/write.

9 years agoAdded methods to read and write MonoSeqPointInfo.
Marcos Henrich [Thu, 30 Oct 2014 09:15:07 +0000 (09:15 +0000)]
Added methods to read and write MonoSeqPointInfo.

9 years agoSeqPoint are now kept in memory with a compact encoding.
Marcos Henrich [Wed, 29 Oct 2014 11:00:46 +0000 (11:00 +0000)]
SeqPoint are now kept in memory with a compact encoding.
MonoSeqPointInfo has now a pointer to a buffer containing encoded sequence points, and to a buffer containing next values.
As there is no longer an array of SeqPoint ready to be read, SeqPointIterator was added.

9 years agoMoved sequence point logic to seq-points.h and seq-points.c
Marcos Henrich [Tue, 28 Oct 2014 22:06:07 +0000 (22:06 +0000)]
Moved sequence point logic to seq-points.h and seq-points.c

9 years agoImproved exception stack frame displayed data.
Marcos Henrich [Wed, 17 Sep 2014 19:08:31 +0000 (20:08 +0100)]
Improved exception stack frame displayed data.
Added stack frame method address display.

9 years agoAdded to StackFrame a field for the method address.
Marcos Henrich [Wed, 17 Sep 2014 18:48:43 +0000 (19:48 +0100)]
Added to StackFrame a field for the method address.
Incremented MONO_CORLIB_VERSION.

9 years ago[runtime] Fix the errors in edb931dfb9741660fefe73528c503b17e1341f4d so it actually...
Zoltan Varga [Fri, 14 Nov 2014 03:26:03 +0000 (22:26 -0500)]
[runtime] Fix the errors in edb931dfb9741660fefe73528c503b17e1341f4d so it actually works.

9 years ago[sgen] Add a FIXME.
Mark Probst [Thu, 13 Nov 2014 23:42:41 +0000 (15:42 -0800)]
[sgen] Add a FIXME.

9 years ago[sgen] Never mark from two threads at the same time.
Mark Probst [Wed, 12 Nov 2014 23:51:07 +0000 (15:51 -0800)]
[sgen] Never mark from two threads at the same time.

We don't update mark bits atomically, so we can't have two threads
marking at the same time, which means we have to stop the concurrent
collector worker thread while we do work in the main GC thread.  That
includes nursery collections, because they also touch mark bits.

Also problematic are mod-union updates.  The worker threads can add
global remsets, which they do in the main cardtable.  This will conflict
with updating the mod-union table, so having the workers stopped also
applies there.

9 years ago[sgen] Reorganize `sgen_perform_collection` for clarity.
Mark Probst [Wed, 12 Nov 2014 01:13:36 +0000 (17:13 -0800)]
[sgen] Reorganize `sgen_perform_collection` for clarity.

9 years ago[sgen] Make `check-mark-bits` work again.
Mark Probst [Tue, 11 Nov 2014 23:26:23 +0000 (15:26 -0800)]
[sgen] Make `check-mark-bits` work again.

9 years ago[sgen] Scan the whole nursery in the finish mark pause.
Mark Probst [Tue, 11 Nov 2014 23:17:18 +0000 (15:17 -0800)]
[sgen] Scan the whole nursery in the finish mark pause.

Before we do all the major heap work in the finish mark pause of a
concurrent collection, we perform a nursery collection, for simplicity's
sake.

The nursery collection left pinned objects in the nursery, without
following their references into the major heap, so the major heap work
had to scan those objects again.  There was no special provisioning
for this—major mark would do the pinning again, and we would
automatically end up scanning the objects again.

The way we determine the stack end for the GC thread, however,
had the effect of making pinning non-deterministic.  We would
conservatively scan part of the GC thread's stack, which was
subject to change, to pinning again might result in less or more
objects pinned.

The proper solution would be to determine the stack end correctly,
but for now we will just the whole nursery.

9 years ago[sgen] Only count cards for STW protocol if heavy is enabled.
Mark Probst [Fri, 7 Nov 2014 19:53:56 +0000 (11:53 -0800)]
[sgen] Only count cards for STW protocol if heavy is enabled.

9 years ago[sgen] Binary protocol entry for pin stage.
Mark Probst [Thu, 6 Nov 2014 22:59:08 +0000 (14:59 -0800)]
[sgen] Binary protocol entry for pin stage.

9 years ago[sgen] Add missing `volatile`.
Mark Probst [Thu, 6 Nov 2014 22:53:55 +0000 (14:53 -0800)]
[sgen] Add missing `volatile`.

9 years ago[System] Ignore two tests which are failing due to external factors changing.
Rolf Bjarne Kvinge [Thu, 13 Nov 2014 08:48:37 +0000 (09:48 +0100)]
[System] Ignore two tests which are failing due to external factors changing.

See https://bugzilla.xamarin.com/show_bug.cgi?id=24340

9 years ago[mono-api-html] Allow ignoring addition of property setters.
Jonathan Pryor [Thu, 13 Nov 2014 18:18:49 +0000 (13:18 -0500)]
[mono-api-html] Allow ignoring addition of property setters.

As mentioned in commit 789517f8, I'm trying to compare inter-API level
differences in Mono.Android.dll, and want to reduce as much
"meaningless noise" as possible -- changes which don't meaningfully
break API or ABI.

Among those "meaningless" changes are the addition of property setters
to properties. Adding a setter doesn't break API or ABI.

Add a `mono-api-html --ignore-changes-property-setters` option.

  --ignore-changes-property-setters:
      Ignore the addition of property setters.

      If a source property contains a getter and the target property
      contains both a getter and a setter, do not flag this as a
      change.

9 years ago[mono-api-html] Make --ignore-changes-virtual less lenient.
Jonathan Pryor [Thu, 13 Nov 2014 18:02:34 +0000 (13:02 -0500)]
[mono-api-html] Make --ignore-changes-virtual less lenient.

As mentioned in commit 789517f8, the intentino of
`mono-api-html --ignore-changes-virtual` is so that when a method is
changed from non-virtual to virtual or override, or from virtual to
override, a "Removed member" message isn't triggered.

However, the previous implementation was too lenient. While *adding*
virtual to the method is fine, *removing* is NOT fine, as that would
be an API breaking change (e.g. all classes which attempt to override
a previously virtual method could no longer do so).

Make the virtual check stricter so that virtual/override to
non-virtual changes are not ignored.

9 years ago[xbuild] Add 14.0 toolchain
Marek Safar [Thu, 13 Nov 2014 17:37:43 +0000 (18:37 +0100)]
[xbuild] Add 14.0 toolchain

9 years ago[mcs] More updates to auto-properties v6 implementation
Marek Safar [Thu, 13 Nov 2014 16:18:01 +0000 (17:18 +0100)]
[mcs] More updates to auto-properties v6 implementation

9 years ago[jit] Fix gshared and aot support for --debug=casts.
Zoltan Varga [Thu, 13 Nov 2014 01:12:44 +0000 (20:12 -0500)]
[jit] Fix gshared and aot support for --debug=casts.

9 years ago[jit] Fix --debug=casts support for casts in gshared methods.
Zoltan Varga [Thu, 13 Nov 2014 00:58:22 +0000 (19:58 -0500)]
[jit] Fix --debug=casts support for casts in gshared methods.

9 years ago[mono-api-html] Allow ignoring parameter names, virtual.
Jonathan Pryor [Wed, 12 Nov 2014 22:28:48 +0000 (17:28 -0500)]
[mono-api-html] Allow ignoring parameter names, virtual.

I've been trying to review API diffs in Xamarin.Android between API
levels, but the diffs are "noisy" because Google will change parameter
names at-will, or will change a non-virtual method into a virtual
method, or a virtual method into an override, all of which are
acceptable changes but individually generate a Removed line in
mono-api-html output, and manually removing the *hundreds* of changes
is error-prone.

Add two new option flags to mono-api-html:

  --ignore-changes-parameter-names:
      Ignore changes in constructor and method parameter names.

      If parameter names change between <reference.xml> and
      <assembly.xml>, don't report a change for the constructor or
      method.

  --ignore-changes-virtual:
      Ignore changes in "virtual-ness".

      If a method or property changes from non-virtual to virtual,
      non-virtual to override, or virtual to override, don't report a
      change for the member.

9 years ago[runtime] Fix a deadlock introduced in the last commit.
Rodrigo Kumpera [Wed, 12 Nov 2014 21:49:30 +0000 (16:49 -0500)]
[runtime] Fix a deadlock introduced in the last commit.

9 years ago[runtime] What MonoImage::ptr_cache with the image lock. Do optimistic locking here...
Rodrigo Kumpera [Tue, 11 Nov 2014 20:37:20 +0000 (15:37 -0500)]
[runtime] What MonoImage::ptr_cache with the image lock. Do optimistic locking here too.

9 years ago[runtime] Replace the loader lock when protecting the global module map.
Rodrigo Kumpera [Tue, 11 Nov 2014 20:29:05 +0000 (15:29 -0500)]
[runtime] Replace the loader lock when protecting the global module map.

9 years agoAdd comment on one usage of the loader lock.
Rodrigo Kumpera [Tue, 11 Nov 2014 20:02:11 +0000 (15:02 -0500)]
Add comment on one usage of the loader lock.

9 years ago[runtime] Protect MonoImage::files with the image lock and make image loading optimistic.
Rodrigo Kumpera [Tue, 11 Nov 2014 20:01:20 +0000 (15:01 -0500)]
[runtime] Protect MonoImage::files with the image lock and make image loading optimistic.

9 years agoChange mono_class_from_generic_parameter to use the image lock.
Rodrigo Kumpera [Mon, 27 Oct 2014 05:33:06 +0000 (22:33 -0700)]
Change mono_class_from_generic_parameter to use the image lock.

We change the function to use the lock/validate pattern. This is both
more scalable and enables us to use the image lock, since the amount of
work done with it held is now trivial.

9 years agoReduce usage of the loader lock in method lookup.
Rodrigo Kumpera [Mon, 27 Oct 2014 04:52:52 +0000 (21:52 -0700)]
Reduce usage of the loader lock in method lookup.

The function mono_method_inflated_lookup no longer needs the loader lock to be held
as the hashtable is now protected by the imageset lock.

This means that mono_class_inflate_generic_method_full_checked doesn't need to take the
loader lock.

The function mono_method_set_generic_container uses mono_image_property_insert which takes
the image lock and not the loader lock. Adjust the locking comment.

9 years agoFix the mobile build.
Zoltan Varga [Wed, 12 Nov 2014 01:11:39 +0000 (20:11 -0500)]
Fix the mobile build.

9 years ago[aot] Avoid an assert when AOTing a non-mobile mscorlib in a runtime with COM disabled.
Zoltan Varga [Wed, 12 Nov 2014 01:10:20 +0000 (20:10 -0500)]
[aot] Avoid an assert when AOTing a non-mobile mscorlib in a runtime with COM disabled.

9 years ago[perfcounters,proflog,mprof-report] Add support for Performance Counters sampling...
Ludovic Henry [Tue, 11 Nov 2014 18:45:30 +0000 (13:45 -0500)]
[perfcounters,proflog,mprof-report] Add support for Performance Counters sampling in the log profiler

9 years ago[counters,proflog] Add mono_counters_on_register/delete callbacks + Use them in proflog
Ludovic Henry [Fri, 12 Sep 2014 18:38:03 +0000 (14:38 -0400)]
[counters,proflog] Add mono_counters_on_register/delete callbacks + Use them in proflog

This is used for counters that are defined after runtime initialization. It implies that TYPE_SAMPLE_COUNTERS_DESC can now be emitted at any time, and not only once.

9 years ago[counters] Make API thread safe
Ludovic Henry [Fri, 12 Sep 2014 17:45:52 +0000 (13:45 -0400)]
[counters] Make API thread safe

9 years ago[perf-counters] Fix return of the same counter even with different a counter parameter
Ludovic Henry [Fri, 22 Aug 2014 15:36:17 +0000 (11:36 -0400)]
[perf-counters] Fix return of the same counter even with different a counter parameter

The same counter instance would be returned if we use the "instance" parameter instead of the "counter"
parameter. Also it is the name of the counter that is stored in mono_perfcounter_create (mono-perfcounters.c:1488).

9 years ago[perf-counters] Declare shared data header type directly after creation
Ludovic Henry [Tue, 10 Jun 2014 14:33:04 +0000 (10:33 -0400)]
[perf-counters] Declare shared data header type directly after creation

Fix the following bug : shared_data_find_room return twice the same memory region because it was not marked as "in use" by setting the header.ftype value.
This bug is triggered when we want to create a new shared area (for example a new FTYPE_INSTANCE area) while creating another area (for example a new FTYPE_CATEGORY).

9 years ago[perf-counters] Fix bug on SharedCounter decoding
Ludovic Henry [Tue, 10 Jun 2014 14:26:34 +0000 (10:26 -0400)]
[perf-counters] Fix bug on SharedCounter decoding

The structure of the encoded SharedCounter is as follow :
 - compressed data type : 1 byte
 - index in the category : 1 byte
 - name of the counter : null terminated string
 - help of the counter : null terminated string

9 years ago[xbuild] Change default tools profile
Marek Safar [Tue, 11 Nov 2014 17:49:30 +0000 (18:49 +0100)]
[xbuild] Change default tools profile

9 years ago[corlib] Fix culture info error message. Fixes #24431
Marek Safar [Tue, 11 Nov 2014 14:53:04 +0000 (15:53 +0100)]
[corlib] Fix culture info error message. Fixes #24431

9 years ago[mcs] Extended pragma warning syntax
Marek Safar [Tue, 11 Nov 2014 14:42:05 +0000 (15:42 +0100)]
[mcs] Extended pragma warning syntax

9 years ago[mcs] Use same result bucket for extension method lookup in all types of using expression
Marek Safar [Tue, 11 Nov 2014 10:23:41 +0000 (11:23 +0100)]
[mcs] Use same result bucket for extension method lookup in all types of using expression

9 years agoAdd a test for #24419.
Zoltan Varga [Tue, 11 Nov 2014 01:54:12 +0000 (20:54 -0500)]
Add a test for #24419.

9 years ago[jit] Remove some special casing from LDTOKEN, it doesn't seem to be needed. Fixes...
Zoltan Varga [Tue, 11 Nov 2014 01:17:38 +0000 (20:17 -0500)]
[jit] Remove some special casing from LDTOKEN, it doesn't seem to be needed. Fixes #24419.

9 years ago[runtime] Remove the second signal used by profiling and now multiplex distribution...
Rodrigo Kumpera [Mon, 10 Nov 2014 23:39:25 +0000 (18:39 -0500)]
[runtime] Remove the second signal used by profiling and now multiplex distribution and sampling with the same signal.

9 years ago[runtime] Introduce new MonoThread API for signal multiplexing. It's a provisional...
Rodrigo Kumpera [Mon, 10 Nov 2014 23:36:10 +0000 (18:36 -0500)]
[runtime] Introduce new MonoThread API for signal multiplexing. It's a provisional API until we figure out more of how it's suposed to work.

9 years ago[profiler] Guard against null sbuff when serializing statistical data.
Rodrigo Kumpera [Mon, 10 Nov 2014 21:44:48 +0000 (16:44 -0500)]
[profiler] Guard against null sbuff when serializing statistical data.

9 years ago[profiler] Fix statistical backtraces to work and collect as many frames as possible.
Rodrigo Kumpera [Mon, 10 Nov 2014 20:50:57 +0000 (15:50 -0500)]
[profiler] Fix statistical backtraces to work and collect as many frames as possible.

This is a jumbo commit that addresses multiple issues with statistical backtrace collection:

1) It's not possible to reliably collect MonoMethod* so we check that they exist before
serializing to the .mlpd file and retrieve in sync context.

2) It was reporting the generic instance MonoMethod* under gsharing. Those methods are
not reported to the profiler since they are never compiled. They would turn out as unknowns.

3) Collecting IL offsets from async context is currently impossible to be done safely, so it's
now disabled. The way we'll do it in the future is by serializing the sequence point table when
JIT'ing.

4) The way we used to collect frames in statistical ignored all frames until the first LMF, which
discards a lot of them under statistical mode. We now properly pass sigcontext and have it been consumed.
In the future we should simply use the callchain mode.

9 years ago[runtime] Changes mono_stack_walk_async_safe API to be truly async safe.
Rodrigo Kumpera [Mon, 10 Nov 2014 20:00:54 +0000 (15:00 -0500)]
[runtime] Changes mono_stack_walk_async_safe API to be truly async safe.

This is a very very tricky API, so we restrict the returned data to be what's really
possible under sig context.

9 years ago[runtime] Harden the profiler signal handlers against not fully attached threads...
Rodrigo Kumpera [Mon, 10 Nov 2014 19:25:54 +0000 (14:25 -0500)]
[runtime] Harden the profiler signal handlers against not fully attached threads and HP reentrancy.

9 years agoRevert "Disable building the NET 2.0 profile by default."
Zoltan Varga [Mon, 10 Nov 2014 22:46:34 +0000 (17:46 -0500)]
Revert "Disable building the NET 2.0 profile by default."

This reverts commit 458c9456f0960d62862fcb461b503c4ed8faf9f9.

This still breaks the build.

9 years agoDisable building the NET 2.0 profile by default.
Zoltan Varga [Tue, 4 Nov 2014 22:49:18 +0000 (17:49 -0500)]
Disable building the NET 2.0 profile by default.

9 years ago[jit] Get rid of the mono_arch_sigctx_to_monoctx()/monoctx_to_sigctx () functions...
Zoltan Varga [Mon, 10 Nov 2014 19:31:29 +0000 (14:31 -0500)]
[jit] Get rid of the mono_arch_sigctx_to_monoctx()/monoctx_to_sigctx () functions, use mono_sigctx_to_monoctx()/monoctx_to_sigctx() instead.