Zoltan Varga [Thu, 26 Mar 2015 15:29:01 +0000 (11:29 -0400)]
Merge pull request #1659 from alexanderkyte/stringbuilder-referencesource
Fixed StringBuilder marshaling capacity error, and then the tests broken by fixing it.
Zoltan Varga [Thu, 26 Mar 2015 13:43:06 +0000 (09:43 -0400)]
Merge pull request #1658 from esdrubal/spgenerics
Improved generics in exception's stack traces and mono-symbolicate.
Marcos Henrich [Thu, 19 Mar 2015 13:38:10 +0000 (13:38 +0000)]
[mono-symbolicate] Updated tool test.
Test now checks generic methods, generic classes, methods overloads, ref/out parameters.
Marcos Henrich [Tue, 24 Mar 2015 19:02:50 +0000 (19:02 +0000)]
[mono-symbolicate] make check now runs mono with -O=-inline.
Inlining otimization is disabled so the full call stack can be displayed.
Marcos Henrich [Tue, 24 Mar 2015 18:56:53 +0000 (18:56 +0000)]
[mono-symbolicate] Improved tool stack trace handling.
Generics are no longer a problem.
Marcos Henrich [Tue, 24 Mar 2015 18:37:30 +0000 (18:37 +0000)]
[corlib] Changed Exception.GetFullNameForStackTrace to .NET behavior.
.NET displays the method definition generic argument names instead of types.
Marcos Henrich [Tue, 24 Mar 2015 18:22:36 +0000 (18:22 +0000)]
[corlib] Exception stack traces now show method index if needed.
Method index will be set if the method metadata token is shared by multiple generic specializations.
For StackFrame.GetILOffsetFromFile to work with generics methods a method index is required.
Marcos Henrich [Tue, 24 Mar 2015 18:16:13 +0000 (18:16 +0000)]
[runtime] .msym now stores method index.
The method index is required to disambiguate between generic methods that share the same metadata token.
Marcos Henrich [Tue, 24 Mar 2015 17:14:41 +0000 (17:14 +0000)]
[runtime] Added function mono_aot_find_method_index.
Method index will be included in some aot stack traces, when method metadata token is not enough (e.g: generic methods).
João Matos [Thu, 26 Mar 2015 10:22:43 +0000 (10:22 +0000)]
Merge pull request #1660 from akoeplinger/fix-zone-url-with-at-sign
[corlib] Don't strip @ char in Mono.Security.Uri for absolute path
Zoltan Varga [Thu, 26 Mar 2015 10:06:29 +0000 (06:06 -0400)]
[runtime] Avoid a crash in mini_thread_cleanup () for attached threads.
Zoltan Varga [Thu, 26 Mar 2015 10:04:11 +0000 (06:04 -0400)]
[readme] Remove xamcore reference.
Zoltan Varga [Thu, 26 Mar 2015 10:02:28 +0000 (06:02 -0400)]
Zoltan Varga [Thu, 26 Mar 2015 10:00:24 +0000 (06:00 -0400)]
[runtime] Initialize String.Empty from native code to allow removal of String:.cctor ().
Marek Safar [Thu, 26 Mar 2015 08:57:07 +0000 (09:57 +0100)]
[mcs] Report abstract member hiding only for members which one can override. Fixes #28213
Zoltan Varga [Thu, 26 Mar 2015 08:18:00 +0000 (04:18 -0400)]
[mkbundle] Use mingw assembler on windows.
Alexander Köplinger [Thu, 26 Mar 2015 01:29:27 +0000 (02:29 +0100)]
[corlib] Don't strip @ char in Mono.Security.Uri for absolute path
When creating a Mono.Security.Uri with the string "file:///var/lib/jenkins/workspace/test-mono-mainline@2/..."
(happens sometimes in System.Security.Policy.Zone-related unit tests on Jenkins) the current implementation
strips everything up until the @ sign.
Zone thinks the file doesn't exist locally as the Uri.LocalPath doesn't refer to a valid file on disk
anymore and this results in an incorrect zone value, making the tests fail.
Fixing this by treating the @ char differently when it is in an absolute path (as is done for other chars).
Martin Baulig [Thu, 26 Mar 2015 00:26:19 +0000 (01:26 +0100)]
[System]: Fix the AllowWriteStreamBuffering check. Bugs #26640 and #26936.
Added new tests for this to the web-tests:
https://github.com/xamarin/web-tests/commit/
e7b5ac42897e629e9e4107cf6f9ae9e0a9fef45a
and re-enabled this one, which regressed:
https://github.com/xamarin/web-tests/commit/
046da02c631c8799c7ab5025cd3b685f4a3e66f6
Martin Baulig [Wed, 25 Mar 2015 21:33:02 +0000 (22:33 +0100)]
Bump referencesource and add test for the problem.
Marek Safar [Wed, 25 Mar 2015 19:28:50 +0000 (20:28 +0100)]
Update failing test
Marek Safar [Wed, 25 Mar 2015 19:07:42 +0000 (20:07 +0100)]
[System.Runtime.Serialization.Formatters.Soap] A test fix to remove hashtable order dependency
Alexander Kyte [Wed, 25 Mar 2015 17:44:53 +0000 (13:44 -0400)]
[corlib] Fixed StringBuilder construction bugs in marshalling caused by changes to capacity setting.
Marek Safar [Wed, 25 Mar 2015 18:15:56 +0000 (19:15 +0100)]
Revert "[mcs] Special case flowanalysis of primitive structs only when they are imported. Fixes #28296"
This reverts commit
b50e898ece06bf7dacbea6211406cca1af5ea5af.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Reorganize code to work with the coop backend.
This splits the native backend from core functionality it needs to provide. For example,on posix, we want to
use the pthread_create code regardless of the backend enabled.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Introduce a pair of states to handle native suspend.
Native code should not normally be in runnable state. That's reserved only for managed code. In theory.
In practice any code that can witness the managed heap must be in the runnable state.
This in practice means all runtime code (icalls) and embeders. Right now lets focus on the runtime side.
The solution for this is to wrap all calls that could lead to unbound suspension in code that coordinates
with the GC - most syscalls that can block. This is realized with a pair of additional thread states.
1)Blocking: This the state where the runtime is doing something that can potentially block. The suspend count
will be > 0 if the current thread is suspended. In practice it won't suspend, just wait on resume.
2)Blocking and suspended: When leaving the blocking state, if the thread has a pending suspend, we transition
to this state while waiting for resume.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Move jit_data from MonoThreadInternal to MonoThreadInfo. Cleanup jit attach code to support earlier attaching.
This move allows us to save the thread state much earlier on. In addition to the move, we now produce thread contexts without
the JIT TLS set. This might end up been an issue in some corner cases, just like with domain, so we'll address those when
they show up.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Surface mono_thread_info_current_unchecked.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Log the thread tid instead of the MonoThreadInfo pointer.
Other places are already logging tid so this makes correlation possible.
TID is a better pick than the MonoThreadInfo pointer as it's easier to find the thread on gdb.
Rodrigo Kumpera [Mon, 2 Feb 2015 16:04:37 +0000 (11:04 -0500)]
[threading] Add configure option to enable cooperative suspend.
Marek Safar [Wed, 25 Mar 2015 16:58:14 +0000 (17:58 +0100)]
[mcs] Special case flowanalysis of primitive structs only when they are imported. Fixes #28296
Zoltan Varga [Wed, 25 Mar 2015 16:39:18 +0000 (12:39 -0400)]
[jit] Trucate the shift amount in the long shift emulation functions to better mirror the behavior of the processor shift instructions.
Marek Safar [Wed, 25 Mar 2015 16:26:27 +0000 (17:26 +0100)]
[corlib] Add missing file
Marek Safar [Wed, 25 Mar 2015 16:24:55 +0000 (17:24 +0100)]
Merge pull request #1644 from ztone/eval_class_attr
[eval] Allow class attributes
Marek Safar [Wed, 25 Mar 2015 16:17:23 +0000 (17:17 +0100)]
[mcs] Resize identifier buffer in all cases. Fixes #28292
Alexander Kyte [Wed, 25 Mar 2015 16:14:06 +0000 (12:14 -0400)]
[corlib] Fixed wrongly changing capacities in stringbuilder marshalling
Marek Safar [Wed, 25 Mar 2015 15:32:19 +0000 (16:32 +0100)]
[mcs] Fix parsing of interpolated strings inside conditional expression. Fixes #28293
Alexander Köplinger [Wed, 25 Mar 2015 14:28:24 +0000 (15:28 +0100)]
Fix a typo and code indentation in readme.md
Marek Safar [Wed, 25 Mar 2015 14:07:13 +0000 (15:07 +0100)]
[corlib] String from reference sources, fixes mostly string.format issues
João Matos [Wed, 25 Mar 2015 14:03:07 +0000 (14:03 +0000)]
[runtime] Fixed the build on Android by relying on header checking for system headers.
João Matos [Wed, 25 Mar 2015 14:02:08 +0000 (14:02 +0000)]
[runtime] Fixed complex.h usage in MS's thread pool to work in Android.
Android does not provide complex.h in the API levels that we compile against so bundle our own header (based on the one from FreeBSD).
Turns out GCC already provides built-in handling for the complex functions used by the code so there's no need to provide our own implementations.
João Matos [Wed, 25 Mar 2015 12:59:30 +0000 (12:59 +0000)]
Merge pull request #1657 from alexrp/disable-perf-events
[profiler] Disable `perf` events by default.
Zoltan Varga [Wed, 25 Mar 2015 12:31:46 +0000 (08:31 -0400)]
[io-layer] Fix the freeing of MonoProcess structures. Fixes #28209.
Alex Rønne Petersen [Wed, 25 Mar 2015 12:22:39 +0000 (13:22 +0100)]
[profiler] Disable `perf` events by default.
As it turns out, `perf` support crashes/hangs on a lot of Linux
kernels in the wild, and produces no output on some Android devices.
So, given that using a signal + helper thread is more reliable, use
it by default and make `perf` support optional.
The configure flag is now `--enable-perf-events`.
Alex Rønne Petersen [Wed, 25 Mar 2015 12:13:03 +0000 (13:13 +0100)]
[profiler] Avoid a slow path in mono_jit_info_table_find ().
Alex Rønne Petersen [Wed, 25 Mar 2015 12:03:08 +0000 (13:03 +0100)]
[profiler] Really fix looking up JIT info for AOT'd methods.
mono_aot_get_method () will not necessarily put methods into the
MonoDomain::jit_code_hash table. But it does return an IP that we
can use to look up the JIT info with mono_jit_info_table_find ().
Marek Safar [Wed, 25 Mar 2015 11:33:38 +0000 (12:33 +0100)]
[mcs] Allow built-in types to have partial declaration
Zoltan Varga [Wed, 25 Mar 2015 09:14:42 +0000 (05:14 -0400)]
[runtime] Revert
eaf200b37bd8ba29d59fc7054f8409e9b76b5697 and all fixes to it since it still causes hangs.
Zoltan Varga [Wed, 25 Mar 2015 05:29:27 +0000 (01:29 -0400)]
[runtime] Avoid returning null from Marshal.AllocCoTaskMem () if size is 0. Fixes #28383.
Zoltan Varga [Wed, 25 Mar 2015 05:07:07 +0000 (01:07 -0400)]
Miguel de Icaza [Wed, 25 Mar 2015 02:13:04 +0000 (22:13 -0400)]
Add submodule instructions
Alex Soto [Tue, 24 Mar 2015 23:24:02 +0000 (17:24 -0600)]
[MonoDataSqlite] Add test for Xamarin.iOS specific bug 27864
src: https://bugzilla.xamarin.com/show_bug.cgi?id=27864
As of iOS 8.2 Apple updated Sqlite and broke queries that used to work
pre iOS 8.2 like the select command in this test, The pruppose of this
test is to know when apple fixes this. Expected test behaivour is as follows.
* If iOS 8.2+ Test will pass as long as apple does not fix the bug
* If iOS < 8.2 Test will pass as it does work as expected
* If iOS 8.2+ and apple fixed bug 27864 test will fail and we will need to
remove the fail check on lines 105 and 106
Zoltan Varga [Tue, 24 Mar 2015 21:53:46 +0000 (17:53 -0400)]
[amd64] Fix OP_SHR_IMM/OP_SHL_IMM.
Zoltan Varga [Tue, 24 Mar 2015 20:51:31 +0000 (16:51 -0400)]
[runtime] Fix another regression caused by
eaf200b37bd8ba29d59fc7054f8409e9b76b5697.
Zoltan Varga [Tue, 24 Mar 2015 20:46:38 +0000 (16:46 -0400)]
[arm] Handle OP_SEQ_POINT opcodes during peephole optimizations correctly.
Zoltan Varga [Tue, 24 Mar 2015 20:44:02 +0000 (16:44 -0400)]
Merge pull request #1655 from ghuntley/patch-1
corrected spelling mistakes.
Geoffrey Huntley [Tue, 24 Mar 2015 20:38:58 +0000 (07:38 +1100)]
corrected spelling mistakes.
Zoltan Varga [Tue, 24 Mar 2015 18:56:06 +0000 (14:56 -0400)]
[runtime] Fix an uninitialized memory error added by
eaf200b37bd8ba29d59fc7054f8409e9b76b5697.
Zoltan Varga [Tue, 24 Mar 2015 16:35:15 +0000 (12:35 -0400)]
[io-layer] Fix the freeing of MonoProcess structures. Fixes #28209.
Sebastien Pouliot [Tue, 24 Mar 2015 14:46:33 +0000 (10:46 -0400)]
[tests] Tweak MemoryMappedFile test case that fails on iOS/ARM64 [#27667]
Filled with Apple. From bug report:
The problem appears to be caused by a bug in mmap on the arm64 ios.
In this test, we request a page and mmap returns successfully, but when trying
to access the mapped memory, the program crashes after the 4097th byte, meaning
that it only maps us 4kb(???). It should be mentioned that on arm64 ios the
page size is 16kb.
Marek Safar [Tue, 24 Mar 2015 09:52:23 +0000 (10:52 +0100)]
[corlib] ngen attributes from reference sources
Marek Safar [Tue, 24 Mar 2015 09:35:42 +0000 (10:35 +0100)]
[corlib] Remove unused files
Marek Safar [Tue, 24 Mar 2015 09:04:23 +0000 (10:04 +0100)]
[corlib] ExceptionServices from reference sources
Marek Safar [Tue, 24 Mar 2015 08:50:11 +0000 (09:50 +0100)]
[corlib] Debugger attributes from reference sources
João Matos [Tue, 24 Mar 2015 11:31:51 +0000 (11:31 +0000)]
Merge pull request #1634 from StephenMcConnel/bug-28025
Show thumbnail images in SWF.(Open,Save)FileDialog
Ludovic Henry [Tue, 24 Mar 2015 11:28:39 +0000 (11:28 +0000)]
[runtime] Remove unnecessary winbase.h header include on Windows
João Matos [Tue, 24 Mar 2015 11:25:08 +0000 (11:25 +0000)]
Merge pull request #1652 from debuglevel/bugfix-crosscompile
fixed case-sensitive file name for cross compilation
Zoltan Varga [Tue, 24 Mar 2015 09:29:29 +0000 (05:29 -0400)]
Merge pull request #1588 from BrzVlad/feature-aot-wbarrier
AOT write barrier method
Marek Safar [Tue, 24 Mar 2015 09:25:57 +0000 (10:25 +0100)]
Merge pull request #1638 from esdrubal/servicepoint
[System] Fixed RemoveConnectionGroup concurrent issue.
Zoltan Varga [Tue, 24 Mar 2015 09:24:58 +0000 (05:24 -0400)]
Merge pull request #1632 from alexanderkyte/bug24118
[corlib] Fixed change in
4b4ddb66b3 that prevented use of remoting fast path
Marek Safar [Tue, 24 Mar 2015 08:30:03 +0000 (09:30 +0100)]
[system] FrameworkName from reference sources
Marek Safar [Tue, 24 Mar 2015 07:43:54 +0000 (08:43 +0100)]
[mcs] Emit correct assignment to ref pointer
Marek Safar [Tue, 24 Mar 2015 06:27:57 +0000 (07:27 +0100)]
Fixes build
Marek Safar [Tue, 24 Mar 2015 06:14:24 +0000 (07:14 +0100)]
[system.windows.forms] Add AssemblyNamesTypeResolutionService to correctly fix
78b63f29d50d08ac2826f95164433a5ff3c843ae
Alex Rønne Petersen [Tue, 24 Mar 2015 01:44:36 +0000 (02:44 +0100)]
Typo fix...
Alex Rønne Petersen [Tue, 24 Mar 2015 01:43:15 +0000 (02:43 +0100)]
[arm] Also fix OP_ATOMIC_STORE_R4.
Miguel de Icaza [Tue, 24 Mar 2015 01:31:00 +0000 (21:31 -0400)]
Man page update
Mark Probst [Mon, 23 Mar 2015 22:36:03 +0000 (15:36 -0700)]
Merge pull request #1596 from schani/feature-sgen-improvements
Small SGen fixes and improvements
Mark Probst [Mon, 23 Feb 2015 23:34:35 +0000 (15:34 -0800)]
[sgen] Fix slot size calculation.
The way we calculated slot sizes was very brittle when it came to
small slots. Reducing the size of the block header could trigger it
skipping an important small size class, which would lead to increased
memory usage and slower execution times.
Now we always produce all possible small slot sizes, up to four times
the minimum object size.
Mark Probst [Wed, 18 Feb 2015 00:16:43 +0000 (16:16 -0800)]
[sgen] Remove stealing.
We only have one worker thread. There is no point in stealing.
Mark Probst [Wed, 11 Feb 2015 21:08:10 +0000 (13:08 -0800)]
[sgen] Save more space in M&S block infos.
Mark Probst [Wed, 11 Feb 2015 20:55:58 +0000 (12:55 -0800)]
[sgen] Do pinning of M&S blocks in one pass. Saves time and memory.
Mark Probst [Thu, 5 Feb 2015 22:39:26 +0000 (14:39 -0800)]
[sgen] Store worker's job names for debugging.
Mark Probst [Thu, 5 Feb 2015 21:58:41 +0000 (13:58 -0800)]
[sgen] Allow skipping of entries in `sgen-grep-binprot`.
Mark Probst [Thu, 5 Feb 2015 21:12:22 +0000 (13:12 -0800)]
[sgen] Some clarifying comments and rearrangements.
Mark Probst [Thu, 5 Feb 2015 21:11:50 +0000 (13:11 -0800)]
[sgen] Remove dead code.
Mark Probst [Thu, 5 Feb 2015 21:05:07 +0000 (13:05 -0800)]
[sgen] Binary protocol entry for pin-staging cemented objects.
Mark Probst [Thu, 5 Feb 2015 20:39:57 +0000 (12:39 -0800)]
[sgen] Only scan mod-union in LOS on marked objects.
Mark Probst [Thu, 29 Jan 2015 20:21:42 +0000 (12:21 -0800)]
[sgen] Free lists in blocks must be volatile.
Mark Probst [Mon, 26 Jan 2015 17:18:24 +0000 (12:18 -0500)]
[sgen] Rename a callback for clarity.
Mark Probst [Wed, 21 Jan 2015 23:04:29 +0000 (15:04 -0800)]
[sgen] Don't scan until jobs done in worker thread.
The jobs must always have priority because the concurrent collector
waits for them to finish before restarting the world.
Mark Probst [Tue, 28 Oct 2014 21:13:42 +0000 (14:13 -0700)]
[sgen] Fix names and remove superfluous parameters.
Mark Probst [Tue, 28 Oct 2014 20:21:03 +0000 (13:21 -0700)]
[sgen] Move debug code to `sgen-debug.c`.
Mark Probst [Tue, 28 Oct 2014 20:05:01 +0000 (13:05 -0700)]
[sgen] Rename `have_computed_minor_collection_allowance` to `free_swept_blocks`.
Because that's what it actually does.
Mark Probst [Tue, 28 Oct 2014 19:17:22 +0000 (12:17 -0700)]
[sgen] Remove superfluous function indirection.
Mark Probst [Tue, 28 Oct 2014 19:15:47 +0000 (12:15 -0700)]
[sgen] Replace `have_swept` pointer with callback.
We want to use a state variable instead of `have_swept`, so we need a callback
to abstract.
Mark Probst [Fri, 20 Feb 2015 00:00:13 +0000 (16:00 -0800)]
[sgen] Don't pass redundant `scan_mod_union` to `major_finish_collection()`.
Mark Probst [Thu, 5 Feb 2015 21:57:58 +0000 (13:57 -0800)]
[sgen] Disable cementing for concurrent M&S.
The code just worked because it never reset cementing. It needs to be
completely rewritten.
With cementing enabled, at the start of a major concurrent
collection, we cannot reset it. That's because if we have
cemented objects, some remsets to them will be missing, and the
major collector does not scan the whole heap immediately, like
the non-concurrent one does.
The proper way to do it seems to be to reset cementing before
finishing a concurrent collection. All major objects that point
to formerly cemented objects must either be marked in the
mod-union table or the current card table. When we scan the card
tables, we should be able to just evict objects.
Currently, the finishing collection pause still does some
scanning via the worker thread. This might be a problem.
Mark Probst [Fri, 20 Feb 2015 00:02:55 +0000 (16:02 -0800)]
[sgen] Don't re-check reference after marking in concurrent mark.
If the reference was modified, it was done by the mutator, in which case it will
have marked the card if necessary.
Sebastien Pouliot [Mon, 23 Mar 2015 22:08:47 +0000 (18:08 -0400)]
[tests] Tweak DateTime.AddMillisecondsOutOfRangeException* tests to work on ARM [#28311]
Neale Ferguson [Mon, 23 Mar 2015 21:31:01 +0000 (17:31 -0400)]
Fix decimal comparison by using signed char comparison of signs; Fix size of jmp instruction sequence