mono.git
7 years agoMerge pull request #4381 from BrzVlad/feature-generational-hash
Vlad Brezae [Tue, 28 Feb 2017 12:30:18 +0000 (14:30 +0200)]
Merge pull request #4381 from BrzVlad/feature-generational-hash

[sgen] Generational MonoGHashTable

7 years ago[System] Add regression test for Bugzilla 10899 (#4401)
Alexander Köplinger [Mon, 27 Feb 2017 22:43:56 +0000 (23:43 +0100)]
[System] Add regression test for Bugzilla 10899 (#4401)

Even though I couldn't repro the bug I thought it'd still be a
good idea to at least add some basic coverage with non-Latin chars.

7 years agoMerge pull request #4438 from xmcclure/monodis-fix
Andi McClure [Mon, 27 Feb 2017 21:00:48 +0000 (16:00 -0500)]
Merge pull request #4438 from xmcclure/monodis-fix

Fix monodis

7 years agoFix monodis
Andi McClure [Mon, 27 Feb 2017 20:54:05 +0000 (15:54 -0500)]
Fix monodis

monodis was not calling the mono_tls_init_runtime_keys function, which
was causing it to crash the first time it attempted to access the
current domain (ie almost immediately).

7 years agoMerge pull request #4433 from kumpera/android-fixes
Rodrigo Kumpera [Mon, 27 Feb 2017 20:46:03 +0000 (15:46 -0500)]
Merge pull request #4433 from kumpera/android-fixes

Fix a few issues on Android

7 years ago[jit] Rewrite some logging to work on embedded systems.
Rodrigo Kumpera [Sat, 25 Feb 2017 00:14:16 +0000 (16:14 -0800)]
[jit] Rewrite some logging to work on embedded systems.

7 years ago[jit] Fix LMF codegen on android arm64.
Rodrigo Kumpera [Sat, 25 Feb 2017 00:09:56 +0000 (16:09 -0800)]
[jit] Fix LMF codegen on android arm64.

Android doesn't have fast tls either, so we must use the jit_tls variant.

7 years ago[alias-analysis] Ignore addresses taken of volatile variables.
Rodrigo Kumpera [Fri, 24 Feb 2017 23:52:03 +0000 (15:52 -0800)]
[alias-analysis] Ignore addresses taken of volatile variables.

Volatile variables should be ignored by AA as, by design, we can't
properly tell whether removing indirection is safe or not.

This shows up when handling the LMF var in some cases.

7 years ago[runtime] Mark mono_error_init external only. (#4437)
Aleksey Kliger (λgeek) [Mon, 27 Feb 2017 20:08:48 +0000 (15:08 -0500)]
[runtime] Mark mono_error_init external only. (#4437)

Runtime should use the error_init() from mono/utils/mono-error-internals.h

7 years agoMerge pull request #4434 from BrzVlad/fix-unload-hang
Vlad Brezae [Mon, 27 Feb 2017 20:05:27 +0000 (22:05 +0200)]
Merge pull request #4434 from BrzVlad/fix-unload-hang

[threads] Don't ignore abort requests in abort protected blocks

7 years agoUpdate ms-test-suite
Marek Safar [Mon, 27 Feb 2017 13:42:10 +0000 (14:42 +0100)]
Update ms-test-suite

7 years ago[System.Numerics] Use corefx implementation
Marek Safar [Fri, 24 Feb 2017 14:13:26 +0000 (15:13 +0100)]
[System.Numerics] Use corefx implementation

7 years agoMerge pull request #4431 from vkargov/vk-leaking-points
Rodrigo Kumpera [Mon, 27 Feb 2017 16:34:02 +0000 (11:34 -0500)]
Merge pull request #4431 from vkargov/vk-leaking-points

[runtime] Fix memory leak in mono_save_seq_point_info().

7 years ago[threads] Don't ignore abort requests in abort protected blocks
Vlad Brezae [Sat, 25 Feb 2017 00:59:14 +0000 (02:59 +0200)]
[threads] Don't ignore abort requests in abort protected blocks

Either interrupt or set the interrupt_deferred flag, so the thread can handle the request later in the future. Otherwise we are left with a thread that has an AbortRequested set on its state that it is never processed and future abort requests are ignored due to the presence of this flag.

7 years ago[runtime] Fix memory leak in mono_save_seq_point_info().
Vladimir Kargov [Fri, 24 Feb 2017 21:43:44 +0000 (13:43 -0800)]
[runtime] Fix memory leak in mono_save_seq_point_info().

7 years ago[runtime] Speed up mono_icall_start()/mono_icall_end() a bit by using inline versions...
Zoltan Varga [Fri, 24 Feb 2017 17:16:15 +0000 (12:16 -0500)]
[runtime] Speed up mono_icall_start()/mono_icall_end() a bit by using inline versions of the MonoError functions. (#4424)

7 years ago[runtime] Call error_init instead of mono_error_init (#4425)
Aleksey Kliger (λgeek) [Fri, 24 Feb 2017 17:15:33 +0000 (12:15 -0500)]
[runtime] Call error_init instead of mono_error_init (#4425)

Use the error_init macro instead of the mono_error_init function to avoid the
function call overhead.

7 years ago[runtime] Add fastpaths to the stelem wrappers for the case when the array element...
Zoltan Varga [Fri, 24 Feb 2017 16:24:31 +0000 (11:24 -0500)]
[runtime] Add fastpaths to the stelem wrappers for the case when the array element type and the value type are the same. (#4427)

7 years ago[Mono.Data.Sqlite] Add test for b78f4f6e5f21edb07d58e012b0339253c593894a
Marek Safar [Fri, 24 Feb 2017 15:31:54 +0000 (16:31 +0100)]
[Mono.Data.Sqlite] Add test for b78f4f6e5f21edb07d58e012b0339253c593894a

7 years ago[Mono.Data.Sqlite] Change default datetime convert format to excluded datetime kind...
Marek Safar [Fri, 24 Feb 2017 15:18:15 +0000 (16:18 +0100)]
[Mono.Data.Sqlite] Change default datetime convert format to excluded datetime kind. Fixes #46929

7 years agoRevert "[Facades] Build netstandard.dll with net_4_x profile by default"
Alexander Köplinger [Fri, 24 Feb 2017 13:27:27 +0000 (14:27 +0100)]
Revert "[Facades] Build netstandard.dll with net_4_x profile by default"

It broke the build.

7 years ago[threads] Fix async call in coop (#4423)
Ludovic Henry [Fri, 24 Feb 2017 13:19:10 +0000 (08:19 -0500)]
[threads] Fix async call in coop (#4423)

We would observe crashes like the following:

```
 * Assertion at mono-threads.c:1009, condition `mono_thread_info_run_state (info) == STATE_ASYNC_SUSPENDED' not met

 Debug info from gdb:

 [New LWP 26793]
 [New LWP 26792]
 [Thread debugging using libthread_db enabled]
 Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
 0x00002b0ff3481ee9 in waitpid () from /lib/x86_64-linux-gnu/libpthread.so.0
   Id   Target Id         Frame
   3    Thread 0x2b0ff3e6c700 (LWP 26792) "SGen worker" 0x00002b0ff347e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
   2    Thread 0x2b0ff633e700 (LWP 26793) "Finalizer" 0x00002b0ff347e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
 * 1    Thread 0x2b0ff2b67c40 (LWP 26780) "mono" 0x00002b0ff3481ee9 in waitpid () from /lib/x86_64-linux-gnu/libpthread.so.0

 Thread 3 (Thread 0x2b0ff3e6c700 (LWP 26792)):
 #0  0x00002b0ff347e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
 #1  0x0000000000661bdf in mono_os_cond_wait (mutex=0x9dee40 <lock>, cond=0x9dee00 <work_cond>) at ../../mono/utils/mono-os-mutex.h:146
 #2  thread_func (thread_data=0x2b0ff2bcb008) at sgen-thread-pool.c:129
 #3  0x00002b0ff347a182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
 #4  0x00002b0ff39a130d in clone () from /lib/x86_64-linux-gnu/libc.so.6

 Thread 2 (Thread 0x2b0ff633e700 (LWP 26793)):
 #0  0x00002b0ff347e414 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
 #1  0x00000000005caff3 in mono_os_cond_wait (mutex=<optimized out>, cond=<optimized out>) at ../../mono/utils/mono-os-mutex.h:146
 #2  mono_coop_cond_wait (mutex=<optimized out>, cond=<optimized out>) at ../../mono/utils/mono-coop-mutex.h:87
 #3  mono_threadpool_io_remove_socket (fd=134239440) at threadpool-io.c:628
 #4  0x00000000005ae4f4 in ves_icall_System_Net_Sockets_Socket_Close_internal (sock=42, werror=<optimized out>) at w32socket.c:708
 #5  0x0000000041e8101f in ?? ()
 #6  0x00002b1014abe070 in ?? ()
 #7  0x0000000001615860 in ?? ()
 #8  0x0000000001615860 in ?? ()
 #9  0x0000000000000000 in ?? ()

 Thread 1 (Thread 0x2b0ff2b67c40 (LWP 26780)):
 #0  0x00002b0ff3481ee9 in waitpid () from /lib/x86_64-linux-gnu/libpthread.so.0
 #1  0x00000000004ac5e6 in mono_handle_native_crash (signal=<optimized out>, ctx=<optimized out>, info=<optimized out>) at mini-exceptions.c:2557
 #2  <signal handler called>
 #3  0x00002b0ff38dcf79 in raise () from /lib/x86_64-linux-gnu/libc.so.6
 #4  0x00002b0ff38e0388 in abort () from /lib/x86_64-linux-gnu/libc.so.6
 #5  0x000000000066b459 in mono_log_write_logfile (log_domain=<optimized out>, level=<optimized out>, hdr=<optimized out>, message=<optimized out>) at mono-log-common.c:137
 #6  0x00000000006805e0 in monoeg_g_logv (log_domain=log_domain@entry=0x0, log_level=log_level@entry=G_LOG_LEVEL_ERROR, format=<optimized out>, args=args@entry=0x7ffc7324ea78) at goutput.c:115
 #7  0x0000000000680736 in monoeg_assertion_message (format=<optimized out>) at goutput.c:135
 #8  0x00000000006759b8 in mono_thread_info_setup_async_call (info=info@entry=0x2b0ff80008c0, target_func=target_func@entry=0x5bac20 <suspend_for_shutdown_async_call>, user_data=user_data@entry=0x0) at mono-threads.c:1009
 #9  0x00000000005bad50 in suspend_for_shutdown_critical (info=info@entry=0x2b0ff80008c0, unused=unused@entry=0x0) at threads.c:5019
 #10 0x00000000006763ae in mono_thread_info_safe_suspend_and_run (id=47347555100416, interrupt_kernel=interrupt_kernel@entry=0, callback=callback@entry=0x5bad40 <suspend_for_shutdown_critical>, user_data=user_data@entry=0x0) at mono-threads.c:979
 #11 0x00000000005c2e71 in mono_thread_internal_suspend_for_shutdown (thread=<optimized out>) at threads.c:5028
 #12 0x00000000005e9100 in mono_gc_cleanup () at gc.c:1015
 #13 0x00000000005e108e in mono_runtime_cleanup (domain=domain@entry=0x1615860) at appdomain.c:423
 #14 0x00000000004228cb in mini_cleanup (domain=0x1615860) at mini-runtime.c:4111
 #15 0x000000000047b99f in mono_main (argc=10, argv=<optimized out>) at driver.c:2167
 #16 0x00000000004200db in mono_main_with_options (argv=0x7ffc7324ef68, argc=10) at main.c:45
 #17 main (argc=10, argv=0x7ffc7324ef68) at main.c:338

 =================================================================
 Got a SIGABRT while executing native code. This usually indicates
 a fatal error in the mono runtime or one of the native libraries
 used by your application.
 =================================================================
```

7 years ago[hybrid] Fix more tests run
Ludovic Henry [Thu, 23 Feb 2017 23:23:00 +0000 (18:23 -0500)]
[hybrid] Fix more tests run

7 years ago[hybrid] Enable COM, Remoting and AppDomains runtime support
Ludovic Henry [Thu, 23 Feb 2017 23:22:22 +0000 (18:22 -0500)]
[hybrid] Enable COM, Remoting and AppDomains runtime support

7 years ago[Facades] Build netstandard.dll with net_4_x profile by default
Alexander Köplinger [Fri, 24 Feb 2017 11:53:10 +0000 (12:53 +0100)]
[Facades] Build netstandard.dll with net_4_x profile by default

7 years ago[mcs] Update 995e5620fb79f62c22f94c87cc6d5b717b84eff2 to do actual comparison
Marek Safar [Fri, 24 Feb 2017 08:59:39 +0000 (09:59 +0100)]
[mcs] Update 995e5620fb79f62c22f94c87cc6d5b717b84eff2 to do actual comparison

7 years ago[msvc] Update csproj files
monojenkins [Thu, 23 Feb 2017 16:57:08 +0000 (16:57 +0000)]
[msvc] Update csproj files

7 years ago[jit] Remove an #ifdef ENABLE_LLVM from mini-os.h, the cross-compile genmdesc.pl...
Zoltan Varga [Thu, 23 Feb 2017 22:26:46 +0000 (17:26 -0500)]
[jit] Remove an #ifdef ENABLE_LLVM from mini-os.h, the cross-compile genmdesc.pl can't handle it.

7 years agoMerge pull request #4419 from BrzVlad/fix-oom-nre
Rodrigo Kumpera [Thu, 23 Feb 2017 21:14:23 +0000 (13:14 -0800)]
Merge pull request #4419 from BrzVlad/fix-oom-nre

[sgen] Fix oom nre

7 years ago[linker] Update the mscorlib descriptor with missing generic interfaces.
Zoltan Varga [Thu, 23 Feb 2017 20:37:15 +0000 (15:37 -0500)]
[linker] Update the mscorlib descriptor with missing generic interfaces.

7 years agoUpdate Bockbuild
Alexis Christoforides [Thu, 23 Feb 2017 20:13:05 +0000 (15:13 -0500)]
Update Bockbuild

7 years agoForce LF line endings for .sources and Makefiles too
Alexander Köplinger [Thu, 23 Feb 2017 15:11:40 +0000 (16:11 +0100)]
Force LF line endings for .sources and Makefiles too

This should fix the Windows build.

7 years ago[mcs] Use correct types comparer for comparing hidden imported interface members...
Marek Safar [Thu, 23 Feb 2017 15:09:13 +0000 (16:09 +0100)]
[mcs] Use correct types comparer for comparing hidden imported interface members. Fixes #51522

7 years agoFix Windows build due to line ending changes in sed
Alexander Köplinger [Thu, 23 Feb 2017 13:21:55 +0000 (14:21 +0100)]
Fix Windows build due to line ending changes in sed

The recent sed update in cygwin [1] changed the way sed handles
carriage returns. This meant that every .in file we processed
still contained CR, which doesn't work for .sh files.

Force LF line endings for those files (and also other shell scripts).

[1] https://cygwin.com/ml/cygwin-announce/2017-02/msg00036.html

7 years ago[mcs] Emit leave for redirected jumps out of rewritten finally exit scope. Fixes...
Marek Safar [Thu, 23 Feb 2017 11:29:13 +0000 (12:29 +0100)]
[mcs] Emit leave for redirected jumps out of rewritten finally exit scope. Fixes #52599

7 years ago[System] Tweak socket test
Marek Safar [Thu, 23 Feb 2017 10:33:05 +0000 (11:33 +0100)]
[System] Tweak socket test

7 years agoFixes windows po/ build
Marek Safar [Wed, 22 Feb 2017 16:13:23 +0000 (17:13 +0100)]
Fixes windows po/ build

7 years ago[System] Update flaky test
Marek Safar [Thu, 23 Feb 2017 10:07:12 +0000 (11:07 +0100)]
[System] Update flaky test

7 years ago[System.Data] referencesource -> corefx: ProviderBase & SqlClient stuff (#4383)
Egor Bogatov [Thu, 23 Feb 2017 00:02:54 +0000 (03:02 +0300)]
[System.Data] referencesource -> corefx: ProviderBase & SqlClient stuff (#4383)

* [System.Data] referencesource -> corefx

* [System.Data] referencesource -> corefx

* [System.Data] corefx migration, fix ActivityCorrelator

* [System.Data] use DbProviderFactory, DbConnectionPoolGroupProviderInfo, OperationAbortedException from corefx

7 years ago[sgen] Throw OOM also from the managed allocator
Vlad Brezae [Wed, 22 Feb 2017 23:29:27 +0000 (01:29 +0200)]
[sgen] Throw OOM also from the managed allocator

Allocation functions from object.c correctly throw OOM when sgen allocation returns NULL. When allocating with the managed allocator we invoke sgen directly (as a fallback) and we didn't handle the NULL return case.

Fixes #52437

7 years ago[sgen] Rename confusing variable
Vlad Brezae [Wed, 22 Feb 2017 22:56:29 +0000 (00:56 +0200)]
[sgen] Rename confusing variable

7 years agoMerge pull request #4403 from BrzVlad/fix-workers-par-context
Vlad Brezae [Wed, 22 Feb 2017 22:35:22 +0000 (00:35 +0200)]
Merge pull request #4403 from BrzVlad/fix-workers-par-context

[sgen] Lock around worker start, not only finishing

7 years ago[arm] Fix the passing of structs with 8 byte alignment with llvm on armeabi, they...
Zoltan Varga [Wed, 22 Feb 2017 20:06:08 +0000 (15:06 -0500)]
[arm] Fix the passing of structs with 8 byte alignment with llvm on armeabi, they need to be passed as an int64 array to let llvm know that it might need to insert a dummy argument so they are passed in a even register pair. Fixes #52548.

7 years ago[threads] Ensure we have balanced appdomain push/pop when attaching the thread on...
Ludovic Henry [Wed, 22 Feb 2017 19:55:59 +0000 (14:55 -0500)]
[threads] Ensure we have balanced appdomain push/pop when attaching the thread on shutdown (#4416)

7 years agoBump corefx
Marek Safar [Wed, 22 Feb 2017 10:02:09 +0000 (11:02 +0100)]
Bump corefx

7 years ago[runtime] Use TARGET_WIN32 instead of HOST_WIN32 when setting calling conventions...
Zoltan Varga [Wed, 22 Feb 2017 17:49:10 +0000 (12:49 -0500)]
[runtime] Use TARGET_WIN32 instead of HOST_WIN32 when setting calling conventions, so cross compilers running on windows do the right thing. (#4412)

7 years ago[runtime] Fix mono_bitset_count () so it works on win64 as well. (#4413)
Zoltan Varga [Wed, 22 Feb 2017 17:47:47 +0000 (12:47 -0500)]
[runtime] Fix mono_bitset_count () so it works on win64 as well. (#4413)

7 years agoBump ikvm
Marek Safar [Wed, 22 Feb 2017 10:19:49 +0000 (11:19 +0100)]
Bump ikvm

7 years ago[System] Test fix for watch
Marek Safar [Wed, 22 Feb 2017 09:35:08 +0000 (10:35 +0100)]
[System] Test fix for watch

7 years ago[Process] Fix NonChildProcessWaitForExit Exited callback (#4409)
Ludovic Henry [Tue, 21 Feb 2017 23:42:42 +0000 (18:42 -0500)]
[Process] Fix NonChildProcessWaitForExit Exited callback (#4409)

7 years agoUpdate bockbuild
Alexis Christoforides [Tue, 21 Feb 2017 23:21:35 +0000 (18:21 -0500)]
Update bockbuild

7 years agoMerge pull request #4380 from alexanderkyte/conflicting_attrs
Rodrigo Kumpera [Tue, 21 Feb 2017 21:45:51 +0000 (16:45 -0500)]
Merge pull request #4380 from alexanderkyte/conflicting_attrs

[runtime] Fail gracefully when method has conflicting attributes

7 years ago[jit] Remove some dead code.
Zoltan Varga [Tue, 21 Feb 2017 21:04:52 +0000 (16:04 -0500)]
[jit] Remove some dead code.

7 years ago[threadpool] Do not swallow exception in RegisterWaitForSingleObject callback (#4408)
Ludovic Henry [Tue, 21 Feb 2017 20:34:03 +0000 (15:34 -0500)]
[threadpool] Do not swallow exception in RegisterWaitForSingleObject callback (#4408)

7 years agoUpdate bockbuild
Alexis Christoforides [Tue, 21 Feb 2017 19:40:14 +0000 (14:40 -0500)]
Update bockbuild

7 years agoRevert "[configure] Remove mcs endianess check (it shouldn't be needed)"
Marek Safar [Tue, 21 Feb 2017 18:49:47 +0000 (19:49 +0100)]
Revert "[configure] Remove mcs endianess check (it shouldn't be needed)"

This reverts commit 9aa9822808a622648d3235bc931c6ca675cf7bf0.

7 years agoMerge pull request #4169 from evincarofautumn/fix-xmm-scanning-mac-x86
Alexis Christoforides [Tue, 21 Feb 2017 18:41:23 +0000 (13:41 -0500)]
Merge pull request #4169 from evincarofautumn/fix-xmm-scanning-mac-x86

Fix XMM scanning on Mac x86.

7 years agoBump cecil
Marek Safar [Tue, 21 Feb 2017 16:58:46 +0000 (17:58 +0100)]
Bump cecil

7 years ago[msvc] Update csproj files
monojenkins [Tue, 21 Feb 2017 16:23:20 +0000 (16:23 +0000)]
[msvc] Update csproj files

7 years agocorrect spelling mistakes (#4405)
Edward Betts [Tue, 21 Feb 2017 11:03:07 +0000 (11:03 +0000)]
correct spelling mistakes (#4405)

7 years ago[mcs] Add codegen for null operator on result of awaited instance expression of prope...
Marek Safar [Tue, 21 Feb 2017 10:55:44 +0000 (11:55 +0100)]
[mcs] Add codegen for null operator on result of awaited instance expression of property access. Fixes #52578

7 years ago[configure] Remove mcs endianess check (it shouldn't be needed)
Marek Safar [Mon, 20 Feb 2017 16:23:39 +0000 (17:23 +0100)]
[configure] Remove mcs endianess check (it shouldn't be needed)

7 years ago[Microsoft.CSharp] Replaced with CoreFX implementation
Marek Safar [Fri, 10 Feb 2017 11:15:47 +0000 (12:15 +0100)]
[Microsoft.CSharp] Replaced with CoreFX implementation

7 years agoMerge pull request #4398 from marek-safar/mono.csharp
Marek Safar [Mon, 20 Feb 2017 16:26:47 +0000 (17:26 +0100)]
Merge pull request #4398 from marek-safar/mono.csharp

[Mono.CSharp] Remove type conflicts with mscorlib types. Fixes #52590

7 years agoBump corefx
Marek Safar [Sat, 18 Feb 2017 13:09:18 +0000 (14:09 +0100)]
Bump corefx

7 years ago[mcs] Inflate constraints of compiler generated proxy base call methods. Fixes #52294
Marek Safar [Mon, 20 Feb 2017 16:12:52 +0000 (17:12 +0100)]
[mcs] Inflate constraints of compiler generated proxy base call methods. Fixes #52294

7 years ago[sgen] Lock around worker start, not only finishing
Vlad Brezae [Mon, 20 Feb 2017 16:11:52 +0000 (18:11 +0200)]
[sgen] Lock around worker start, not only finishing

If we don't take the finished_lock when starting workers, the workers that we started could have already finished the work and switch to non-parallel context before we are even able to signal all of them.

7 years ago[runtime] Use proper hash function for key_gc hashes
Vlad Brezae [Mon, 20 Feb 2017 12:33:28 +0000 (14:33 +0200)]
[runtime] Use proper hash function for key_gc hashes

If the key gets moved by the GC and we only hash based on current address, we are left with invalid hashing.

7 years ago[runtime] Counter for max hashtable chain length
Vlad Brezae [Thu, 16 Feb 2017 11:28:00 +0000 (13:28 +0200)]
[runtime] Counter for max hashtable chain length

7 years agoRevert "[Utils] Use g_direct_equal if NULL is passed in as the equals function"
Vlad Brezae [Fri, 17 Feb 2017 17:34:56 +0000 (19:34 +0200)]
Revert "[Utils] Use g_direct_equal if NULL is passed in as the equals function"

This reverts commit 914ecbcfec62bfc34984b3e121456d3f476a4707.

Having equal_func NULL is an optimization to avoid unnecessary calls.

7 years ago[sgen] Include optimization for arm/arm64 targets
Vlad Brezae [Fri, 17 Feb 2017 17:27:39 +0000 (19:27 +0200)]
[sgen] Include optimization for arm/arm64 targets

7 years ago[runtime] Avoid equal calls in MonoGHashTable
Vlad Brezae [Fri, 17 Feb 2017 13:37:45 +0000 (15:37 +0200)]
[runtime] Avoid equal calls in MonoGHashTable

mono_g_hash_table_find_slot is very hot.

7 years ago[runtime] Use better hashing for refobject_hash
Vlad Brezae [Fri, 17 Feb 2017 00:25:44 +0000 (02:25 +0200)]
[runtime] Use better hashing for refobject_hash

7 years ago[runtime] Reduce collisions with open addressing hashes
Vlad Brezae [Wed, 15 Feb 2017 01:00:35 +0000 (03:00 +0200)]
[runtime] Reduce collisions with open addressing hashes

In some hashtables we add multiple elements with the same hash. If we use only the address for hashing they would cluster since they are likely to have close addresses.

7 years ago[sgen] Generational mono g hashtable
Vlad Brezae [Fri, 10 Feb 2017 19:02:35 +0000 (21:02 +0200)]
[sgen] Generational mono g hashtable

We mark cards when storing in hashtables. During minors, instead of scanning the entire tables, we only scan the sections for the dirty cards. In order to simplify the implementation we split into separate key/value tables.

To achieve this, instead of using an user descriptor for the hashtable structure, we directly register the tables and we create a new type of root descriptor for it to teach sgen how to find pointers in it. In addition to the precise scan of the root, which is done during majors, we also support a remset scan for it. We expect all roots registered as ROOT_TYPE_WBARRIER, to use this new descriptor (ROOT_DESC_VECTOR). In order for a root descriptor to be in the ROOT_TYPE_WBARRIER category, it has to have a defined remset scan mode.

7 years ago[Mono.CSharp] Simplify .sources structure
Marek Safar [Sat, 18 Feb 2017 14:18:31 +0000 (15:18 +0100)]
[Mono.CSharp] Simplify .sources structure

7 years ago[runtime] Fail gracefully when method has conflicting attributes
Alexander Kyte [Tue, 14 Feb 2017 18:30:36 +0000 (13:30 -0500)]
[runtime] Fail gracefully when method has conflicting attributes

7 years ago[jit] Fix support for gsharedvt constrained calls which return enums. Fixes #52600.
Zoltan Varga [Sat, 18 Feb 2017 21:37:10 +0000 (16:37 -0500)]
[jit] Fix support for gsharedvt constrained calls which return enums. Fixes #52600.

7 years ago[threadpool] Let the runtime abort and wait for threads on shutdown (#4348)
Ludovic Henry [Fri, 17 Feb 2017 19:47:24 +0000 (14:47 -0500)]
[threadpool] Let the runtime abort and wait for threads on shutdown (#4348)

* [threadpool] Let the runtime abort and wait for threads on shutdown

We would previously have the threadpool abort and wait for its threads during runtime shutdown, but it would tend to be buggy or leaky. The runtime already takes care of aborting and waiting all the other threads, so we simply also let it take care of the threadpool threads.

* [threadpool] Wake up all parked threads on shutdown

This fixes a hang at shutdown, where one or more threadpool threads might not be unparked and only exit after the timeout, delaying runtime shutdown.

7 years ago[xbuild] Show the deprecation notice with logo, and so hide it with (#4399)
Ankit Jain [Fri, 17 Feb 2017 18:32:13 +0000 (13:32 -0500)]
[xbuild] Show the deprecation notice with logo, and so hide it with (#4399)

`/nologo`. It is not controlled by logging levels now.
But we also show the deprecation notice if we couldn't parse
the arguments, which would be more likely to be noticed by a user.

7 years ago[sgen] Move some cardtable functions to sgen
Vlad Brezae [Tue, 14 Feb 2017 22:41:22 +0000 (00:41 +0200)]
[sgen] Move some cardtable functions to sgen

7 years ago[runtime] Open addressing for MonoGHashTable
Vlad Brezae [Fri, 3 Feb 2017 12:13:55 +0000 (14:13 +0200)]
[runtime] Open addressing for MonoGHashTable

Some whitespace and other cleanup fixes

7 years ago[ProcessTest] Ensure we enable raising Exited event (#4397)
Ludovic Henry [Fri, 17 Feb 2017 14:23:39 +0000 (09:23 -0500)]
[ProcessTest] Ensure we enable raising Exited event (#4397)

7 years ago[Mono.CSharp] Remove type conflicts with mscorlib types. Fixes #52590
Marek Safar [Fri, 17 Feb 2017 13:50:47 +0000 (14:50 +0100)]
[Mono.CSharp] Remove type conflicts with mscorlib types. Fixes #52590

7 years agoMerge pull request #4396 from radical/xbuild-deprec-fix
Jonathan Pryor [Thu, 16 Feb 2017 22:17:37 +0000 (17:17 -0500)]
Merge pull request #4396 from radical/xbuild-deprec-fix

[xbuild] Don't show the deprecation notice for minimal or quiet logging

7 years ago[interpreter] move interpreter specific trampoline definition to mini.h, also move...
Bernhard Urban [Wed, 15 Feb 2017 23:40:51 +0000 (00:40 +0100)]
[interpreter] move interpreter specific trampoline definition to mini.h, also move trampoline outside of DISABLE_JIT guard

7 years ago[interpreter] clean up exported symbols and header organization
Bernhard Urban [Thu, 9 Feb 2017 19:42:19 +0000 (20:42 +0100)]
[interpreter] clean up exported symbols and header organization

7 years ago[interpreter] remove temporary generic-interp.cs, and use Category attribute to disab...
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] remove temporary generic-interp.cs, and use Category attribute to disable testcases that fail with the interpreter

add objects.cs as well and disable test cases accordingly.

7 years ago[interpreter] respect Category Attribute for --regression tests
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] respect Category Attribute for --regression tests

7 years ago[interpreter] hacky implementation for create_method_pointer
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] hacky implementation for create_method_pointer

not quite sure yet what the requirements are, but this works now for
executing a simple hello world :-) in metadata/gc.c we use this
interface to call the Finalize method on objects.

7 years ago[interpreter] force vtable setup before method lookup
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] force vtable setup before method lookup

7 years ago[interpreter] skip boxing if it's already a non-valuetype
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] skip boxing if it's already a non-valuetype

7 years ago[interpreter] fix misc type resolving issues
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] fix misc type resolving issues

7 years ago[interpreter] pop from value type stack when loading field from value type
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] pop from value type stack when loading field from value type

7 years ago[interpreter] fix off-by-one errors around loading and storing args
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] fix off-by-one errors around loading and storing args

7 years ago[interpreter] implement constrained.callvirt insn
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] implement constrained.callvirt insn

7 years ago[interpreter] special casing for string objects
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] special casing for string objects

7 years ago[interpreter] implement {st,ld}elem for value types
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] implement {st,ld}elem for value types

7 years ago[interpreter] use runtime helper to unbox `this'
Bernhard Urban [Thu, 9 Feb 2017 19:42:18 +0000 (20:42 +0100)]
[interpreter] use runtime helper to unbox `this'

7 years ago[interpreter] make mint_{ldind_i,box} so that it can also operate on elements deeper...
Bernhard Urban [Thu, 9 Feb 2017 19:42:17 +0000 (20:42 +0100)]
[interpreter] make mint_{ldind_i,box} so that it can also operate on elements deeper on the stack