Merge branch 'upstream'

Former-commit-id: d8a7791dfc27f9e60cd60dc8bcea49a0bc280d7e
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2019-06-15 09:05:45 +00:00
commit 89dc21ef21
47 changed files with 85 additions and 43 deletions

View File

@ -1 +1 @@
32032351f05623ddf476bdcb57a30b529b3d2e8d 31a9498daf6bb155f2123b3ecd7faa579ade4c98

View File

@ -1 +1 @@
19a2e7c59e1e46b86ca76d5200cbc4328a92171a e17288b2e852e32474aebf862e6347b06e6cd2a2

View File

@ -41,7 +41,7 @@ static partial class Consts
// Use these assembly version constants to make code more maintainable. // Use these assembly version constants to make code more maintainable.
// //
public const string MonoVersion = "6.0.0.300"; public const string MonoVersion = "6.0.0.302";
public const string MonoCompany = "Mono development team"; public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure"; public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors"; public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -1 +1 @@
610f149d02b43843d60ea943b1dbda131da50857 707e0df8d36d7e873f6a93d82ff286a0e675825a

View File

@ -1 +1 @@
ac5a904a97698ca709eefcd4adf1163eb0018487 e0cfa451b476ede754a8d5bb0ecaf177b2506b98

View File

@ -1 +1 @@
ef3898ec0a1a2fb4899d555333cf761c9d5ec07e a8e0dec34755f207498bca98116670d810e34bd7

View File

@ -1 +1 @@
fc7585fb16e851b662b878b39f8e32d3018fd668 00060537c5a7b8b3b1b854dc6199b695e1084f0a

View File

@ -1 +1 @@
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab ef46214686b5696543af92d0c70196ba0b943a6d

View File

@ -1 +1 @@
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3 1b047b44ee58aa8a884a47305868b76578a88ff3

View File

@ -1 +1 @@
921d504a42685c599326466181ff27a39e20ad8e a1d786bde0d6c4c74526dc14a87da6a44f9279ad

View File

@ -1 +1 @@
610f149d02b43843d60ea943b1dbda131da50857 707e0df8d36d7e873f6a93d82ff286a0e675825a

View File

@ -1 +1 @@
ac5a904a97698ca709eefcd4adf1163eb0018487 e0cfa451b476ede754a8d5bb0ecaf177b2506b98

View File

@ -1 +1 @@
ef3898ec0a1a2fb4899d555333cf761c9d5ec07e a8e0dec34755f207498bca98116670d810e34bd7

View File

@ -1 +1 @@
fc7585fb16e851b662b878b39f8e32d3018fd668 00060537c5a7b8b3b1b854dc6199b695e1084f0a

View File

@ -1 +1 @@
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab ef46214686b5696543af92d0c70196ba0b943a6d

View File

@ -1 +1 @@
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3 1b047b44ee58aa8a884a47305868b76578a88ff3

View File

@ -1 +1 @@
921d504a42685c599326466181ff27a39e20ad8e a1d786bde0d6c4c74526dc14a87da6a44f9279ad

View File

@ -1 +1 @@
610f149d02b43843d60ea943b1dbda131da50857 707e0df8d36d7e873f6a93d82ff286a0e675825a

View File

@ -1 +1 @@
ac5a904a97698ca709eefcd4adf1163eb0018487 e0cfa451b476ede754a8d5bb0ecaf177b2506b98

View File

@ -1 +1 @@
ef3898ec0a1a2fb4899d555333cf761c9d5ec07e a8e0dec34755f207498bca98116670d810e34bd7

View File

@ -1 +1 @@
fc7585fb16e851b662b878b39f8e32d3018fd668 00060537c5a7b8b3b1b854dc6199b695e1084f0a

View File

@ -1 +1 @@
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab ef46214686b5696543af92d0c70196ba0b943a6d

View File

@ -1 +1 @@
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3 1b047b44ee58aa8a884a47305868b76578a88ff3

View File

@ -1 +1 @@
921d504a42685c599326466181ff27a39e20ad8e a1d786bde0d6c4c74526dc14a87da6a44f9279ad

View File

@ -1 +1 @@
610f149d02b43843d60ea943b1dbda131da50857 707e0df8d36d7e873f6a93d82ff286a0e675825a

View File

@ -1 +1 @@
ac5a904a97698ca709eefcd4adf1163eb0018487 e0cfa451b476ede754a8d5bb0ecaf177b2506b98

View File

@ -1 +1 @@
109ef5fa2134bda6d786295cc1092f58492f0ecf 7fc95be03837f157066d246f3e7ac3f2c7ced403

View File

@ -1 +1 @@
fc7585fb16e851b662b878b39f8e32d3018fd668 00060537c5a7b8b3b1b854dc6199b695e1084f0a

View File

@ -1 +1 @@
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab ef46214686b5696543af92d0c70196ba0b943a6d

View File

@ -1 +1 @@
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3 1b047b44ee58aa8a884a47305868b76578a88ff3

View File

@ -1 +1 @@
7dd2f3d40d447e8f4a757f77325c121f15c887f2 c5c13a9dfb924885908c55b62252c3cd2a543a99

View File

@ -1 +1 @@
#define FULL_VERSION "explicit/52f6ea1" #define FULL_VERSION "explicit/fdf6490"

View File

@ -1443,10 +1443,10 @@ distclean-generic:
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild." @echo "it deletes files that may require special tools to rebuild."
@CROSS_COMPILE_TRUE@test-local:
@HOST_WIN32_TRUE@test-local:
@CROSS_COMPILE_TRUE@clean-local: @CROSS_COMPILE_TRUE@clean-local:
@HOST_WIN32_TRUE@clean-local: @HOST_WIN32_TRUE@clean-local:
@CROSS_COMPILE_TRUE@test-local:
@HOST_WIN32_TRUE@test-local:
clean: clean-am clean: clean-am
clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \ clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \

View File

@ -43,7 +43,7 @@
* - not be called concurrently (either 2+ initialize or 2+ cleanup, either initialize and cleanup) * - not be called concurrently (either 2+ initialize or 2+ cleanup, either initialize and cleanup)
*/ */
typedef gint32 mono_lazy_init_t; typedef volatile gint32 mono_lazy_init_t;
enum { enum {
MONO_LAZY_INIT_STATUS_NOT_INITIALIZED, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED,
@ -62,21 +62,63 @@ mono_lazy_initialize (mono_lazy_init_t *lazy_init, void (*initialize) (void))
status = *lazy_init; status = *lazy_init;
// This barrier might be redundant with volatile.
//
// Without either, code in our caller can
// read state ahead of the call to mono_lazy_initialize,
// and ahead of the call to initialize.
//
// Recall that barriers come in pairs.
// One barrier is in mono_atomic_cas_i32 below..
// This is the other.
//
// A common case of initializing a pointer, that
// the reader dereferences, is ok,
// on most architectures (not Alpha), due to "data dependency".
//
// But if the caller is merely reading globals, that initialize writes,
// then those reads can run ahead of initialize and be incorrect.
//
// On-demand initialization is much tricker than generally understood.
//
// Strongly consider adapting:
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
//
// At the very bottom. After making it coop-friendly.
//
// In particular, it eliminates the barriers from the fast path.
// At the cost of a thread local access.
//
// The thread local access should be "gamed" (forced to initialize
// early on platforms that do on-demand initialization), by inserting
// an extra use early in runtime initialization. i.e. so it does not
// take any locks, and become coop-unfriendly.
//
mono_memory_read_barrier ();
if (status >= MONO_LAZY_INIT_STATUS_INITIALIZED) if (status >= MONO_LAZY_INIT_STATUS_INITIALIZED)
return status == MONO_LAZY_INIT_STATUS_INITIALIZED; return status == MONO_LAZY_INIT_STATUS_INITIALIZED;
if (status == MONO_LAZY_INIT_STATUS_INITIALIZING if (status == MONO_LAZY_INIT_STATUS_INITIALIZING
|| mono_atomic_cas_i32 (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZING, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED) || mono_atomic_cas_i32 (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZING, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED)
!= MONO_LAZY_INIT_STATUS_NOT_INITIALIZED != MONO_LAZY_INIT_STATUS_NOT_INITIALIZED
) { ) {
while (*lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZING) while (*lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZING)
mono_thread_info_yield (); mono_thread_info_yield (); // FIXME: This is not coop-friendly.
g_assert (mono_atomic_load_i32 (lazy_init) >= MONO_LAZY_INIT_STATUS_INITIALIZED); g_assert (mono_atomic_load_i32 (lazy_init) >= MONO_LAZY_INIT_STATUS_INITIALIZED);
return status == MONO_LAZY_INIT_STATUS_INITIALIZED;
// This result is transient. Another thread can proceed to cleanup.
// Perhaps cleanup should not be attempted, just on-demand initialization.
return *lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZED;
} }
initialize (); initialize ();
mono_atomic_store_release (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZED); mono_atomic_store_release (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZED);
// This result is transient. Another thread can proceed to cleanup.
// Perhaps cleanup should not be attempted, just on-demand initialization.
return TRUE; return TRUE;
} }

Binary file not shown.

View File

@ -1 +1 @@
35858a58c9cca01515d5e56d8c2bdd27b11e3d0e 677dc9591de53fcfdbd708940b441191503b3496

Binary file not shown.

View File

@ -1 +1 @@
8247971707c68040471dabc7b3b9fc2dc05fcdb8 907ea4e25da95b086f1327c2357ee1e995071bd4

Binary file not shown.

View File

@ -1 +1 @@
c3eea70da1a0c2a30b11f370b77d988850744f0c 5dc06f534ea570b212a34a0f3d4138248208e5dd

View File

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mono 6.0.0.300\n" "Project-Id-Version: mono 6.0.0.302\n"
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n" "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
"POT-Creation-Date: 2019-06-14 08:08+0000\n" "POT-Creation-Date: 2019-06-15 08:08+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

Binary file not shown.

View File

@ -1 +1 @@
d9eee91f60bd1f5c08357637bb98da1529bb8bff 7c8080c91e032fa76e5f088eadb2df4d784b29fe