Yaroslav Yamshchikov [Fri, 14 Feb 2020 21:11:01 +0000 (00:11 +0300)]
fix infinite recursion in crossgen2 on ARM (#32227)
Vitek Karas [Fri, 14 Feb 2020 20:37:05 +0000 (12:37 -0800)]
Merge pull request #32221 from vitek-karas/FixProbeOrderDoc
Rewrite the assembly conflict resolution doc to describe current behavior
vitek-karas [Fri, 14 Feb 2020 20:30:05 +0000 (12:30 -0800)]
Fix step numbers
Vitek Karas [Fri, 14 Feb 2020 20:29:18 +0000 (12:29 -0800)]
Apply suggestions from code review
Co-Authored-By: Elinor Fung <47805090+elinor-fung@users.noreply.github.com>
Stephen Toub [Fri, 14 Feb 2020 20:23:51 +0000 (12:23 -0800)]
Annotate Microsoft.VisualBasic.Core ref assembly for nullable reference types (#32200)
* Annotate Microsoft.VisualBasic.Core ref assembly for nullable reference types
* Apply suggestions from code review
Co-Authored-By: Charles Stoner <chucks@microsoft.com>
Co-authored-by: Charles Stoner <chucks@microsoft.com>
Egor Bogatov [Fri, 14 Feb 2020 19:16:53 +0000 (22:16 +0300)]
JIT: Optimize "constant_string".Length (#1378)
* Add GetStringLength() to jit interface
* Use `gen.bat` to update crossgen2
* Implement the actual optimization
* Code formatting
* return -1 for crossgen2 (TODO: implement)
* Disable for R2R
* remove `pString != nullptr` check (it's ok for empty strings)
* does order matter? (in ThunkInput.txt)
* Rename to GetStringLiteral
* Fix build errors
* Address feedback
* handle null return value
* fix build
* Address feedback
* add comments in corinfo.h
* Address feedback
* Update ThunkGenerator.csproj
* remove HackishString thing
* Update importer.cpp
* Map wchar_t to C# char in ThunkInput.txt
Anton Lapounov [Fri, 14 Feb 2020 19:13:56 +0000 (11:13 -0800)]
Fix OOM in R2RDump (#32274)
R2RDump allocated a new copy of the System.Private.CoreLib assembly for each method of every generic type defined in the same image. As a result, it died due to OOM when dumping big images, e.g., System.Private.CoreLib itself. Also, in case of a non-composite R2R image, a wrong metadata reader was used for methods of generic types defined in the same image. Both issues were introduced in #32027.
monojenkins [Fri, 14 Feb 2020 18:59:30 +0000 (13:59 -0500)]
[llvmonly] Emit stubs for methods which failed compilation. (#32162)
Emit a stub for methods which failed llvm compilation. Currently the stub will
throw a MissingMethodException, later it can fall back to the interpreter etc.
This is required for cross-assembly direct calls, since the caller doesn't
know that the callee has failed llvm compilation leading to missing
symbols during linking.
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Tomáš Rylek [Fri, 14 Feb 2020 18:45:43 +0000 (19:45 +0100)]
Fix CG2 framework compilation on Linux / OSX
Cory Nelson [Fri, 14 Feb 2020 18:34:02 +0000 (10:34 -0800)]
Get tests running for HTTP/3 (#31898)
Update generic tests to use a Version rather than boolean IsHttp11/IsHttp20, and update some HTTP/2 to work for HTTP/3.
Enable tests for HTTP/3, behind a conditional feature test.
Fix QPackDecoder lzcnt assuming an 8-bit test.
Rename test QPACK classes from QPackEncoder/QPackDecoder -> QPackTestEncoder/QPackTestDecoder to avoid naming confusion with product code classes.
Fix QPackTestDecoder bit flag checks.
Fix a double call to QuicConnection.CloseAsync(). Update to shutdown QuicConnection in a background task.
Fix test cert usage.
Ryan Lucia [Fri, 14 Feb 2020 18:26:16 +0000 (13:26 -0500)]
[loader] Move AssemblyDependencyResolver to shared (#32253)
Stephen Toub [Fri, 14 Feb 2020 18:21:50 +0000 (10:21 -0800)]
Remove some char[] allocations from Split usage (#32301)
Stephen Toub [Fri, 14 Feb 2020 18:20:46 +0000 (10:20 -0800)]
Remove a char[] allocation from HttpUtility (#32298)
Anirudh Agnihotry [Fri, 14 Feb 2020 18:16:55 +0000 (10:16 -0800)]
fixing the order of targetFrameworks to show appropriate files in the VS (#32206)
* fixing the vs
* Update System.Runtime.Serialization.Formatters.Tests.csproj
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Santiago Fernandez Madero [Fri, 14 Feb 2020 17:52:31 +0000 (09:52 -0800)]
Enable cryptography tests hitting libssl issue (#32255)
Eirik Tsarpalis [Fri, 14 Feb 2020 17:49:41 +0000 (17:49 +0000)]
Merge pull request #32174 from eiriktsarpalis/annotate-system-security-cryptography-openssl
Nullable annotate System.Security.Cryptography.OpenSSL
Eirik Tsarpalis [Fri, 14 Feb 2020 17:45:14 +0000 (17:45 +0000)]
Nullable annotate System.Security.Cryptography.Cng (#32039)
* nullable annotate System.Security.Cryptography.Cng
* add nullable directives to common source files
* update ref signatures
* remove erroneous assertion
* address feedback
* address feedback
* address feedback
Ben Adams [Fri, 14 Feb 2020 17:41:30 +0000 (17:41 +0000)]
Xml use strongly typed struct enumerators (#32296)
Stephen Toub [Fri, 14 Feb 2020 17:12:31 +0000 (09:12 -0800)]
Add Interlocked unsigned and bitwise operations (#32216)
* Add Interlocked unsigned and bitwise operations
* Address PR feedback
* Delete dead code for internal CompareExchange(..., ref bool)
* Remove Xor
Anirudh Agnihotry [Fri, 14 Feb 2020 17:05:50 +0000 (09:05 -0800)]
fix solution build (#32259)
Jo Shields [Fri, 14 Feb 2020 16:54:45 +0000 (11:54 -0500)]
Forcibly disable use of libstdc++ C++11 ABI on Mono LLVM (#32234)
* Forcibly disable use of libstdc++ C++11 ABI on Mono LLVM
This feature is documented at https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html
Basically, the C++ ABI of the LLVM libraries needs to match the ABI of Mono.
The CentOS7 images we build with on CI use the old (GCC 4 style) ABI by
default, which ends up embedded in our LLVM nupkgs. This results in linker
errors when building runtime.git on distributions which use the C++11 ABI
instead, like Ubuntu 16.04+:
```
./.libs/libmini.a(llvm-jit.o): In function `mono_llvm_create_ee':
/home/directhex/Projects/runtime/src/mono/mono/mini/llvm-jit.cpp:447: undefined reference to `MonoEHFrameSymbol[abi:cxx11]'
./.libs/libmini.a(llvm-jit.o): In function `llvm::RTDyldMemoryManager::getSymbolAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/directhex/Projects/runtime/artifacts/obj/mono/Linux.x64.Debug/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:84: undefined reference to `llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
./.libs/libmini.a(llvm-jit.o):(.data.rel.ro+0x90): undefined reference to `llvm::RTDyldMemoryManager::getPointerToNamedFunction(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
```
Adding a define to CXXFLAGS, -D _GLIBCXX_USE_CXX11_ABI=0 forces the build
to use the same ABI as the LLVM nupkgs we produce.
The alternative would be to modify our LLVM build to enable the
non-default C++11 ABI.
* Also add flag in Release configuration
Frederik Carlier [Fri, 14 Feb 2020 16:44:46 +0000 (17:44 +0100)]
System.Drawing.Common: Assert libgdiplus 6.0.1 on macOS unit tests (#335)
* Require at least libgdiplus 6.0.1
* Fix typo
* StyleCop fix
* Fix recursion
* PR feedback
* Don't catch DllNotFoundException
* PR feedback
* Enforce libgdiplus version on macOS
* Add a unit test which check the libgdiplus version on macOS
* Revert initial change
* Re-enable ~14 tests on libgdiplus 6
* Re-enable ~10 font tests
* Re-enable 2 DrawBezier tests
* Re-enable ~15 Drawing2D tests
* Re-enable ~8 LinearGradientBrush tests
* Re-enable 6 matrix tests
* Re-enable 7 PathGradientBrush tests
* Re-enable 2 tests
* PR feedback
* Rename IsAtLeastLibgdiplus6 to IsWindowsOrAtLeastLibgdiplus6
* PR feedback
* Fix build errors
Miha Zupan [Fri, 14 Feb 2020 16:40:37 +0000 (17:40 +0100)]
Remove dead code in Uri (#31883)
* Remove dead code in Uri
* Remove non-descript '// perf' comments
Kirill Frolov [Fri, 14 Feb 2020 16:40:03 +0000 (19:40 +0300)]
Fixed few issues within Native/Unix/configure.cmake (#32037)
Issues list are following:
1) clang-5.0 compiler has warning -Wunused-variable (in addition to
-Wunused-value), which should be ignored (because tests, which is passed
to "check_c_source_compiles" written in that way, what they generate
some warnings);
2) fixed include "fnctl.h" -> include "fcntl.h"
3) fixed few warnings related to uninitialized variables (due to
-Werror).
Fix #32035
Levi Broderick [Fri, 14 Feb 2020 16:34:15 +0000 (08:34 -0800)]
Fix broken MSDN blogs links (#32273)
Bruce Forstall [Fri, 14 Feb 2020 16:32:19 +0000 (08:32 -0800)]
Update issues.targets issue numbers for merged repo (#32236)
* Update issues.targets issue numbers for merged repo
Convert from dotnet/coreclr issue number to dotnet/runtime
issue numbers based on docs\issue-mappings\coreclr.mapping.txt
file.
* Convert issue numbers to full URLs
Julien Couvreur [Fri, 14 Feb 2020 16:14:42 +0000 (08:14 -0800)]
Help compiler enforce nullability annotations (#32090)
* Help compiler enforce nullability annotations
* Revert repro changes
* Simplifications
* Address feedback
* Tweak
* Another cleanup
* Fixup on ImportTypes
* Revert from T? to [AllowNull]T
* Enable nullability on one file
* Addressing PR feedback from Stephen
* Use Debug.Assert instead of pragma
* Revert "Use Debug.Assert instead of pragma"
This reverts commit
f7175ba5427729ce60c898d5e7f00d9a4550e12d.
Stephen Toub [Fri, 14 Feb 2020 16:12:15 +0000 (08:12 -0800)]
Remove lock allocation from SafeSocketHandle on Windows (#32275)
The first time a Socket is used, we bind its handle to the ThreadPool for overlapped I/O. In order to avoid this happening on multiple threads concurrently if multiple threads concurrently race to perform this initialization, we take a lock. We currently allocate an object and store it for the lifetime of the Socket, purely to do this one-time synchronization, after which the object is useless. While in general we prefer not to lock on `this` (in order to avoid any issues that might occur from an external consumer also locking on the same object), the chances of someone locking on this object are slim to none, and even if they did, it wouldn't make any difference once the socket was already initialized, and even if the socket wasn't yet initialized, it would only be a one-time contention, without lock ordering concerns.
Stephen Toub [Fri, 14 Feb 2020 16:09:44 +0000 (08:09 -0800)]
Remove a couple allocations from Socket.Connect/Bind/etc. (#32271)
The Socket implementation calls the internal SnapshotAndSerialize method on a bunch of code paths, like Connect, Bind, etc. The "snapshot" part of the name comes from the time of CAS, and the implementation needed to clone the instance to make security decisions. We no longer make such decisions, but we're still cloning the objects. We can stop doing that.
Levi Broderick [Fri, 14 Feb 2020 16:07:46 +0000 (08:07 -0800)]
API review URL should be HTTPS, not HTTP (#32281)
Eirik Tsarpalis [Thu, 13 Feb 2020 15:17:25 +0000 (15:17 +0000)]
Revert "address feedback"
This reverts commit
d3c21fa00063683856f35517598ca22423edcd28.
Eirik Tsarpalis [Thu, 13 Feb 2020 10:44:27 +0000 (10:44 +0000)]
address feedback
Eirik Tsarpalis [Wed, 12 Feb 2020 14:07:31 +0000 (14:07 +0000)]
Nullable annotate System.Security.Cryptography.OpenSSL
Eirik Tsarpalis [Fri, 14 Feb 2020 15:32:29 +0000 (15:32 +0000)]
address feedback
Eirik Tsarpalis [Fri, 14 Feb 2020 15:26:41 +0000 (15:26 +0000)]
address feedback
Eirik Tsarpalis [Tue, 11 Feb 2020 17:07:52 +0000 (17:07 +0000)]
address feedback
Eirik Tsarpalis [Tue, 11 Feb 2020 16:19:01 +0000 (16:19 +0000)]
remove erroneous assertion
Eirik Tsarpalis [Tue, 11 Feb 2020 13:48:50 +0000 (13:48 +0000)]
update ref signatures
Eirik Tsarpalis [Mon, 10 Feb 2020 21:26:59 +0000 (21:26 +0000)]
add nullable directives to common source files
Eirik Tsarpalis [Mon, 10 Feb 2020 19:33:28 +0000 (19:33 +0000)]
nullable annotate System.Security.Cryptography.Cng
monojenkins [Fri, 14 Feb 2020 11:57:35 +0000 (06:57 -0500)]
[debugger] Enabling PPDB on Wasm. (#32188)
We are investigating to turn on PPDB everywhere, but for now, WASM is already working using it.
Co-authored-by: Thays Grazia <thaystg@gmail.com>
Marie Píchová [Fri, 14 Feb 2020 10:53:11 +0000 (11:53 +0100)]
Linux NIC speed type made long to fit the actual value (#32223)
Fixes #18090
Linux pal level struct for network info had only int32 field for speed. Even though our public API has it as long. The problem was in value overflowing in calculation MBits --> Bits.
Tomáš Rylek [Fri, 14 Feb 2020 08:27:47 +0000 (09:27 +0100)]
Re-enable Windows ARM32 jobs (#32261)
Steve MacLean [Fri, 14 Feb 2020 06:28:57 +0000 (01:28 -0500)]
Fix arm cross OS DAC compilation (#31903)
* Fix arm cross OS DAC compilation
* Simplify #if logic
Prefer !HOST_LINUX -> HOST_WINDOWS
Use consistent control logic
* Remove crosscomp.h RUNTIME_FUNCTION
Clean up crosscomp.h to consistently use T_RUNTIME_FUNCTION
* Remove UNWIND_HISTORY_TABLE
Justin Kotalik [Fri, 14 Feb 2020 05:26:48 +0000 (21:26 -0800)]
Allow QuicListener to accept files paths for options (#32088)
Ahson Khan [Fri, 14 Feb 2020 05:20:36 +0000 (21:20 -0800)]
Fix up some nullability annotations to remove unnecessary null-forgiving operations (!) (#32186)
* Fix up some nullability annotations to remove unnecessary null-forgiving
operations (!)
* Revert change to TryGetOrAddReferenceOnSerialize since it will never
return null referenceId string.
* Remove unused using directive.
* Adding NotNull on the JsonConverter<T>.Write and MaybeNullWhen on the
OnTryRead method overrides.
* Address feedback - DisallowNull instead of NotNull and remove
comment/debug.assert.
* Add back Debug.Asserts because I like them :)
Ahson Khan [Fri, 14 Feb 2020 04:45:30 +0000 (20:45 -0800)]
Move common project reference to the S.T.E.W ref into a separate ItemGroup. (#32210)
* Move common project reference to the S.T.E.W ref into a separate
ItemGroup.
* Reword a bit.
* Slight tweak to wording so it is easier to read.
* End comment tag earlier.
Ahson Khan [Fri, 14 Feb 2020 04:42:10 +0000 (20:42 -0800)]
Rename JsonPropertyInfo<TConverter> to JsonPropertyInfo<TTypeToConvert>. (#32209)
David Wrighton [Thu, 13 Feb 2020 23:44:41 +0000 (15:44 -0800)]
Vector abi tests and reverse pinvoke fixes (#32034)
- Fix issues noted in returning structures from reverse p/invokes
* Add tests for marshalling Vector2/3/4
- Anticipated work on Windows Amd64 calling conventions may affect this, so this needs testing
* Updates to add return struct marshalling tests/fixes
- Adjust some reverse p/invoke struct marshalling tests to add coverage for returning structures
- Coverage includes a 3 byte, 4 byte struct, 8 byte struct, and a large struct
- Note: There is a code in mlinfo.cpp which explicitly makes support for returning 3, 5, 6, and 7 on X86 follow the wrong calling convention by rounding the size to a 4 byte boundary. I've left this unfortunate detail in place.
* Re-encode ReversePInvokeTest.cs to utf8 to reduce future diffing burden
Chris Ross [Thu, 13 Feb 2020 23:29:41 +0000 (15:29 -0800)]
Update CODEOWNERS and scripts (#32251)
Tomas Weinfurt [Thu, 13 Feb 2020 23:07:49 +0000 (15:07 -0800)]
use proper IO in ssl handshake (#32013)
* use proper IO in ssl handshake
* fix UnitTests/Fakes
* feedback from review
* rename adapters to SyncSslIOAdapter and AsyncSslIOAdapter
* feedback from review
Steve Harter [Thu, 13 Feb 2020 21:50:44 +0000 (15:50 -0600)]
Merge pull request #32184 from steveharter/FileCleanup
System.Text.Json file and converter name clean-up (no functional changes)
Viktor Hofer [Thu, 13 Feb 2020 21:27:01 +0000 (22:27 +0100)]
Remove dead code in S.R.S.Formatters.Tests (#32229)
Viktor Hofer [Thu, 13 Feb 2020 21:24:07 +0000 (22:24 +0100)]
Skip res. intensive BinaryFormatter tests on chk (#32245)
* Skip res. intensive BinaryFormatter tests on chk
Those tests are taking too long for our default timeout on Checked
configurations and that configuration doesn't provide much value there.
* Update BinaryFormatterTests.cs
monojenkins [Thu, 13 Feb 2020 21:20:38 +0000 (16:20 -0500)]
[runtime] Disable assertion messages for g_assertf as well if DISABLE_ASSERT_MESSAGES is used. (#32018)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Ryan Lucia [Thu, 13 Feb 2020 20:36:18 +0000 (15:36 -0500)]
[mini] Move netcore hosting functionality into separate file (#32136)
* [mini] Move netcore hosting functionality into separate file
* [loader] Don't crash in the preload hook if the TPA paths aren't set
* [loader] Never request a refonly load in netcore preload hook
* Assert not refonly in netcore preload hook
* Add new files to msvc build
Carol Eidt [Thu, 13 Feb 2020 18:56:30 +0000 (10:56 -0800)]
Fix handling of non-reg-passed HFA (#32180)
Fix #31673
Viktor Hofer [Thu, 13 Feb 2020 18:21:02 +0000 (19:21 +0100)]
Disabling x86 Win7&8.1 helix test runs (#32233)
These runs are failing frequently based on Client are fully patched.
Steve Harter [Wed, 12 Feb 2020 17:33:07 +0000 (11:33 -0600)]
Additional renaming and csproj changes
Steve Harter [Wed, 12 Feb 2020 17:30:20 +0000 (11:30 -0600)]
Rename converter types
Steve Harter [Wed, 12 Feb 2020 16:30:38 +0000 (10:30 -0600)]
Rename and move converter files
Levi Broderick [Thu, 13 Feb 2020 17:40:34 +0000 (09:40 -0800)]
Clean up improper usage of linguistic string functions (#31968)
- Optimize ToUpperInvariant/ToLowerInvariant
- Also optimize static field TextInfo.Invariant
- Rewrite ToUpper/Lower(Invariant) call sites to use optimized method
- Fix some uses of culture-aware ToUpper / ToLower to use invariant culture
- Replace Trim().Length with IsNullOrWhiteSpace where appropriate
- Use ordinal StartsWith / EndsWith where appropriate
- Avoid calling CultureInfo.InvariantCulture where possible
Viktor Hofer [Thu, 13 Feb 2020 17:17:30 +0000 (18:17 +0100)]
Further removal of old framework aliases in docs
Viktor Hofer [Thu, 13 Feb 2020 17:15:14 +0000 (18:15 +0100)]
Remove old frameworks and use dotnet build in docs
dotnet-maestro[bot] [Thu, 13 Feb 2020 16:46:18 +0000 (17:46 +0100)]
Update dependencies from https://github.com/dotnet/arcade build
20200212.7 (#32224)
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20112.7
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20112.7
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20112.7
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20112.7
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20112.7
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20112.7
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20112.7
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20112.7
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20112.7
Ahson Khan [Thu, 13 Feb 2020 16:42:36 +0000 (08:42 -0800)]
Update to the latest available Intellisense transport package. (#32218)
Youssef Victor [Thu, 13 Feb 2020 13:10:04 +0000 (15:10 +0200)]
Remove unused variables and follow coding style (#677)
* Remove unused variables and follow coding style
* Update BuildFolderSet.cs
* Use StartNew method based on stephen feedback
monojenkins [Thu, 13 Feb 2020 12:50:05 +0000 (07:50 -0500)]
[tests] Disable bug-10127.exe runtime test on Windows x64 (#32222)
It hangs: https://github.com/mono/mono/issues/18827
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
monojenkins [Thu, 13 Feb 2020 12:00:51 +0000 (07:00 -0500)]
[interp] Always init locals (#32193)
Storing uninitialized locals in a managed object shouldn't crash the runtime, so they should be zeroed. This doesn't seem to regress performance on wasm since the initlocals flag is always set, currently. We should be able to remove it most of the time, once we add some multi basic block support to the cprop phase. This will enable us to further reduce call overhead.
Fixes https://github.com/mono/mono/issues/18527
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
Vitek Karas [Thu, 13 Feb 2020 12:00:26 +0000 (04:00 -0800)]
Rewrite the document to describe only existing behavior
The doc was originally written as a proposal for a behavior change. So it's hard to read and determine the current behavior. Since the new behavior has been in place since 2.1, it's more valuable to have only the current version described.
monojenkins [Thu, 13 Feb 2020 11:58:51 +0000 (06:58 -0500)]
[interp] Add missing conversion opcodes from r4 (#32196)
Fixes tests from System.Linq.Expressions suite
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
monojenkins [Thu, 13 Feb 2020 11:55:21 +0000 (06:55 -0500)]
[runtime] Add --enable-minimal=processes,config options to disable support for processes and .config files. (#32217)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Vitek Karas [Thu, 13 Feb 2020 08:53:51 +0000 (00:53 -0800)]
Fix ordering of probe locations in assembly resolution doc
And refer to the detailed doc about this topic
monojenkins [Thu, 13 Feb 2020 08:37:09 +0000 (03:37 -0500)]
[llvm] Remove a wasm limitation which no longer exists. (#32163)
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
monojenkins [Thu, 13 Feb 2020 08:14:18 +0000 (03:14 -0500)]
[interp][wasm] Make newobj_fast not recursive, cleanup, fix EXCEPTION_CHECKPOINT. (#31856)
Make newobj_fast not recursive.
This contributes significantly to https://github.com/mono/mono/issues/18646,
and against master might even fix it.
Much recursion remains in the interpreter/transform.
This also cleans up redundant code, i.e. method_entry,
and places EXCEPTION_CHECKPOINT more correctly,
i.e. when transform occurs but does not return an exception.
EXCEPTION_CHECKPOINT fix is necessary so that non-recursive newobj_fast does not break one test.
One more item, could be separate PR:
Making call_vararg added the following to all calls:
storing is_void in a larger scoped local
save is_void
restore is_void
check is_void, along with preexisting check of retval == null
Because retval must be set even for void call_varargs, because the arglist is found from it.
This removes the check of retval == null, it should be redundant with is_void.
Since there was complaint about call_vararg inefficiency, this fixes part of it.
Co-authored-by: Jay Krell <jay.krell@cornell.edu>
Jo Shields [Thu, 13 Feb 2020 06:15:20 +0000 (01:15 -0500)]
Enable Mono ARM & ARM64 Linux builds (#32181)
* Enable cross-compiling for ARM{64} with ./mono.sh --arch arm{64}
* Add Mono ARM/ARM64 builds to CI
* Ensure we don't use win-arm64 RID on `./mono --pack`
* Don't replace prof_ldflags on non-Linux
Stephen Toub [Thu, 13 Feb 2020 06:01:42 +0000 (22:01 -0800)]
Fix nullability warnings in System.Diagnostics.Process (#32211)
Ryan Lucia [Thu, 13 Feb 2020 04:11:06 +0000 (23:11 -0500)]
Add initial mono CODEOWNERS file (#32198)
* Add initial mono CODEOWNERS file
* Add Alexis to a few more dirs
* Add Egor to LLVM dirs
Santiago Fernandez Madero [Thu, 13 Feb 2020 03:01:26 +0000 (19:01 -0800)]
Disable System.Reflection.Emit.Tests in mono (#32201)
Stephen Toub [Thu, 13 Feb 2020 02:43:16 +0000 (18:43 -0800)]
Add span-based methods to Decimal (#32155)
* Add span-based methods to Decimal
* Address PR feedback
Add missing tests
* Address PR feedback
Matt Kotsenas [Thu, 13 Feb 2020 02:16:21 +0000 (21:16 -0500)]
Implement WaitForExitAsync for System.Diagnostics.Process (#1278)
* Add Process.WaitForExitAsync() and associated unit tests
Add a task-based `WaitForExitAsync()` for the `Process` class, and
duplicate existing `WaitForExit()` tests to add async versions.
In order to ensure that the `Exited` event is never lost, it is the
callers responsibility to ensure that `EnableRaisingEvents` is `true`
_prior_ to calling `WaitForExitAsync()`. A new
`InvalidOperationException` is introduced to enforce those semantics.
* Review feedback: Change WaitForExitAsync to return Task
Per review feedback, change `WaitForExitAsync` to return a `Task`
instead of `Task<bool>`. Now, to determine if the process has exited,
callers should check `HasExited` after the await, and cancellation
follows the async pattern of setting canceled on the task.
* Remove asserts on Task properties
Per code review feedback, remove the asserts that verify that the Task
returned by WaitForExitAsync is completed successfully / canceled, as
they're essentially Task tests and not relevant to WaitForExitAsync.
* Fix unit test to not create async void
Per code review feedback, fix the
MultipleProcesses_ParallelStartKillWaitAsync test to make work a
`Func<Task>` instead of an `Action` since we're await-ing it.
* Remove implicit delegate creation for ExitHandler
Per code review feedback, converting ExitHandler from a local function
to an `EventHandler` to avoid the extra delegate allocation to convert
between the types.
* Flow CancellationToken to OperationCanceledExceptions
Per code review, register the `TaskCompletionSource` with the
`CancellationToken` so that if an `OperationCanceledException` is thrown
the relevant token is available on
`OperationCanceledException.CancellationToken`.
To accomplish that the `TaskCompletionSourceWithCancellation` class
that's internal to `System.Net.Http` is moved to Common and consumed in
both places.
Unit tests are also updated to verify that the cancellation token passed
in is the same one returned from
`OperationCanceledException.CancellationToken`.
* Do not require EnableRaisingEvents to already be true
Per code review feedback, update `WaitForExitAsync` to not require the
user to call `EnableRaisingEvents` first.
Setting `EnableRaisingEvents` ourselves introduces the chance for an
exception in the case where the process has already exited, so I've
added a comment to the top of the method to detail the possible paths
through the code and added comment annotations for each case.
Lastly, I updated the unit tests to remove `EnableRaisingEvents` calls.
* Follow style guidelines in ProcessWaitingTests
Per code review feedback, update the new unit tests in
ProcessWaitingTests to follow style guidelines.
* Update tests to follow coding guidelines
Per code review feedback, update tests to follow coding guidelines,
simplify creating cancellation tokens, and verify synchronous completion
of tasks in the exited / canceled case.
* Update WaitForExitAsync to early out in canceled case
Per code review feedback, add an early out for a non-exited process when
canceled.
* Add a test for completion without a cancellation token
Per code review feedback, add a test for a process that completes
normally and doesn't use a canellation token.
* Address PR feedback in xmldocs
Per code review feedback, update the xmldocs for `WaitForExitAsync` to
specify the language keyword for "true", and add a `<returns>` element.
* Update xmldocs per code review feedback
Per code review feedback, update xmldocs to list other conditions that
can cause the function to return.
* Update function guards per code review feedback
Per code review feedback, update the method guards to span multiple
lines to adhere to style guidelines.
* Refactor test to verify async as well as sync cancellation
Per code review feedback, update
SingleProcess_TryWaitAsyncMultipleTimesBeforeCompleting to test both the
case where the token is canceled before creating the Task as well as
after the task is already created.
John Salem [Thu, 13 Feb 2020 02:14:46 +0000 (18:14 -0800)]
modify integral tryparse to use memcpy (#2295)
Stephen Toub [Thu, 13 Feb 2020 01:44:17 +0000 (17:44 -0800)]
Annotate System.Net.Ping for nullable reference types (#32131)
Justin Kotalik [Thu, 13 Feb 2020 01:29:54 +0000 (17:29 -0800)]
Call start earlier in System.Net.Quic (#32143)
Sergey Andreenko [Thu, 13 Feb 2020 00:23:56 +0000 (16:23 -0800)]
Implement the JIT part of the dynamic dictionary expansion feature. (#31957)
* Implement the JIT part of the dynamic dictionary expansion feature.
* review response.
* response review
Jan Vorlicek [Thu, 13 Feb 2020 00:05:52 +0000 (01:05 +0100)]
Display stack trace at stack overflow (#32167)
This is a fixed version of the reverted commit.
This change enables printing stack trace at stack overflow to the
console. In case multiple threads fail with stack overflow in parallel,
only the trace of the first thread is printed.
There are couple of interesting details:
The stack trace is printed in a compressed form. The algorithm finds the
largest sequence of frames starting from the top of the stack that is
repeated and prints it just once with the repeat count.
Only the first thread that hits stack overflow gets its stack printed.
On Linux, others threads that hit stack overflow are held spinning until
the process exits. This enables having a single preallocated stack for
handling stack overflow. On Windows, we just don't print the stack
trace, as it would be messy anyways due to the interleaving of output
from multiple threads and the value of getting stack overflow traces of
multiple threads is questionable.
On debug / checked builds for Windows, I had to bump the stack guarantee
by two pages and also enable setting the stack guarantee for all threads
in these build flavors.
At couple of places in the runtime, there were debug checks comparing
explicit frame and some other struct addresses to the current SP. These
were firing on Linux when we are running on an extra stack overflow
handling stack. I've fixed it by adding a flag to the Thread that
indicates that we are running on an alternate stack and these checks
should be skipped.
I've fixed the x86 Windows JIT_StackProbe to first probe at SP-4 and
then move the SP to leave more stack space for the handler.
I've fixed stack overflow check on Linux for some glibc / distros. The
stack limit returned by the pthread_attr_getstack returns the address of
the guard page in some of the glibc / distros and address of the last
accessible page before the guard page on others. So I've relaxed the
check to consider +/- 1 page around the stack limit to recognize sigsegv
as stack overflow.
Tomas Weinfurt [Wed, 12 Feb 2020 22:51:29 +0000 (14:51 -0800)]
remove dead code from SslStream (#32065)
* remove dead code from SslStream
* add equivalent ThrowIfExceptionalOrNotAuthenticated
Ryan Lucia [Wed, 12 Feb 2020 22:14:21 +0000 (17:14 -0500)]
[threading] Switch to a native implementation of LowLevelLifoSemaphore (#2098)
This change is motivated on two main fronts. The first is maintainability - the current managed implementation is difficult to understand and I worry diagnosing any potential issues would be a massive time sink. The second is performance - the current implementation appears to suffer from significant lock contention when running the TechEmpower plaintext benchmark. My hope is that the simpler, cleaner native implementation here will avoid both problems, but I don't want to merge it until we have benchmarking data. However, even if the numbers are similar, I still think it's worth merging just from a maintainability perspective.
The native LifoSemaphore implementation has only ever been tested on posix-like platforms, so Windows behavior is unknown. Currently the Windows implementation of LowLevelLifoSemaphore is very different, so unless we have need for the LifoSemaphore elsewhere in the runtime this isn't a concern.
Many thanks to @filipnavara for the initial implementation.
dotnet-maestro[bot] [Wed, 12 Feb 2020 20:09:11 +0000 (20:09 +0000)]
[master] Update dependencies from dotnet/arcade (#32115)
* Update dependencies from https://github.com/dotnet/arcade build
20200210.11
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20110.11
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20110.11
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20110.11
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20110.11
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20110.11
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20110.11
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20110.11
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20110.11
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20110.11
* Update dependencies from https://github.com/dotnet/arcade build
20200211.3
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20111.3
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20111.3
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20111.3
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20111.3
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20111.3
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20111.3
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20111.3
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20111.3
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20111.3
* Update dependencies from https://github.com/dotnet/arcade build
20200211.5
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20111.5
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20111.5
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20111.5
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20111.5
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20111.5
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20111.5
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20111.5
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20111.5
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20111.5
* React to changes from https://github.com/dotnet/arcade/pull/4799
* Downgrade compiler version
* Update dependencies from https://github.com/dotnet/arcade build
20200211.11
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.20111.11
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.20111.11
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.20111.11
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.20111.11
- Microsoft.DotNet.GenAPI - 5.0.0-beta.20111.11
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.20111.11
- Microsoft.DotNet.GenFacades - 5.0.0-beta.20111.11
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.20111.11
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.20111.11
* Disable serialization test on Mono
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Tomáš Rylek [Wed, 12 Feb 2020 19:55:03 +0000 (20:55 +0100)]
Minor R2RDump improvements (#32178)
Based on JanV's suggestions and based on my own composite R2R work
I have made a few small improvements in R2RDump:
1) When normalization is on, we newly also normalize transition
records for a particular IP address.
2) New option --hide-transitions suppresses transition information
in the disassembly completely.
3) Logic for parsing the new OwnerCompositeExecutable R2R section.
Thanks
Tomas
Stephen Toub [Wed, 12 Feb 2020 19:38:36 +0000 (11:38 -0800)]
Fix ActiveIssue issue number to use full Url (#32182)
This is the only one in the repo still using a number.
Anirudh Agnihotry [Wed, 12 Feb 2020 18:27:26 +0000 (10:27 -0800)]
adding outerBuild\InnerBuild structure for generate reference source (#31892)
* Using new custom target from arcade
* removing the outerbuild directory
Marek Safar [Wed, 12 Feb 2020 18:00:10 +0000 (19:00 +0100)]
Add basic RIDs for ios and tvos (#31953)
Viktor Hofer [Wed, 12 Feb 2020 17:04:52 +0000 (18:04 +0100)]
Bring back T4 templating service for tt files (#32172)
Viktor Hofer [Wed, 12 Feb 2020 17:04:22 +0000 (18:04 +0100)]
Disable constantly failing NetworkInformation test (#32176)
Matt Mitchell [Wed, 12 Feb 2020 16:56:29 +0000 (08:56 -0800)]
Update to preview branding (#31744)
Chris Ross [Wed, 12 Feb 2020 16:49:27 +0000 (08:49 -0800)]
Restructure shared http code (#32141)
Marco Rossignoli [Wed, 12 Feb 2020 16:25:10 +0000 (17:25 +0100)]
Fix AppDomain.SetPrincipalPolicy bug for new threads (#32104)
* fix principal policy for new threads
Fixes #31717
Tomáš Rylek [Wed, 12 Feb 2020 14:41:11 +0000 (15:41 +0100)]
Move getFieldInfo to CorInfoImpl.ReadyToRun (#32159)
Viktor Hofer [Wed, 12 Feb 2020 12:44:47 +0000 (13:44 +0100)]
Remove links to issues in old repositories