Ludovic Henry [Tue, 20 Jun 2017 00:35:54 +0000 (20:35 -0400)]
[threads] Store MonoInternalThread in MonoThreadInfo for use when detaching (#5058)
* [threads] Make mono_thread_attach_full static
* [threads] Remove prefix on MonoThreadInfoCallbacks callbacks
* [threads] Rename mono_threads*_init functions to mono_thread_info*_init
* [threads] Remove dead method mono_runtime_is_critical_method
* [threads] Move MonoThreadInfoCallbacks to metadata/threads
* [threads] Store MonoInternalThread in MonoThreadInfo for use when detaching
When the native thread would exit, the TLS keys are destroyed. There is a TLS destructor for MonoThreadInfo, but not for MonoInternalThread. If MonoInternalThread is destroyed before MonoThreadInfo, then MonoThreadInfoCallbacks.thread_detach wouldn't successfully detach the current MonoInternalThread as mono_thread_internal_current would return NULL. This would lead to MonoInternalThread still laying around, while their corresponding MonoThreadInfo has already been destroyed. This fixes this problem, since we now rely on MonoThreadInfo to store the MonoInternalThread for detach.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:29:15 +0000 (01:29 +0200)]
Merge pull request #5070 from alexrp/profiler-version-bump
[profiler] Bump log profiler version to 2.0 due to breaking argument changes.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:24:51 +0000 (01:24 +0200)]
[profiler] Bump log profiler version to 2.0 due to breaking argument changes.
Alex Rønne Petersen [Mon, 19 Jun 2017 23:04:18 +0000 (01:04 +0200)]
Merge pull request #5062 from alexrp/profiler-library
[profiler] Introduce the Mono.Profiler.Log library. (take 2)
Alex Rønne Petersen [Mon, 12 Jun 2017 20:53:56 +0000 (22:53 +0200)]
[profiler] Introduce the Mono.Profiler.Log library. API still unstable.
Alex Rønne Petersen [Mon, 19 Jun 2017 22:46:50 +0000 (00:46 +0200)]
Merge pull request #5063 from alexrp/profiler-format-changes
[profiler] A few small format changes
Alex Rønne Petersen [Sun, 18 Jun 2017 03:53:24 +0000 (05:53 +0200)]
[profiler] Bump format version to 14.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:52:40 +0000 (05:52 +0200)]
[profiler] Update format description comment.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:51:43 +0000 (05:51 +0200)]
[profiler] Encode the address in TYPE_SAMPLE_UBIN as a pointer.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:47:43 +0000 (05:47 +0200)]
[profiler] Add an exception object field to TYPE_CLAUSE.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:45:58 +0000 (05:45 +0200)]
[profiler] Add an image pointer field to assembly load events.
Alex Rønne Petersen [Sun, 18 Jun 2017 03:41:28 +0000 (05:41 +0200)]
[profiler] Simplify the encoding of monitor events.
The way the event was encoded was highly irregular with respect to the rest of
the format.
Zoltan Varga [Mon, 19 Jun 2017 20:52:48 +0000 (16:52 -0400)]
[jit] Fix a warning.
Aleksey Kliger (λgeek) [Mon, 19 Jun 2017 19:41:14 +0000 (15:41 -0400)]
Merge pull request #5059 from lambdageek/tbt
[tests] Rework TypeBuilderTest SetUp/TearDown
Zoltan Varga [Mon, 19 Jun 2017 18:33:44 +0000 (14:33 -0400)]
[arm64] Remove an assert which is hit when mono_arch_get_call_target () is called with a 'b' instead of a 'bl'.
Rodrigo Kumpera [Mon, 19 Jun 2017 18:00:03 +0000 (14:00 -0400)]
Merge pull request #5027 from kumpera/damn-you-strerror
[eglib] Replace strerror with strerror_r as the former is not thread safe.
Zoltan Varga [Mon, 19 Jun 2017 17:49:31 +0000 (13:49 -0400)]
[jit] Treat the mono_threads_attach_coop () icall specially, since it can be called from native-to-managed wrappers on unattached threads, so calling it shouldn't go through the trampoline infrastructure. (#5056)
Aleksey Kliger [Mon, 19 Jun 2017 15:02:10 +0000 (11:02 -0400)]
[tests] Don't run SRE saved assembly in current process
Windows doesn't like deleting the file, and the original bug was a problem in
SRE, not in the AssemblyBuilder.Save ()
Zoltan Varga [Mon, 19 Jun 2017 15:12:33 +0000 (11:12 -0400)]
[interp] Implement runtime invokes by executing the runtime-invoke wrappers using the interpreter. This saves some code and allows better interop with JIT exceptions. (#5057)
Alexander Köplinger [Mon, 19 Jun 2017 13:15:08 +0000 (15:15 +0200)]
[MacSDK] Bump msbuild
Alexander Köplinger [Mon, 19 Jun 2017 12:58:50 +0000 (14:58 +0200)]
[packaging] Add a few more missing files to Windows MSI
Also add a safeguard so we don't accidentally leave files with
OSX paths in the package.
Alexander Köplinger [Mon, 19 Jun 2017 11:58:15 +0000 (13:58 +0200)]
Bump cecil and api-snapshot
Alexander Köplinger [Mon, 19 Jun 2017 10:54:32 +0000 (12:54 +0200)]
[btls] Fix a small memleak in btls-x509-lookup.c (#5065)
Noticed this while looking at the Clang Analysis Report[1] as the
only memory leak in the report and thought why not fix it :)
[1] https://jenkins.mono-project.com/job/test-mono-mainline-staticanalysis/Clang_Analysis_Report/
Alexander Köplinger [Sun, 18 Jun 2017 23:39:07 +0000 (01:39 +0200)]
[packaging] Add a few missing msbuild files to Windows MSI
Alex Rønne Petersen [Sun, 18 Jun 2017 03:40:05 +0000 (05:40 +0200)]
[profiler] Add an exception clause callback that receives the exception object.
Zoltan Varga [Sat, 17 Jun 2017 05:32:34 +0000 (01:32 -0400)]
[sdb] Fix invokes to string ctors. Fixes #57197.
Ludovic Henry [Sat, 17 Jun 2017 01:01:51 +0000 (21:01 -0400)]
[w32handle] Unify WaitHandle.Wait{One,Any,All} icalls (#5051)
Aleksey Kliger [Fri, 16 Jun 2017 23:51:27 +0000 (19:51 -0400)]
[tests] Rework TypeBuilderTest SetUp/TearDown
- Create a unique temporary directory for each test in TypeBuilderTest and delete
it on TearDown.
- Change tests to use tempDir instead of Path.GetTempPath ()
- Change IsSerializable () test to how it was 11 years ago and have it write to a
file with a simple name (but now in a directory where noone else is writing)
- Change FieldsWithSameName (), FieldsWithSameNameAndType () and
MethodsWithSameNameAndSig () to use the default temp assembly (now in a
unique tempDir) instead of using the CreateTempAssembly ()
- Remove CreateTempAssembly function. It is dead code.
Ludovic Henry [Fri, 16 Jun 2017 23:14:13 +0000 (19:14 -0400)]
[threads] Rework MonoThreadInfoCallbacks.thread_{register,detach,unregister} callbacks (#5055)
* [threads] Use MonoThreadInfo.{stack_start_limit,stack_end} in more places
* [threads] Remove dead code
* [threads] Rename MonoThreadInfoCallbacks.thread_{register,detach,unregister} to MonoThreadInfoCallbacks.thread_{attach,detach,detach_with_lock} respectively
Zoltan Varga [Fri, 16 Jun 2017 21:45:41 +0000 (17:45 -0400)]
[runtime] Add a mono_marshal_get_runtime_invoke_full () function with an extra need_direct_wrapper argument to allow generation of runtime-invoke wrappers which directly call a method without using the 'addr' argument. (#5053)
Zoltan Varga [Fri, 16 Jun 2017 20:01:38 +0000 (16:01 -0400)]
[interp] Implement CEE_RETHROW properly by allocating a separate exception variable for each clause, and not overwriting stack traces on a rethrow. (#5040)
Rodrigo Kumpera [Fri, 16 Jun 2017 18:42:20 +0000 (14:42 -0400)]
Merge pull request #5014 from vkargov/vk-kasha
[jit] Always cache the latest image set in case of a cache miss.
monojenkins [Fri, 16 Jun 2017 16:32:26 +0000 (17:32 +0100)]
[msvc] Update csproj files (#5052)
Alexander Köplinger [Fri, 16 Jun 2017 15:55:15 +0000 (17:55 +0200)]
[packaging] Add back IronLangs to Windows MSI
It was just temporarily removed from the Mac package to work around
a build break. This was fixed so we need to add iron* back.
Alexander Köplinger [Fri, 16 Jun 2017 15:12:44 +0000 (17:12 +0200)]
Bump API snapshot
Aleksey Kliger (λgeek) [Fri, 16 Jun 2017 14:38:37 +0000 (10:38 -0400)]
Merge pull request #5010 from Unity-Technologies/boehm-gc-alloc-fixed-sre
Boehm GC Fixes - SRE and Handle Stack
David Karlaš [Fri, 16 Jun 2017 13:04:54 +0000 (15:04 +0200)]
Merge pull request #5049 from mono/fixSdbTests
Fixed Mono.Debugger.Soft unit tests
Marek Habersack [Fri, 16 Jun 2017 09:30:16 +0000 (11:30 +0200)]
Enable translation of WSEACCESS (10013) on mobile (#5050)
This error can occur on mobile devices during network operations
as evidenced in https://bugzilla.xamarin.com/show_bug.cgi?id=56653
and having an actual description of the error printed in this case
makes it easier for the user to discover what's going on.
David Karlaš [Fri, 16 Jun 2017 07:46:36 +0000 (09:46 +0200)]
Fixed Mono.Debugger.Soft unit tests and added new `new String('a', 3);` unit test after `return;`
David Karlaš [Fri, 16 Jun 2017 06:41:17 +0000 (08:41 +0200)]
Merge pull request #5042 from mono/sdbSyncDebuggerLibs
Upstreaming changes from mono/debugger-libs to Mono.Debugger.Soft
David Karlaš [Fri, 16 Jun 2017 06:21:55 +0000 (08:21 +0200)]
Bug 44266 - Unable to change variable values whilst debugging
https://github.com/mono/debugger-libs/commit/
ac17c08938408abc7f5aaf0f862d83bbd2b56d42
David Karlaš [Fri, 16 Jun 2017 06:19:07 +0000 (08:19 +0200)]
caching thread state
https://github.com/mono/debugger-libs/commit/
e3e665525a59823563c23babaf5d0e29a44a644a
David Karlaš [Fri, 16 Jun 2017 06:18:14 +0000 (08:18 +0200)]
Updated SourceLocation with end line and end column
https://github.com/mono/debugger-libs/commit/
479a84ce506e7cf25d6aac4353d59b7fc6526a17
David Karlaš [Fri, 16 Jun 2017 06:17:00 +0000 (08:17 +0200)]
Fix one extra allocation on MethodMirror.FullName
https://github.com/mono/debugger-libs/commit/
cfea89011ef690fe2cd9fefccf6b34ee1d4b1584
David Karlaš [Fri, 16 Jun 2017 06:16:05 +0000 (08:16 +0200)]
Bug 36053 - Broken enum values conversion
plus moved some code to correct location
https://github.com/mono/debugger-libs/commit/
d65261617baddb5b41f665b0eb717cd1f81873b6
David Karlaš [Fri, 16 Jun 2017 06:14:53 +0000 (08:14 +0200)]
Fixed fetching Enum values on older runtimes
https://github.com/mono/debugger-libs/commit/
525c3a685d52eb6ed053ee23c358e54dc091d9cb
David Karlaš [Fri, 16 Jun 2017 06:13:36 +0000 (08:13 +0200)]
[Debugger] Set the encoding of the error/output readers.
Bug 40556 - Output pad no longer displays unicode characters
https://github.com/mono/debugger-libs/commit/
c10de4dd44493156a112fdc0d315db75e0457a2d
Rodrigo Kumpera [Fri, 16 Jun 2017 00:56:05 +0000 (20:56 -0400)]
Merge pull request #5032 from kumpera/profiler-reorder-heap-events
Fix how HEAP_START / HEAP_END works
Alexander Köplinger [Thu, 15 Jun 2017 23:20:03 +0000 (01:20 +0200)]
Add back missing TypeConverter that got removed in last commit
Also bump API snapshot with the latest changes.
Frederik Carlier [Thu, 15 Jun 2017 22:57:02 +0000 (00:57 +0200)]
Use CoreFX sources for System.Printing (#5041)
Frederik Carlier [Thu, 15 Jun 2017 22:55:18 +0000 (00:55 +0200)]
Use CoreFX sources for System.Drawing.Imaging (#5048)
* Use CoreFX sources for System.Drawing.Imaging
* Bump API snapshot
Aleksey Kliger [Thu, 15 Jun 2017 17:50:10 +0000 (13:50 -0400)]
In mono_thread_info_suspend_lock in non-coop, don't assert MonoThreadInfo* is non-NULL
mono_thread_info_suspend_lock () can be called from boehm-gc.c
on_gc_notification before the new thread's start_wrapper calls
mono_thread_info_attach but after pthread_create calls the start wrapper.
As a result, the asserts in mono_thread_info_suspend_lock_with_info can catch
the new thread in an inconsistent state.
monojenkins [Thu, 15 Jun 2017 16:24:15 +0000 (16:24 +0000)]
[msvc] Update csproj files
Frederik Carlier [Thu, 15 Jun 2017 12:35:07 +0000 (14:35 +0200)]
Use Drawing2D classes from CoreFX
Jo Shields [Thu, 15 Jun 2017 12:18:26 +0000 (13:18 +0100)]
Ensure monodoc/Test/ exists, with an empty file
This prevents build failures building monodoc tests, as git cannot check out empty directories, but Test/ must exist for `make check` to work
Aleksey Kliger [Thu, 15 Jun 2017 14:39:57 +0000 (10:39 -0400)]
Initialize new handle chunks on in mono_handle_stack_alloc ()
Frederik Carlier [Thu, 15 Jun 2017 09:29:35 +0000 (11:29 +0200)]
Use Brush classes from CoreFX (#5039)
Bernhard Urban [Thu, 15 Jun 2017 04:45:50 +0000 (06:45 +0200)]
Revert "[win] set HAVE_ONLINE_VES" (#5038)
This reverts commit
501e77f91215d31c56aa63de0c99c91d8b13bfa5.
superseded by https://github.com/mono/mono/pull/5000
Zoltan Varga [Thu, 15 Jun 2017 01:54:01 +0000 (21:54 -0400)]
[arm64] Fix the patching of MONO_PATCH_INFO_METHOD_JUMP so it handles thunks properly. Allocate thunk space for tail calls. Fixes asserts in the System.Numerics xunit tests. (#5026)
Alexander Köplinger [Thu, 15 Jun 2017 00:16:18 +0000 (02:16 +0200)]
[packaging] Add missing .pc files to Windows folder
It got accidentally ignored by the root .gitignore.
Rodrigo Kumpera [Wed, 14 Jun 2017 20:08:14 +0000 (13:08 -0700)]
[profiler] Handle zero object heap dumps in mprof-report and fix the test suite.
Rodrigo Kumpera [Tue, 13 Jun 2017 23:41:13 +0000 (16:41 -0700)]
[profiler] Emit post-gc sync point with the world stopped to avoid racing with allocating threads not stopped on the GC lock.
Rodrigo Kumpera [Tue, 13 Jun 2017 23:39:14 +0000 (16:39 -0700)]
[sgen] Don't report GC moves with the world running and before a GC happened - it makes no sense!.
Rodrigo Kumpera [Tue, 13 Jun 2017 23:34:24 +0000 (16:34 -0700)]
[sgen] Move STW GC events to sgen-stw.c so they are properly reported.
Rodrigo Kumpera [Tue, 13 Jun 2017 23:26:07 +0000 (16:26 -0700)]
[profiler] Move HEAP_START and HEAP_EVENTS to happen outside of heap shots.
They now are produced every time a GC spills heap events such as roots, moves and objects.
Additionally, I changed GC syncpoints to happen in case any GC events are active.
It's a safer choice with little penalty. Figuring out the actual combinations that would require them is non-trivial.
Rodrigo Kumpera [Wed, 14 Jun 2017 18:36:59 +0000 (11:36 -0700)]
[eglib] Linux needs errno.h for ERANGE
Alexander Köplinger [Wed, 14 Jun 2017 18:35:50 +0000 (20:35 +0200)]
[packaging] Fix wrong argument in Windows script
Zoltan Varga [Wed, 14 Jun 2017 18:28:01 +0000 (14:28 -0400)]
[jit] Add a ExceptionTraceIp structure to represents entries in MonoException.trace_ips, making it easier to add more information to it in the future. NFC. (#5025)
Rodrigo Kumpera [Wed, 14 Jun 2017 18:25:27 +0000 (11:25 -0700)]
[eglib] Handle ERANGE in g_strerror
Aleksey Kliger (λgeek) [Wed, 14 Jun 2017 18:17:10 +0000 (14:17 -0400)]
Merge pull request #5020 from lambdageek/fix-strict-loader-image-cache-hit
[loader] If using strict strong names, recheck loaded assm before returning it.
Alexander Köplinger [Wed, 14 Jun 2017 16:29:43 +0000 (18:29 +0200)]
[packaging] Fix prerequisite in Windows script
Frederik Carlier [Wed, 14 Jun 2017 16:20:07 +0000 (18:20 +0200)]
Use CoreFX sources for System.Drawing.Text (#5036)
Frederik Carlier [Wed, 14 Jun 2017 16:17:19 +0000 (18:17 +0200)]
Use CoreFX sources for System.Drawing.Imaging (#5035)
* Use CoreFX sources for System.Drawing.Imaging
* Bump API snapshot
Frederik Carlier [Wed, 14 Jun 2017 16:12:32 +0000 (18:12 +0200)]
Use source from CoreFX for System.Drawing.Drawing2D (#5034)
Alexander Köplinger [Wed, 14 Jun 2017 15:31:04 +0000 (17:31 +0200)]
[packaging] Remove msiexec prerequisite from Windows script
We're using lessmsi now.
Alexander Köplinger [Wed, 14 Jun 2017 14:29:29 +0000 (16:29 +0200)]
[packaging] Exit Windows packaging script on error
Also quote passed in mdk path.
Jonathan Chambers [Wed, 14 Jun 2017 00:32:06 +0000 (20:32 -0400)]
Use GC memory for handle stack under Boehm so it's scanned. Cleanup handle stack on thread unregister.
Bernhard Urban [Fri, 9 Jun 2017 11:10:36 +0000 (13:10 +0200)]
[metadata] s/HAVE_ONLINE_VES/ENABLE_ILGEN/g
Bernhard Urban [Fri, 9 Jun 2017 11:10:36 +0000 (13:10 +0200)]
[configure] move HAVE_ONLINE_VES away from autotools to a header file
Alexander Köplinger [Tue, 13 Jun 2017 23:26:44 +0000 (01:26 +0200)]
Bump corefx
saraedum [Tue, 13 Jun 2017 23:42:22 +0000 (01:42 +0200)]
[Mono.Security] Fix typo in CryptographicException message
Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=52621
Aleksey Kliger [Mon, 12 Jun 2017 22:11:26 +0000 (18:11 -0400)]
[loader] If using strict strong names, recheck loaded assm before returning it.
Suppose we have two versions of an assembly: AsmA 1.0.0.0 and AsmA 2.0.0.0 that
we want to load into the same domain at the same time (for example we want to
load AsmB and AsmC that statically reference the two versions, respectively, or
maybe we used reflection). Suppose version 1 got loaded first (and we found it
on our MONO_PATH in "somepathdir/AsmA.dll"). Now we want to load version 2.
The problem is that if version 1 is on MONO_PATH first, we'll find a filename
that matches ("somepathdir/AsmA.dll") and try to open that image. Then we'll
end up here in mono_assembly_open_predicate() after the mono_image_open_a_lot()
call hits the image cache. So we get back an image and image->assembly is
version 1.
The old behavior would just return any non-NULL image->assembly. The new
behavior is to check the predicate and reject opening the propose file if the
predicate doesn't match. (If we're not using the strict loader, or if there's
no predicate set, return the existing image->assembly as before).
Aleksey Kliger [Tue, 13 Jun 2017 22:30:50 +0000 (18:30 -0400)]
[tests] Strict assembly loading of two version of the same assm should work.
In particular, we should be able to use classes/methods that are unique to each
version. We should not get only one version loaded.
Alexander Köplinger [Tue, 13 Jun 2017 22:45:58 +0000 (00:45 +0200)]
[MacSDK] Remove quotes in nuget wrapper script
None of the other wrapper scripts quote the Mono path and this
broke the Windows packaging script which extracts nuget from the
Mac package.
Bernhard Urban [Wed, 7 Jun 2017 21:07:34 +0000 (23:07 +0200)]
Revert "[exceptions] only do SIGSEGV related actions for SIGSEGVs in mono_handle_native_crash"
This reverts commit
a27bc024f1732edb6b1edddd96d6c90f4a2983f8.
We never want the crash handler to be recursive.
Rodrigo Kumpera [Tue, 13 Jun 2017 20:40:34 +0000 (13:40 -0700)]
[eglib] Replace strerror with strerror_r as the former is not thread safe.
This change would be nicer if the code was moved to the runtime so we could use our PAL.
Bernhard Urban [Tue, 13 Jun 2017 19:56:52 +0000 (21:56 +0200)]
[aot] fix compilation for targets that do not set MONO_ARCH_HAVE_FULL_AOT_TRAMPOLINES (#5017)
Rodrigo Kumpera [Tue, 13 Jun 2017 19:53:46 +0000 (15:53 -0400)]
Merge pull request #5011 from kumpera/quiet-mode
Don't emit profiler events we don't need to.
Rodrigo Kumpera [Tue, 13 Jun 2017 19:53:31 +0000 (12:53 -0700)]
[profiler] Don't emit sync point on restart the world unless gc moves are enabled.
Rodrigo Kumpera [Mon, 12 Jun 2017 23:36:53 +0000 (16:36 -0700)]
[profiler] Add + prefix to file names to append the pid. This makes enabling it with env vars doable.
Marius Ungureanu [Tue, 13 Jun 2017 18:52:42 +0000 (21:52 +0300)]
Bump bockbuild (#5023)
Alexander Köplinger [Tue, 13 Jun 2017 16:07:47 +0000 (18:07 +0200)]
[ci] Get rid of remaining usages of WORKSPACE env var
Most of it was already removed in
ea519ada8c38cae67f56e27ca70d32923ce9f23a
Marek Safar [Tue, 13 Jun 2017 11:44:43 +0000 (13:44 +0200)]
Bump corefx
Alexander Köplinger [Tue, 13 Jun 2017 14:18:21 +0000 (16:18 +0200)]
[packaging] Fix path to wrapper.bat for Windows MSI
Vlad Brezae [Tue, 13 Jun 2017 11:14:47 +0000 (14:14 +0300)]
Merge pull request #5002 from BrzVlad/feature-sgen-modes
[sgen] SGen modes
Vlad Brezae [Tue, 13 Jun 2017 11:07:29 +0000 (14:07 +0300)]
Merge pull request #5021 from BrzVlad/fix-parallel-fixes
[sgen] Fix parallel fixes
Rodrigo Kumpera [Tue, 13 Jun 2017 05:08:28 +0000 (22:08 -0700)]
[profiler] Fix issue found by review.
Alexander Köplinger [Mon, 12 Jun 2017 20:44:55 +0000 (22:44 +0200)]
[packaging] Simplify Windows packaging scripts
We don't need to build in a separate checkout of mono anymore.
Also use .pkg passed in from upstream build.
Alexander Köplinger [Sat, 10 Jun 2017 00:34:30 +0000 (02:34 +0200)]
[packaging] Move Windows MSI scripts into repository
They lived in https://github.com/mono/release before, moving them
into the main repo allows us to version them more easily.
Note: I intend to do more cleanup on those scripts in the future,
this is just the first step.
Vlad Brezae [Thu, 8 Jun 2017 23:22:59 +0000 (02:22 +0300)]
[man] Add entries for sgen modes and new major/minor types