Zoltan Varga [Sun, 30 Nov 2014 01:48:38 +0000 (02:48 +0100)]
Merge remote-tracking branch 'mfoliveira/ppc64el-v2'
This is a merge of:
https://github.com/mono/mono/pull/1409
Zoltan Varga [Sun, 30 Nov 2014 01:34:13 +0000 (02:34 +0100)]
[runtime] Remove some unused metadata includes from utils/.
Marek Safar [Fri, 28 Nov 2014 20:34:15 +0000 (21:34 +0100)]
Fixes build
Marek Safar [Fri, 28 Nov 2014 19:23:40 +0000 (20:23 +0100)]
[mcs] new test
Marek Safar [Fri, 28 Nov 2014 17:18:06 +0000 (18:18 +0100)]
[mcs] Less cascading errors
Marek Safar [Fri, 28 Nov 2014 17:16:50 +0000 (18:16 +0100)]
[mcs] Extend tie-breaking rules in overload resolution when default parameters are unused
João Matos [Fri, 28 Nov 2014 16:50:21 +0000 (16:50 +0000)]
[build] Added support for ARM64 Android cross-compilation.
Alex Rønne Petersen [Fri, 28 Nov 2014 17:05:35 +0000 (18:05 +0100)]
Merge pull request #1401 from fquiroz01/patch-1
Add IE9 and newer to Up level navigator
Zoltan Varga [Fri, 28 Nov 2014 16:43:10 +0000 (17:43 +0100)]
[runtime] Fix a copyright date.
Marek Safar [Fri, 28 Nov 2014 14:23:09 +0000 (15:23 +0100)]
[mcs] Check delegate return type conversion during implicit delegate conversion
Marek Safar [Fri, 28 Nov 2014 12:23:38 +0000 (13:23 +0100)]
[mcs] Tweak naming of nested types. Fixes #24172
Zoltan Varga [Fri, 28 Nov 2014 05:23:48 +0000 (06:23 +0100)]
[runtime] Add a remoting.h file and move the remoting related marshal function declarations there. Add a low level lock used by the remoting.c file and an initialization function.
Zoltan Varga [Fri, 28 Nov 2014 05:15:05 +0000 (06:15 +0100)]
[runtime] Fix the build.
Zoltan Varga [Fri, 28 Nov 2014 04:55:18 +0000 (05:55 +0100)]
[runtime] Fix the DISABLE_REMOTING build.
Zoltan Varga [Fri, 28 Nov 2014 04:50:39 +0000 (05:50 +0100)]
[runtime] Extract the remoting code from marshal.c into a separate remoting.c file.
Zoltan Varga [Fri, 28 Nov 2014 02:40:42 +0000 (03:40 +0100)]
[runtime] Remove more unused debug code.
Zoltan Varga [Fri, 28 Nov 2014 02:36:56 +0000 (03:36 +0100)]
[runtime] Simplify mono-debug.c since we no longer have to serialize a lot of the data.
Zoltan Varga [Fri, 28 Nov 2014 00:10:03 +0000 (01:10 +0100)]
[runtime] Remove an obsolete comment.
Zoltan Varga [Fri, 28 Nov 2014 00:07:06 +0000 (01:07 +0100)]
[runtime] Change the default runtime version to 4.5.
Alex Rønne Petersen [Thu, 27 Nov 2014 23:30:44 +0000 (00:30 +0100)]
Merge pull request #1431 from esdrubal/enummap
Fixed how EnumMap serializes flag values.
Zoltan Varga [Thu, 27 Nov 2014 23:26:28 +0000 (00:26 +0100)]
Make the various '2' (al2/resgen2 etc.) scripts target net 4.5.
Zoltan Varga [Thu, 27 Nov 2014 23:11:27 +0000 (00:11 +0100)]
Fix the build.
Marcos Henrich [Thu, 27 Nov 2014 12:57:22 +0000 (12:57 +0000)]
Fixed how EnumMap serializes flag values. Fixes #21072.
While serializing an enum value, EnumMap no longer considers partial matching flags when there is a flag that matches exactly.
Marcos Henrich [Thu, 27 Nov 2014 12:51:57 +0000 (12:51 +0000)]
Test DataContractSerializer with flags enum. Covers #21072.
When serializing an enum value, matching flags should not be consider when there is a flag that matches exactly.
Zoltan Varga [Thu, 27 Nov 2014 16:41:53 +0000 (17:41 +0100)]
Make gmcs/dmcs the same as mcs.
Marek Safar [Thu, 27 Nov 2014 16:29:45 +0000 (17:29 +0100)]
[mcs] Update import of private struct fields for flow analysis.
Marek Safar [Thu, 27 Nov 2014 15:12:11 +0000 (16:12 +0100)]
Merge pull request #1432 from akoeplinger/parallel-fix
[corlib] Fix Parallel.ForEach overload that hardcoded -1 for the item index
Alexander Köplinger [Thu, 27 Nov 2014 15:08:18 +0000 (16:08 +0100)]
[corlib] Fix Parallel.ForEach overload that hardcoded -1 for the item index
Xamarin bug #24891
Jo Shields [Thu, 27 Nov 2014 11:06:21 +0000 (11:06 +0000)]
Fix EXTRA_DIST of file in deleted regex folder
Alexander Köplinger [Thu, 27 Nov 2014 04:29:32 +0000 (05:29 +0100)]
[MWF] Fix bug in DataGridViewRowCollection Clear() introduced by recent commit
7d1b878fbf13462a282860c6d1dd493a48d7b1eb altered the behavior of removing rows, breaking
the DataGridViewRowCollectionTest.ClearRows () test
Before the change, this is what happened when the list was cleared
(the number in brackets is the value of the Index property of the DataGridViewRow):
[0] Remove [1] ReIndex [0] Remove [1] ReIndex [0]
[1] --------> [2] --------> [1] ------> [2] -------> [1] ...
[2] [3] [2]
[3]
After the offending commit, ReIndex is only called after the list is cleared, which means
the Index property of the rows is never updated (as there are no items in the list).
The fix is to explicitly set the Index of each row to 0.
This was the end result before the commit anyway, so we can omit the ReIndex call entirely.
Marek Safar [Thu, 27 Nov 2014 10:56:47 +0000 (11:56 +0100)]
[system.net.http] Update range checks for invalid characters. Fixes #18800
Jo Shields [Thu, 27 Nov 2014 09:20:39 +0000 (09:20 +0000)]
Fix "make dist" error caused by renamed sgen-marksweep-drain-gray-stack.h
Alexander Köplinger [Thu, 27 Nov 2014 02:20:56 +0000 (03:20 +0100)]
Fix build (SHARED_EXT was renamed to MONO_SOLIB_EXT in
4342bce4412bdd5fc70efcf9d055e23a7a908b64)
Marek Safar [Thu, 27 Nov 2014 08:05:52 +0000 (09:05 +0100)]
[system.net.http] Escape more RFC5987 characters. Fixes #24785
Miguel de Icaza [Thu, 27 Nov 2014 03:17:23 +0000 (22:17 -0500)]
Merge pull request #1430 from akoeplinger/readme
Improve README.md and focus on relevant content
Alex Rønne Petersen [Thu, 27 Nov 2014 00:28:49 +0000 (01:28 +0100)]
Merge pull request #1319 from directhex/systemwide-per-arch-aot-cache
Add a third AOT location, alongside ~/.mono/aot-cache and the assembly dir
Alexander Köplinger [Sun, 23 Nov 2014 22:28:31 +0000 (23:28 +0100)]
Improve README.md and focus on relevant content
Before, the first thing the user saw were instructions for niche platforms like Itanium or Solaris.
Instead, we now just link to the "Compiling Mono" guides for OSX, Linux and Windows on the Mono website.
Additionally, a bunch of instructions were outdated / no longer relevant, updated those.
The "Configuration options" section was moved to the bottom of the readme, it was pretty long and pushed
the other sections into oblivion.
Alex Rønne Petersen [Wed, 26 Nov 2014 23:43:18 +0000 (00:43 +0100)]
Merge pull request #1407 from chrisvire/bug-24587
[MWF] Fix focus issue when removing last item in ListView
Alex Rønne Petersen [Wed, 26 Nov 2014 23:41:29 +0000 (00:41 +0100)]
Merge pull request #1424 from akoeplinger/remove-enable-nunit-tests
Remove --enable-nunit-tests option from build system
Marek Safar [Wed, 26 Nov 2014 21:57:58 +0000 (22:57 +0100)]
[mcs] Remove declaration expression named argument parsing (not part of the language yet). Fixes #24784
Mark Probst [Wed, 26 Nov 2014 21:52:27 +0000 (13:52 -0800)]
[sgen] Fix concurrent M&S.
Sebastien Pouliot [Wed, 26 Nov 2014 21:26:35 +0000 (16:26 -0500)]
Bump referencesource to fix mobile profile compilation of System.ComponentModel.DataAnnotations
Sebastien Pouliot [Wed, 26 Nov 2014 21:00:57 +0000 (16:00 -0500)]
Fix mobile build wrt System.Core changes
Miguel de Icaza [Wed, 26 Nov 2014 19:43:25 +0000 (14:43 -0500)]
[System] Make it build with the MonoTouch profile
Miguel de Icaza [Mon, 24 Nov 2014 17:40:10 +0000 (12:40 -0500)]
Drop dead notes/code
Marek Safar [Wed, 26 Nov 2014 18:54:35 +0000 (19:54 +0100)]
Fixes build
Mark Probst [Wed, 26 Nov 2014 01:23:14 +0000 (17:23 -0800)]
[sgen] Use all 3 lower vtable bits on 32 bits.
We can't actually use the trick of setting both the pinned and forwarded
bits to indicate cemented objects because the Tarjan bridge requires those
two bits never be set at the same time.
Mark Probst [Tue, 25 Nov 2014 20:26:22 +0000 (12:26 -0800)]
[sgen] Align vtable pointers to 8 bytes on 32 bits, too.
Mark Probst [Tue, 25 Nov 2014 20:08:27 +0000 (12:08 -0800)]
[sgen] Mempool allocations should be 8 byte aligned. Fix this on 32 bits.
The `MonoMemPool` struct is not a multiple of 8 bytes large, so we need
to align up to get the actual start of the pool data.
Mark Probst [Mon, 24 Nov 2014 20:40:39 +0000 (12:40 -0800)]
[sgen] Remove unused defines.
Mark Probst [Mon, 17 Nov 2014 22:52:03 +0000 (14:52 -0800)]
[sgen] Document descriptor types in comment.
Mark Probst [Mon, 17 Nov 2014 22:51:31 +0000 (14:51 -0800)]
[sgen] Symbolic constants for pointer-free descriptor types.
Mark Probst [Mon, 17 Nov 2014 22:50:59 +0000 (14:50 -0800)]
[sgen] Separate descriptor type enums.
Mark Probst [Mon, 17 Nov 2014 22:49:05 +0000 (14:49 -0800)]
[sgen] Use a symbolic constant for the descriptor type mask.
Mark Probst [Mon, 17 Nov 2014 22:28:31 +0000 (14:28 -0800)]
[sgen] Rename `LARGE_BITMAP` to `BITMAP`.
There's only one bitmap descriptor type left and no need to
distinguish between large and small.
Mark Probst [Thu, 20 Nov 2014 21:45:23 +0000 (13:45 -0800)]
[sgen] Use `guint64` for most counters, not `long long`.
Mark Probst [Wed, 22 Oct 2014 18:30:46 +0000 (11:30 -0700)]
[sgen] Fix cementing tag bit on 32 bits.
We used the third-lowest vtable bit to tag cemented objects. On 32 bits,
vtables are only 4-byte aligned so we have to make do with 2 bits.
Mark Probst [Tue, 21 Oct 2014 22:59:39 +0000 (15:59 -0700)]
[sgen] Remove DESCRIPTOR_FAST_PATH option - don't use it.
We're removing options that we've introduced for experimentation but that
didn't pan out.
Mark Probst [Tue, 21 Oct 2014 22:52:53 +0000 (15:52 -0700)]
[sgen] Remove MARK_ON_ENQUEUE option - always use it now.
We're removing options that we've introduced for experimentation but that
didn't pan out.
Mark Probst [Tue, 21 Oct 2014 22:46:39 +0000 (15:46 -0700)]
[sgen] Remove GRAY_QUEUE_HAVE_DESCRIPTORS option - always use it now.
We're removing options that we've introduced for experimentation but that
didn't pan out.
Mark Probst [Tue, 21 Oct 2014 22:43:04 +0000 (15:43 -0700)]
[sgen] Remove USE_PREFETCH_QUEUE option - don't use it.
We're removing options that we've introduced for experimentation but that
didn't pan out.
Mark Probst [Tue, 21 Oct 2014 22:39:24 +0000 (15:39 -0700)]
[sgen] Remove BLOCK_INFO_IN_HEADER option - always use it now.
We're removing options that we've introduced for experimentation but that
didn't pan out.
Mark Probst [Wed, 15 Oct 2014 21:24:10 +0000 (17:24 -0400)]
[sgen] Use a smaller slot size scaling factor.
The factor we used previously gave us object sizes in increments that made
some benchmarks use quite a lot more memory than necessary. In particular,
we didn't have a size for 24 byte objects (on 64 bits), just for 16 and 32.
Mark Probst [Sat, 11 Oct 2014 16:18:22 +0000 (09:18 -0700)]
[sgen] Make block size fastenable.
Mark Probst [Fri, 10 Oct 2014 19:17:38 +0000 (12:17 -0700)]
[sgen] Fix card scanning with larger block sizes.
The card scanning code assumed that the size of the block header is less
than the size of a card. If we put the block info into the header and increase
the block size enough, that assumption isn't true anymore, because the
mark bits take up space in proportion to the block size.
Mark Probst [Thu, 9 Oct 2014 18:55:30 +0000 (11:55 -0700)]
[sgen] Experimental pre-fetch scan fast-path.
The idea here is to first extract all the references within an object
and then to process them, pre-fetching the objects they point to a few
steps ahead.
Mark Probst [Wed, 8 Oct 2014 21:26:52 +0000 (14:26 -0700)]
[sgen] Fix build for mark-on-dequeue.
Mark Probst [Wed, 8 Oct 2014 19:28:57 +0000 (12:28 -0700)]
[sgen] Nicer visualization of concurrent collector pauses in gcpausevis.py.
Mark Probst [Tue, 7 Oct 2014 20:54:36 +0000 (13:54 -0700)]
[sgen] Separate binary protocol entries for concurrent update and finish.
Mark Probst [Tue, 7 Oct 2014 20:53:50 +0000 (13:53 -0700)]
[sgen] Flush binary protocol buffers after unloading a domain.
When the runtime shuts down the last thing the GC usually hears about it
is that the root domain is unloaded. If we don't flush the binary protocol
buffers at that point, we lose entries.
Mark Probst [Tue, 7 Oct 2014 00:13:31 +0000 (17:13 -0700)]
[sgen] Fix build on C99.
Mark Probst [Tue, 7 Oct 2014 00:11:50 +0000 (17:11 -0700)]
[sgen] Fix build with heavy statistics.
Mark Probst [Sun, 5 Oct 2014 03:13:41 +0000 (20:13 -0700)]
[sgen] Rename sgen-major-scan-object.h to sgen-marksweep-scan-object-concurrent.h.
Mark Probst [Sun, 5 Oct 2014 03:03:53 +0000 (20:03 -0700)]
[sgen] Remove some dead code in sgen-major-scan-object.h.
Mark Probst [Sat, 4 Oct 2014 23:42:27 +0000 (16:42 -0700)]
[sgen] Unify scanning code a bit.
We still have two separate implementations of the scanning code: The optimized
one and the old one. The old one is still needed because it supports the concurrent
collector. For the non-concurrent collector we can now use the optimized
implementation, however.
Mark Probst [Sat, 4 Oct 2014 23:03:34 +0000 (16:03 -0700)]
[sgen] Add/fix some assertions.
Mark Probst [Sat, 4 Oct 2014 23:02:41 +0000 (16:02 -0700)]
[sgen] Add some missing binary protocol invocations.
Mark Probst [Sat, 4 Oct 2014 22:53:27 +0000 (15:53 -0700)]
[sgen] New protocol entry for processing of individual reference.
Mark Probst [Sat, 4 Oct 2014 22:44:27 +0000 (15:44 -0700)]
[sgen] In binary protocol grep, gray en-/dequeue must not always match.
Mark Probst [Sat, 4 Oct 2014 22:43:48 +0000 (15:43 -0700)]
[sgen] Remove binary protocol entry for null dequeue.
Mark Probst [Sat, 4 Oct 2014 22:43:00 +0000 (15:43 -0700)]
[sgen] Fix build on highest debug level.
Mark Probst [Thu, 2 Oct 2014 23:56:00 +0000 (16:56 -0700)]
[sgen] Handle copy object failure.
This is just a verbatim copy of the old code. It's unlikely it's ever
been tested, though.
Mark Probst [Thu, 2 Oct 2014 23:55:39 +0000 (16:55 -0700)]
[sgen] Increase debug level of assertions in inner loops.
Mark Probst [Thu, 2 Oct 2014 23:47:05 +0000 (16:47 -0700)]
[sgen] Remove dead code.
This was still left from the parallel collector.
Mark Probst [Thu, 25 Sep 2014 21:56:30 +0000 (14:56 -0700)]
[sgen] Fix build with prefetch queue enabled.
Mark Probst [Tue, 23 Sep 2014 23:45:44 +0000 (16:45 -0700)]
[sgen] Make new M&S parameters fastenable.
Fasten is a small tool for optimizing compile-time options:
https://github.com/evincarofautumn/fasten
It does that by parsing source files for numbers that have been marked
as "fastenable", and fiddling around with them. We do this for all
the new optimizations.
Mark Probst [Tue, 16 Sep 2014 09:25:52 +0000 (11:25 +0200)]
[sgen] Support evacuation in the optimized mark/scan loop.
We actually implement two separate mark/scan loops: One that doesn't
support evacuation and one that does. We dynamically choose which one
to use. The evacuation-less loop is faster, so we use it whenever we can.
Mark Probst [Tue, 16 Sep 2014 09:07:09 +0000 (11:07 +0200)]
[sgen] Move drain_gray_stack() to copy/mark header file, too.
This inlines the scan/copy functions, so if we duplicate them we need
to duplicate this, too.
Mark Probst [Tue, 16 Sep 2014 08:23:20 +0000 (10:23 +0200)]
[sgen] Remove old copy/mark function.
The new, optimized function can now do everything the old one did, so
let's get rid of it.
Mark Probst [Sun, 5 Oct 2014 00:10:21 +0000 (17:10 -0700)]
[sgen] Move copy/mark function into separate header file.
So we can later include them twice, once with support for evacuation
and once without.
Mark Probst [Tue, 16 Sep 2014 08:02:56 +0000 (10:02 +0200)]
[sgen] Support evacuation again.
The performance impact of this is significant, so we will later make
two separate scan functions: one with evacuation and one without.
Mark Probst [Tue, 16 Sep 2014 08:01:05 +0000 (10:01 +0200)]
[sgen] Support split nursery again.
This might degrade performance, in which case we'll special-case it
later on.
Mark Probst [Mon, 15 Sep 2014 09:07:56 +0000 (11:07 +0200)]
[sgen] Unify the two small object mark cases again.
The only difference between these two cases was that we used to
different heavy statistics counters. We can do that within a single
case.
Mark Probst [Mon, 15 Sep 2014 09:05:00 +0000 (11:05 +0200)]
[sgen] Use MS_MARK_OBJECT_AND_ENQUEUE where we expanded it previously.
It's still the same code, so use the macro directly.
Mark Probst [Thu, 11 Sep 2014 10:36:12 +0000 (12:36 +0200)]
[sgen] Always inline the optimized copy function.
This is a huge win for some benchmarks.
Mark Probst [Thu, 11 Sep 2014 10:35:29 +0000 (12:35 +0200)]
[sgen] Never fall back to the old copy function.
Mark Probst [Wed, 10 Sep 2014 10:16:06 +0000 (12:16 +0200)]
[sgen] Use scanning macro in optimized loop.
We expanded this macro previously, but it's still the same code, so
use the macro directly.
Mark Probst [Wed, 10 Sep 2014 10:08:08 +0000 (12:08 +0200)]
[sgen] New SMALL_PTRFREE descriptor type for faster has_references checking.
We use 3 to denote SMALL_PTRFREE, and 7 for COMPLEX_PTRFREE, so we can
check for both simply with ((desc & 3) == 3).
Mark Probst [Wed, 10 Sep 2014 09:45:39 +0000 (11:45 +0200)]
[sgen] Only enqueue objects with references.
Mark Probst [Wed, 10 Sep 2014 09:27:59 +0000 (11:27 +0200)]
[sgen] Look at descriptor, not block, to see whether object has references.