Marek Habersack [Thu, 28 Jul 2016 17:24:25 +0000 (19:24 +0200)]
Fix a cut'n'paste error
Rodrigo Kumpera [Thu, 28 Jul 2016 15:21:01 +0000 (11:21 -0400)]
Merge pull request #3338 from lambdageek/dev/plug-ptrarray-leak
[reflection] Don't leak GPtrArray internal array
Alex Rønne Petersen [Thu, 28 Jul 2016 15:08:26 +0000 (17:08 +0200)]
Merge pull request #3334 from alexrp/arm-cpu-detect-fix
[arm] Also check the 'model name' line for the architecture version.
Aleksey Kliger [Thu, 28 Jul 2016 14:59:14 +0000 (10:59 -0400)]
[corlib] change Mono.SafeGPtrArrayHandle to a struct
Don't GC allocate short-lived internal garbage.
Aleksey Kliger [Thu, 28 Jul 2016 14:53:06 +0000 (10:53 -0400)]
[reflection] Don't leak GPtrArray internal array
`g_ptr_array_free (..., FALSE)` was the wrong thing here. We always
want TRUE in our use cases.
Marek Safar [Thu, 28 Jul 2016 12:09:45 +0000 (14:09 +0200)]
[mcs] Add codegen for compound assigment of complex expressions with concatenated string using await inside params arguments. Fixes #42224
Alex Rønne Petersen [Thu, 28 Jul 2016 02:32:19 +0000 (04:32 +0200)]
[arm] Make HAVE_ARMV{5,6,7} macros override hwcap detection.
This is necessary on weird devices where the hwcap code might fail to detect
the ARM version it's running on (usually caused by differences in /proc/cpuinfo
output).
Vlad Brezae [Wed, 27 Jul 2016 20:04:34 +0000 (23:04 +0300)]
Merge pull request #2961 from schani/fix-sgen-refactoring
SGen fixes and refactorings
Vlad Brezae [Wed, 27 Jul 2016 19:59:27 +0000 (22:59 +0300)]
Merge pull request #3328 from BrzVlad/finalizer-thread-exited2
[sgen] Avoid popping the entire finalizer queues if finalizers are su…
Marek Safar [Wed, 27 Jul 2016 19:50:39 +0000 (21:50 +0200)]
[System.Core] Add MonoTODOAttribute to workaround linker bug with IVT from mscorlib
Alex Rønne Petersen [Wed, 27 Jul 2016 16:17:40 +0000 (18:17 +0200)]
[arm] Also check the 'model name' line for the architecture version.
Some Android devices for some reason have a 'model name' line instead of a
'Processor' line. On such devices, we would fail to detect the architecture
version at all, and end up thinking that it's ARMv4 (even if the runtime
was compiled for ARMv7).
Marek Safar [Wed, 27 Jul 2016 09:40:49 +0000 (11:40 +0200)]
[mcs] Detect constant switch statement fall-through. Fixes #42585
Marek Safar [Wed, 27 Jul 2016 07:40:11 +0000 (09:40 +0200)]
[Facades] Remove duplicate System.IO.Compression
Zoltan Varga [Wed, 27 Jul 2016 00:32:30 +0000 (20:32 -0400)]
[sdb] Explicitly encode in the JIT debug info whenever there is precise information about variable locations instead of checking whenever the method has seq points. Fixes #42750.
Vlad Brezae [Mon, 25 Jul 2016 17:40:59 +0000 (20:40 +0300)]
[sgen] Avoid popping the entire finalizer queues if finalizers are suspended
When we shutdown we set suspend_finalizers flag in metadata so we no longer run any finalizers. After recent changes, we avoid traversing gc hashes for finalizer enqueuing when this flag is set. The counterpart, popping the queues empty (even without running the finalizers) can still take some time, especially since we lock for each entry. Exit early from this loop if we no longer need to run finalizers.
Achieve this by setting a new flag inside sgen, instead of passing the address of suspend_finalizers all the time to the sgen api.
Aleksey Kliger (λgeek) [Tue, 26 Jul 2016 16:47:45 +0000 (12:47 -0400)]
Merge pull request #3199 from lambdageek/dev/proxy-setter
[remoting] Convert mono_store_remote_field_new_checked to managed code
Marek Safar [Tue, 26 Jul 2016 15:44:28 +0000 (17:44 +0200)]
[mcs] Report interpolated strings feature. Fixes #42410
Marek Safar [Tue, 26 Jul 2016 14:26:02 +0000 (16:26 +0200)]
Merge pull request #3330 from madewokherd/compactframework
Remap the Compact Framework PublicKeyToken for assemblies it ships.
Marek Safar [Tue, 26 Jul 2016 14:13:30 +0000 (16:13 +0200)]
[System.Text.Encoding.CodePages] Small improvements
Marek Safar [Tue, 26 Jul 2016 13:08:43 +0000 (15:08 +0200)]
[mono-api-info] Add contract-api option
Marek Safar [Tue, 26 Jul 2016 13:06:46 +0000 (15:06 +0200)]
[mono-api-html] Ignore more non breaking virtual changes when enabled
Marek Safar [Tue, 26 Jul 2016 13:05:18 +0000 (15:05 +0200)]
[bcl] Update some of .net apis
Ludovic Henry [Wed, 13 Jul 2016 11:36:02 +0000 (13:36 +0200)]
[semaphore] Return error for mono_os_sem_timedwait
Ludovic Henry [Wed, 13 Jul 2016 11:15:24 +0000 (13:15 +0200)]
[semaphore] Make mono_os_semaphore_* functions return more meaningful values
By asserting on error, we ensure that we return from these functions only when successfull, or when it makes sense to return an error (for example, timedwait return -1 only on timeout or interrupt).
Ludovic Henry [Wed, 13 Jul 2016 11:10:01 +0000 (13:10 +0200)]
[mutex] Make mono_os_mutex_* functions return more meaningful value
By asserting on error, we ensure that we return from these functions only when successfull, or when it makes sense to return an error (for example, timedwait return -1 only on timeout).
Alexander Köplinger [Tue, 26 Jul 2016 11:30:51 +0000 (13:30 +0200)]
Merge pull request #3327 from rolfbjarne/bug41745
[System*] Disable tests that require working networking stack on watchOS.
Ludovic Henry [Tue, 26 Jul 2016 11:22:34 +0000 (13:22 +0200)]
[threadpool-ms] Fix use-after-unloaded of domain
The following scenario might happen:
- thread A: returns from tpdomain D1, then parks
- thread B: returns from tpdomain D1, D1 is unloading so it's removed with `domain_remove`
- thread A: unparks, calls `domain_get_next` with tpdomain D1
- domain_get_next asserts as it can't find tpdomain D1 in the list of domains
To fix that, we simply set the previous_tpdomain to NULL when unparking.
Rolf Bjarne Kvinge [Fri, 1 Jul 2016 11:12:19 +0000 (13:12 +0200)]
[System*] Add category for tests that use API that require BSD sockets.
We don't have access to BSD sockets on watchOS, so that API
doesn't work.
With this category we'll be able to exclude these tests.
Alexander Köplinger [Tue, 26 Jul 2016 08:56:27 +0000 (10:56 +0200)]
Merge pull request #3331 from lambdageek/dev/test-for-42625
[debugger-agent] Regression test for #42625
Alexander Köplinger [Tue, 26 Jul 2016 08:49:19 +0000 (10:49 +0200)]
Merge pull request #3262 from lindenlab/add_continuations_test
Added Mono.Tasklets test
Alexander Kyte [Tue, 26 Jul 2016 05:02:25 +0000 (01:02 -0400)]
[runtime] Accomplish BITCODE build symbol sharing with only make (#3329)
Dolphin Hawkins [Fri, 8 Jul 2016 23:47:45 +0000 (16:47 -0700)]
Added Mono.Tasklets test
Aleksey Kliger [Mon, 25 Jul 2016 21:25:33 +0000 (17:25 -0400)]
[debugger-agent] Regression test for #42625
Check that we can suspend I/O blocked threadpool workers in coop GC mode.
Alexander Köplinger [Mon, 25 Jul 2016 22:43:03 +0000 (00:43 +0200)]
[ci] Don't cd in run-test-acceptance-tests.sh
The other scripts like TESTCMD rely on paths being based off of the repo root.
Alexander Köplinger [Mon, 25 Jul 2016 21:44:37 +0000 (23:44 +0200)]
[ci] Fix typo in run-jenkins.sh
Vincent Povirk [Mon, 25 Jul 2016 21:17:50 +0000 (16:17 -0500)]
Remap the Compact Framework PublicKeyToken for assemblies it ships.
Alexander Kyte [Mon, 25 Jul 2016 20:32:29 +0000 (16:32 -0400)]
Merge pull request #3324 from alexanderkyte/threads_unhandled_exc
[runtime] Call unhandled exception handler explicitly to fix for bitcode
Alexander Köplinger [Mon, 25 Jul 2016 20:31:05 +0000 (22:31 +0200)]
[acceptance-tests] Remove folders from Roslyn script that we now ship after
8f130a6e17c372
Alexander Köplinger [Mon, 25 Jul 2016 20:05:02 +0000 (22:05 +0200)]
[ci] Move acceptance-tests script from Jenkins into the repo
Yay, less state on Jenkins!
Alexander Köplinger [Mon, 25 Jul 2016 19:02:24 +0000 (21:02 +0200)]
Bump Mono version to 4.7.0
Mark Probst [Sat, 2 Apr 2016 22:08:16 +0000 (15:08 -0700)]
[sgen] Fix and simplify some debugging stuff.
Mark Probst [Sat, 2 Apr 2016 15:40:37 +0000 (08:40 -0700)]
[sgen] Document sgen-copy-object.h
Mark Probst [Wed, 30 Mar 2016 21:05:28 +0000 (14:05 -0700)]
[sgen] Fix major collection time accounting.
This was from when we did a nursery collection as part of the
finishing collection pause. Now that we don't do that anymore, we
underaccount major collection times.
Mark Probst [Wed, 1 Jun 2016 23:37:28 +0000 (16:37 -0700)]
[sgen] Only do fence when concurrent collection is running.
The store/store fence incurs quite a high cost, so we only want it to
run when absolutely necessary. The most efficient way is to
separately compile nursery object operations for when the concurrent
collector is running, so there has to be no dynamic check.
In the future we might want to try batching updates of references to
moved objects so we have to do only one fence per batch.
Mark Probst [Sun, 3 Apr 2016 15:26:42 +0000 (08:26 -0700)]
[sgen] Missing store/store fence.
Mark Probst [Sat, 2 Apr 2016 03:04:37 +0000 (20:04 -0700)]
[sgen] Fix whole heap check.
Mark Probst [Tue, 29 Mar 2016 23:03:10 +0000 (16:03 -0700)]
[sgen] Make unnecessary stack check into assertion.
Mark Probst [Thu, 31 Mar 2016 19:22:43 +0000 (12:22 -0700)]
[sgen] Don't crash in binary protocol flush when forcing.
Mark Probst [Thu, 31 Mar 2016 19:07:05 +0000 (12:07 -0700)]
[sgen] Flush binary protocol buffers when missing remsets.
The missing remset check uses the binary protocol to log missing
remsets it found. Debugging is easier if we don't have to manually
flush the binary protocol.
Mark Probst [Tue, 29 Mar 2016 22:21:23 +0000 (15:21 -0700)]
[sgen] Remove stupid typedef.
Mark Probst [Tue, 29 Mar 2016 22:04:01 +0000 (15:04 -0700)]
[sgen] Get rid of the global gray queue.
Mark Probst [Tue, 29 Mar 2016 20:58:37 +0000 (13:58 -0700)]
[sgen] Pass GC thread gray queue into jobs.
Mark Probst [Tue, 29 Mar 2016 20:02:11 +0000 (13:02 -0700)]
[sgen] Don't expose the worker's gray queue.
Mark Probst [Thu, 31 Mar 2016 04:04:44 +0000 (21:04 -0700)]
[sgen] Give remset consistency check a proper name, and do it more often.
Mark Probst [Thu, 31 Mar 2016 03:55:48 +0000 (20:55 -0700)]
[sgen] Don't be too fussy about missing remsets to pinned objects.
If a thread is interrupted after a reference write but before the corresponding
write barrier, the remset will be missing, but the object will be pinned.
Alexander Kyte [Sat, 23 Jul 2016 06:41:11 +0000 (02:41 -0400)]
[runtime] Call unhandled exception handler explicitly to fix for bitcode
Alexander Kyte [Mon, 25 Jul 2016 16:02:07 +0000 (12:02 -0400)]
Merge pull request #3325 from alexanderkyte/fix_bitcode_mini
[mobile_static] Pass correct MONO_LLVMONLY for bitcode script
Alexander Köplinger [Mon, 25 Jul 2016 12:05:16 +0000 (14:05 +0200)]
[bcl] Implement System.Text.Encoding.CodePages.CodepagesEncodingProvider in the facade
Alexander Köplinger [Mon, 25 Jul 2016 10:32:13 +0000 (12:32 +0200)]
Fix Windows build broken in
2c061c18852
Zoltan Varga [Sun, 24 Jul 2016 21:19:27 +0000 (17:19 -0400)]
[runtime] Implement the GC domain finalization event using conditional variables instead of an io-layer event. (#3316)
Alexander Kyte [Sun, 24 Jul 2016 06:46:23 +0000 (02:46 -0400)]
[mobile_static] Pass correct MONO_LLVMONLY for bitcode
Zoltan Varga [Fri, 22 Jul 2016 22:25:59 +0000 (18:25 -0400)]
[runtime] Abort instead of stopping background threads on shutdown. Hopefully fixes #41644. (#3323)
Martin Baulig [Wed, 20 Jul 2016 21:06:03 +0000 (17:06 -0400)]
[System]: Fix SystemCertificateValidator.EvaluateSystem() on Android. Fixes #41290.
After the latest code changes, we may land here with `errors == SslPolicyErrors.None`,
so we need to make sure that we actually set it to `RemoteCertificateChainErrors` if
the system validator returns an error.
(cherry picked from commit
b4304354b149334e5ddd11c4c143aac64f46fe03)
Alexander Köplinger [Fri, 22 Jul 2016 12:20:45 +0000 (14:20 +0200)]
Merge pull request #3318 from akoeplinger/cleaner-mini-nunit
[mini] Explicitly turn nunit output on or off based on variable
Alexander Köplinger [Thu, 21 Jul 2016 23:46:28 +0000 (01:46 +0200)]
Merge pull request #3319 from akoeplinger/fix-mono.csharp
[Mono.CSharp] Fix test .sources to include ASTVisitorTest.cs
João Matos [Thu, 21 Jul 2016 23:44:38 +0000 (00:44 +0100)]
Merge pull request #3322 from grendello/offsets-tool-xa
Modify the offsets dumper to work with Xamarin.Android
Vlad Brezae [Thu, 21 Jul 2016 23:15:28 +0000 (02:15 +0300)]
[sgen] Fix build
Marek Habersack [Thu, 21 Jul 2016 22:35:17 +0000 (00:35 +0200)]
Modify the offsets dumper to work with Xamarin.Android
This is a handful of quick and dirty changes to make the utility
work with Xamarin.Android which uses a different directory layout
than monodroid.
Rodrigo Kumpera [Thu, 21 Jul 2016 22:35:06 +0000 (15:35 -0700)]
Merge pull request #3289 from BrzVlad/fix-critical-finalizer
[sgen] Fix critical/normal finalization order at domain unload
Rodrigo Kumpera [Thu, 21 Jul 2016 22:34:41 +0000 (15:34 -0700)]
Merge pull request #3321 from BrzVlad/fix-block-state-membar
[sgen] Add missing memory barrier
Rodrigo Kumpera [Thu, 21 Jul 2016 22:32:18 +0000 (15:32 -0700)]
Merge pull request #3290 from BrzVlad/fix-finalizer-tests
[tests] Fix finalizer tests
Alexander Köplinger [Thu, 21 Jul 2016 20:30:47 +0000 (22:30 +0200)]
[mini] Explicitly turn nunit output on or off based on variable
Alternative implementation to
8f092147bb604485c78c80b9781536ec995d51fe.
In CI we explicitly pass EMIT_NUNIT=1 and check-seq-points to generate the nunit xml and run the tests,
locally those are omitted. This avoids needing to sniff for Jenkins/Wrench variables.
Same for
a9eec21d62ecd1da3929cdbfea872bfc4d22134b, but we already pass V=1 in Jenkins.
Vlad Brezae [Thu, 21 Jul 2016 21:43:40 +0000 (00:43 +0300)]
[sgen] Add missing memory barrier
When doing the first phase of sweeping we tag the block pointer within the block list with a CAS, after which we own the block and we are free to update the state and do sweep computations on the block. When we finish this phase we directly write the untagged block pointer back in the list, making the block available to inspect by other threads. We need a write barrier before writting the untagged pointer back because, when another thread might acquire the block, it might encounter an invalid block state.
Zoltan Varga [Thu, 21 Jul 2016 22:12:15 +0000 (18:12 -0400)]
[runtime] Decrease the verbosity of the runtime test runner when not running under CI.
Alexander Köplinger [Thu, 21 Jul 2016 20:57:21 +0000 (22:57 +0200)]
[Mono.CSharp] Fix test .sources to include ASTVisitorTest.cs
I noticed this while looking at why Mono.CSharp is registered as "crashed" in the the new
fullaot PR job on Jenkins. It turns out all tests were excluded in mobile_static which means
no NUnit xml was produced and that is exactly what the script then interprets as a crash.
I saw that ASTVisitorTest.cs was not included in the net_4_x tests as well, likely inadvertently.
It got bitrotten over the years so I had to fix it up a bit, now it compiles/runs on mobile_static as well.
Zoltan Varga [Thu, 21 Jul 2016 19:44:01 +0000 (15:44 -0400)]
[ji] Run the mini tests without the emitnunit.pl script when not running under CI.
Alexander Köplinger [Thu, 21 Jul 2016 17:49:26 +0000 (19:49 +0200)]
[versions.mk] Make path to SUBMODULES.json based on srcdir (#3314)
Since acceptance-tests/Makefile (and llvm/Makefile) include scripts/submodules/versions.mk which evals versions.py which looks
for a SUBMODULES.json file in the current working directory we got confusing error messages if the build directory is not the src dir:
```
Traceback (most recent call last):
File "../../mono/scripts/submodules/versions.py", line 22, in <module>
submodules = json.load(open(CONFIG_FILE))
IOError: [Errno 2] No such file or directory: 'SUBMODULES.json'
```
Instead we now pass the path to SUBMODULES.json as a variable to versions.py and set it based on $(top_srcdir) so it works
even for out-of-tree builds.
Alexander Kyte [Thu, 21 Jul 2016 17:49:15 +0000 (13:49 -0400)]
[runtime] Make AOT'ed TestDriver.dll dependency for builds (#3303)
Rodrigo Kumpera [Thu, 21 Jul 2016 17:48:34 +0000 (10:48 -0700)]
[mini] Fail methods that try to throw scalars. Fix hard crash from #42417. (#3312)
Alexander Kyte [Thu, 21 Jul 2016 17:47:19 +0000 (13:47 -0400)]
[mobile_static] Use clang++ for the linker (#3308)
In order for our exception handling to work on linux, we need the
unwind-dw2-fde-dip implementation in libgcc to work with our
.o file. This requires that `--eh-frame-hdr` be passed by the linker.
By using clang++ as the linker, we will get this and other flags
necessary for correct interop with c++ libraries.
Marcos Henrich [Thu, 21 Jul 2016 11:43:26 +0000 (12:43 +0100)]
Merge pull request #3305 from esdrubal/response_stream_close
[System] Fix RequestCanceled ex on ResponseStream.Close
Rodrigo Kumpera [Thu, 21 Jul 2016 00:58:12 +0000 (17:58 -0700)]
Merge pull request #3306 from kumpera/fix_wait
[wapi] Fix timed wait code to not overflow. Fixes #42688
Alexander Kyte [Wed, 20 Jul 2016 20:08:09 +0000 (16:08 -0400)]
[runtime] Only add Mono.Dynamic.Interpreter to mobile_static (#3302)
Alexander Kyte [Wed, 20 Jul 2016 19:18:38 +0000 (15:18 -0400)]
Merge pull request #3307 from alexanderkyte/aot_path
[mobile_static] Fix temp path for mcs/class AOT
Alexander Kyte [Tue, 12 Jul 2016 17:26:06 +0000 (13:26 -0400)]
[mobile_static] Fix temp path for mcs/class AOT
Rodrigo Kumpera [Wed, 20 Jul 2016 17:41:15 +0000 (10:41 -0700)]
[wapi] Fix timed wait code to not overflow. Fixes #42688
Wait math must always subtract ticks and get deltas. That way we avoid overflows.
Marcos Henrich [Wed, 20 Jul 2016 16:11:30 +0000 (17:11 +0100)]
[System] Fix RequestCanceled ex on ResponseStream.Close
Fixes issues where ResponseStream.Close would throw an exception when
peer had already closed the connection and ResponseStream.Close would
still try to communicating to peer that it was closing.
The issue was brought to our attention by failures on:
- MonoTests.System.Net.WebRequestTest.TestReceiveCancelation
- MonoTests.System.Net.HttpWebRequestTest.TestLargeDataReading
Zoltan Varga [Wed, 20 Jul 2016 16:17:38 +0000 (12:17 -0400)]
[amd64] Rewrite the handler block trampoline to use normal calls instead of jumps so the functions called from the calls execute with an aligned stack.
Zoltan Varga [Wed, 20 Jul 2016 16:15:28 +0000 (12:15 -0400)]
[tests] Disable some more tests in the mobile_static profile.
Zoltan Varga [Wed, 20 Jul 2016 15:26:00 +0000 (11:26 -0400)]
[runtime] Add a missing mono_error_init () in a DISABLE_APPDOMAINS codepath.
Zoltan Varga [Wed, 20 Jul 2016 12:00:11 +0000 (08:00 -0400)]
[amd64] Fix stack alignment in the handler block trampoline.
Vlad Brezae [Thu, 14 Jul 2016 00:55:51 +0000 (03:55 +0300)]
[tests] Remove double inclusion of source file
Vlad Brezae [Thu, 14 Jul 2016 00:41:01 +0000 (03:41 +0300)]
[tests] Fix flakiness on some tests that assume object finalization
A common pattern that we use across the test suite is to create objects on a new thread, join the thread, collect then expect certain objects to be dead/finalized since we assumed that thread to be no longer a source of pinning. This is not always the case since, after joining, the thread might still be alive and running unmanaged code related to the thread shutdown, which can reuse the stack that previously contained the managed references.
The workaround is to still allocate objects far down the stack, even if we are on a separate thread.
At the moment the helper can be used in tests which run under the TestDriver (since it's included in TestDriver.dll) and can also be included as a helper source for test bcl classes that need it.
Rodrigo Kumpera [Wed, 20 Jul 2016 07:06:56 +0000 (00:06 -0700)]
Merge pull request #3304 from kumpera/unlimited-abort
Change suspend abort timeout to infinite and fix timeout env
Marek Safar [Wed, 20 Jul 2016 05:18:55 +0000 (22:18 -0700)]
Revert "[Facades] Add System.Runtime.InteropServices.PInvoke"
This reverts commit
6d13f594fa39a4d7dedeab278192d48c5b563fa9.
Marek Safar [Wed, 20 Jul 2016 05:13:42 +0000 (22:13 -0700)]
[Facades] Add System.Runtime.InteropServices.PInvoke
Rodrigo Kumpera [Wed, 20 Jul 2016 01:06:53 +0000 (18:06 -0700)]
[mono-threads] Change suspend abort timeout to infinite and fix timeout env var parsing.
Rodrigo Kumpera [Wed, 20 Jul 2016 01:05:37 +0000 (18:05 -0700)]
[utils] Introduce MONO_INFINITE_WAIT instead of checking for -1 all over the place.
Alexander Köplinger [Wed, 20 Jul 2016 01:03:13 +0000 (03:03 +0200)]
Merge pull request #3300 from esdrubal/mono-sym-fixes
[mono-symbolicate] Fixes symbolicate.expected
Zoltan Varga [Tue, 19 Jul 2016 23:09:46 +0000 (19:09 -0400)]
[tests] Disable tests which are expected to fail in the mobile_static profile.