platform/upstream/dotnet/runtime.git
4 years agoUse SYSTEM_PRIVATE_CORELIB ifdef for consistency (#32366)
Jan Kotas [Sat, 15 Feb 2020 11:08:41 +0000 (03:08 -0800)]
Use SYSTEM_PRIVATE_CORELIB ifdef for consistency (#32366)

4 years agoRemove startup byte[] allocation in EventSource (#32276)
Stephen Toub [Sat, 15 Feb 2020 09:39:57 +0000 (01:39 -0800)]
Remove startup byte[] allocation in EventSource (#32276)

Only occurs once and is then cached, but it's hit on startup, and may as well remove it.

4 years agoAdd issues to the TODOs in S.T.Json source for better tracking and minor clean up...
Ahson Khan [Sat, 15 Feb 2020 09:13:11 +0000 (01:13 -0800)]
Add issues to the TODOs in S.T.Json source for better tracking and minor clean up (#32360)

* Remove redundant check in condition (&& true) since it doesn't change
the behavior.

* Add issues to the TODOs for better tracking and fix some that were easy.

* Update ActiveIssue and enable tests that are now fixed.

4 years agoAdd public ReferenceEqualityComparer API (#31753)
Levi Broderick [Sat, 15 Feb 2020 07:23:14 +0000 (23:23 -0800)]
Add public ReferenceEqualityComparer API (#31753)

4 years ago[llvmonly] Allow more direct calls. (#32214)
monojenkins [Sat, 15 Feb 2020 06:52:45 +0000 (01:52 -0500)]
[llvmonly] Allow more direct calls. (#32214)

Co-authored-by: Zoltan Varga <vargaz@gmail.com>
4 years agoCrossgen2: set 'X' bit in unwind info for ARM (#32346)
Anton Lapounov [Sat, 15 Feb 2020 06:41:29 +0000 (22:41 -0800)]
Crossgen2: set 'X' bit in unwind info for ARM (#32346)

4 years agoCleanup old links (#32319)
Bill Wert [Sat, 15 Feb 2020 06:17:38 +0000 (22:17 -0800)]
Cleanup old links (#32319)

* Remove old debug instructions about using dumpling

* remove dumpling reference

* stop invoking dumpling

* remove unused perf scripts

* more dumpling references

* Remove unused perf scripts and change instructions to point to perf repo

* add updated SOS link

4 years ago[llvm] Remove unused llvm.mono.load/store intrinsics. (#32280)
monojenkins [Sat, 15 Feb 2020 05:57:18 +0000 (00:57 -0500)]
[llvm] Remove unused llvm.mono.load/store intrinsics. (#32280)

Co-authored-by: Zoltan Varga <vargaz@gmail.com>
4 years agoDisable coreroot_determinism test (#32334)
Simon Nattress [Sat, 15 Feb 2020 02:42:37 +0000 (18:42 -0800)]
Disable coreroot_determinism test (#32334)

It's causing CI issues.

See https://github.com/dotnet/runtime/issues/32333

4 years agoKeep correct `fieldSeq` for 0-offset fields. (#32085)
Sergey Andreenko [Sat, 15 Feb 2020 02:25:12 +0000 (18:25 -0800)]
Keep correct `fieldSeq` for 0-offset fields. (#32085)

* a few renamings in fgMorphCopyBlock.

Clean up the existing code.

* Add zero field offsets where it was missed.

And don't add it as `ADD(,0)` in another.

* Add an optimization to lower to delete `LEA(addr, 0)`.

* Fix for x86 tests.

* Add a function header for `LowerNode`.

4 years agoSupport 32 byte alignment of code on xarch (#2249)
Andy Ayers [Sat, 15 Feb 2020 02:18:12 +0000 (18:18 -0800)]
Support 32 byte alignment of code on xarch (#2249)

* Support 32 byte alignment of code on xarch

Update jit and runtime to allow jit to ask for code to be 32 byte aligned.
Request 32 byte alignment for Tier1 methods on x86/x64.

Add minimal crossgen support; one can imagine requesting or choosing 32 byte
alignment for crossgenned code, but that is left as future work.

This should provide some measure of performance stability, in particular for
microbenchmarks or other code where performance depends crucially on a few
branches.

It may or may not improve performance. If/when there are regressions we can
contemplate updating the jit to add intra-method padding to address alignment
sensitive code layout (e.g. dotnet/coreclr#11607).

This will require a jit GUID update in addition to the changes here.

* restrict to larger methods with loops; don't update zapper

* new jit GUID

* fix target ifdef name

4 years ago[llvm] Fix LLVM JIT when used with multiple AppDomains. (#32219)
monojenkins [Sat, 15 Feb 2020 01:34:11 +0000 (20:34 -0500)]
[llvm] Fix LLVM JIT when used with multiple AppDomains. (#32219)

We currently reuse LLVM's command line parsing system to configure and
enable passes. When using the default code generator pass configuration,
the `ImplicitNullChecks` and `X86CallFrameOptimization` passes can only
be enabled or disabled via the command line argument parser: the
`cl::opt`s controlling these (and many other) passes are private to
their translation units, and `TargetPassConfig`/`X86PassConfig` read
from these `cl::opt`s with no other means to override these values.

Unfortunately, some LLVM command line options have restrictions on the
number of times they may be set, and running the LLVM command line
argument parser more than once can fail, because the 'number of
occurrences' counter is stored in each global `cl::opt`. This causes
several tests to fail--one such test is unhandled-exception-7.cs.

This change:
- removes the lazy LLVM JIT initialization logic and instead
  runs this initialization once during `mini_init`,

- moves some stray JIT-only code from mini-llvm.c to llvm-jit.cpp,

- wraps the declarations in domain-internals.h with a
  `G_BEGIN_DECLS`/`G_END_DECLS` pair, so that they avoid name
  mangling when included in C++ source, and

- removes `exception_cb` and `emitted_cb`: neither were actually used
  by live code.

4 years ago[llvmonly] Avoid adding the aot init wrappers to the method table, its not needed...
monojenkins [Sat, 15 Feb 2020 01:33:17 +0000 (20:33 -0500)]
[llvmonly] Avoid adding the aot init wrappers to the method table, its not needed. (#32262)

Co-authored-by: Zoltan Varga <vargaz@gmail.com>
4 years agoFix and optimize EscapeUnescapeIri (#32025)
Miha Zupan [Sat, 15 Feb 2020 00:47:34 +0000 (01:47 +0100)]
Fix and optimize EscapeUnescapeIri (#32025)

* Remove byte[] allocation per encoded character

* Remove dead code from EscapeUnescapeIri

* Use int instead of IntPtr for stack buffer

* Use sizeof(int) instead of 4 as const

* Fix EscapeUnescapeIri for escaped surrogate pairs

4 years agoFix typo in S.T.J namespace in the writable dom spec (#32345)
Ahson Khan [Sat, 15 Feb 2020 00:33:55 +0000 (16:33 -0800)]
Fix typo in S.T.J namespace in the writable dom spec (#32345)

4 years agoShow all files in file explorer and some extent of refactoring (#32312)
Anirudh Agnihotry [Sat, 15 Feb 2020 00:13:58 +0000 (16:13 -0800)]
Show all files in file explorer and some extent of refactoring (#32312)

* Show all files in file explorer and some extent of refactoring

* adding comment

* improving the comment

Co-Authored-By: Santiago Fernandez Madero <safern@microsoft.com>
* Update src/libraries/Directory.Build.targets

Co-Authored-By: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
4 years agoSingleFile bundles: Ensure extraction mappings are closed on Windows. (#2272)
Swaroop Sridhar [Fri, 14 Feb 2020 23:38:20 +0000 (15:38 -0800)]
SingleFile bundles: Ensure extraction mappings are closed on Windows. (#2272)

When running a single-file app, the AppHost mmap()s itself in order
to read its contents and extract the embedded contents.

The Apphost must always map its contents in order to read the headers,
but doesn't always extract the contents, because previously extracted
files are re-used when available.

In the case where apphost doesn't extract, the file mapping wasn't
immediately closed on Windows. This prevents the app from being renamed
while running -- an idiom used while updating the app in-place.

4 years agoUpdate Pull Request docs for more detailed info (#32336)
Santiago Fernandez Madero [Fri, 14 Feb 2020 23:32:14 +0000 (15:32 -0800)]
Update Pull Request docs for more detailed info (#32336)

4 years agofix buffer handling in Tls handshake (#32267)
Tomas Weinfurt [Fri, 14 Feb 2020 23:09:47 +0000 (15:09 -0800)]
fix buffer handling in Tls handshake (#32267)

* fix buffer handling in Tls handshake

* feedback from review

4 years agoMerge pull request #32207 from saurabh500/soln2fixAV
Saurabh Singh [Fri, 14 Feb 2020 22:52:54 +0000 (14:52 -0800)]
Merge pull request #32207 from saurabh500/soln2fixAV

AV Fix for OleDb x86

4 years agoDo not deserialize using internal or private default ctors for all supported TFMs...
Ahson Khan [Fri, 14 Feb 2020 22:44:24 +0000 (14:44 -0800)]
Do not deserialize using internal or private default ctors for all supported TFMs. (#32213)

* Do not deserialize using internal or private default ctors for all
supported TFMs.

* Add a test with generic class with protected internal ctor and clean up.

* Make test classes private and add Debug.Fail instead of throwing.

4 years ago[interp] Fix filter clauses (#32192)
monojenkins [Fri, 14 Feb 2020 22:40:09 +0000 (17:40 -0500)]
[interp] Fix filter clauses (#32192)

When executing a filter we create a new interp frame, that is a duplicate of the original frame that contains the filter. Once the execution of the filter is finished, we were copying the stack contents back to the base frame. The problem with this is that when the filter is run, the stack is not completely unwinded, meaning that later we can still run a finally block in a frame called by the base frame. This finally block can access the stack arguments, which would reside on the stack of base frame. This means that we must not override the stack of the base frame, only the locals.

Fixes some tests from System.Linq.Expressions suite.

Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
4 years agoMerge pull request #32314 from DrewScoggins/AddPRPerf
Drew Scoggins [Fri, 14 Feb 2020 21:57:02 +0000 (13:57 -0800)]
Merge pull request #32314 from DrewScoggins/AddPRPerf

Add PR trigger for runtime performance

4 years agoAnnotate System.Security.Cryptography.Csp for nullable (#32140)
buyaa-n [Fri, 14 Feb 2020 21:52:33 +0000 (13:52 -0800)]
Annotate System.Security.Cryptography.Csp for nullable (#32140)

* Annotate System.Security.Cryptography for nullable

4 years agoChange http:// to https:// across System.Text.Encodings.Web (#32321)
Levi Broderick [Fri, 14 Feb 2020 21:35:34 +0000 (13:35 -0800)]
Change  to https:// across System.Text.Encodings.Web (#32321)

4 years ago[Arm64] Add ASIMD pairwise reduce instructions (#32277)
Egor Chesakov [Fri, 14 Feb 2020 21:22:34 +0000 (13:22 -0800)]
[Arm64] Add ASIMD pairwise reduce instructions (#32277)

* fmaxp

* fmaxnm

* fmaxnmp

* fmaxnmv

* fmaxv

* fminp

* fminnm

* fminnmp

* fminnmv

* fminv

* smaxp

* sminp

* umaxp

* uminp

4 years agofix infinite recursion in crossgen2 on ARM (#32227)
Yaroslav Yamshchikov [Fri, 14 Feb 2020 21:11:01 +0000 (00:11 +0300)]
fix infinite recursion in crossgen2 on ARM (#32227)

4 years agoMerge pull request #32221 from vitek-karas/FixProbeOrderDoc
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

4 years agoFix step numbers
vitek-karas [Fri, 14 Feb 2020 20:30:05 +0000 (12:30 -0800)]
Fix step numbers

4 years agoApply suggestions from code review
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>
4 years agoAnnotate Microsoft.VisualBasic.Core ref assembly for nullable reference types (#32200)
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>
4 years agoJIT: Optimize "constant_string".Length (#1378)
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

4 years agoUsed the wrong include/exclude block
Drew Scoggins [Fri, 14 Feb 2020 19:16:36 +0000 (11:16 -0800)]
Used the wrong include/exclude block

4 years agoFix OOM in R2RDump (#32274)
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.

4 years ago[llvmonly] Emit stubs for methods which failed compilation. (#32162)
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>
4 years agoAdd PR trigger for runtime performance
Drew Scoggins [Fri, 14 Feb 2020 18:55:23 +0000 (10:55 -0800)]
Add PR trigger for runtime performance

4 years agoFix CG2 framework compilation on Linux / OSX
Tomáš Rylek [Fri, 14 Feb 2020 18:45:43 +0000 (19:45 +0100)]
Fix CG2 framework compilation on Linux / OSX

4 years agoGet tests running for HTTP/3 (#31898)
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.

4 years ago[loader] Move AssemblyDependencyResolver to shared (#32253)
Ryan Lucia [Fri, 14 Feb 2020 18:26:16 +0000 (13:26 -0500)]
[loader] Move AssemblyDependencyResolver to shared (#32253)

4 years agoRemove some char[] allocations from Split usage (#32301)
Stephen Toub [Fri, 14 Feb 2020 18:21:50 +0000 (10:21 -0800)]
Remove some char[] allocations from Split usage (#32301)

4 years agoRemove a char[] allocation from HttpUtility (#32298)
Stephen Toub [Fri, 14 Feb 2020 18:20:46 +0000 (10:20 -0800)]
Remove a char[] allocation from HttpUtility (#32298)

4 years agofixing the order of targetFrameworks to show appropriate files in the VS (#32206)
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>
4 years agoEnable cryptography tests hitting libssl issue (#32255)
Santiago Fernandez Madero [Fri, 14 Feb 2020 17:52:31 +0000 (09:52 -0800)]
Enable cryptography tests hitting libssl issue (#32255)

4 years agoMerge pull request #32174 from eiriktsarpalis/annotate-system-security-cryptography...
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

4 years agoNullable annotate System.Security.Cryptography.Cng (#32039)
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

4 years agoXml use strongly typed struct enumerators (#32296)
Ben Adams [Fri, 14 Feb 2020 17:41:30 +0000 (17:41 +0000)]
Xml use strongly typed struct enumerators (#32296)

4 years agoAdd Interlocked unsigned and bitwise operations (#32216)
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

4 years agofix solution build (#32259)
Anirudh Agnihotry [Fri, 14 Feb 2020 17:05:50 +0000 (09:05 -0800)]
fix solution build (#32259)

4 years agoForcibly disable use of libstdc++ C++11 ABI on Mono LLVM (#32234)
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

4 years agoSystem.Drawing.Common: Assert libgdiplus 6.0.1 on macOS unit tests (#335)
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

4 years agoRemove dead code in Uri (#31883)
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

4 years agoFixed few issues within Native/Unix/configure.cmake (#32037)
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

4 years agoFix broken MSDN blogs links (#32273)
Levi Broderick [Fri, 14 Feb 2020 16:34:15 +0000 (08:34 -0800)]
Fix broken MSDN blogs links (#32273)

4 years agoUpdate issues.targets issue numbers for merged repo (#32236)
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

4 years agoHelp compiler enforce nullability annotations (#32090)
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.

4 years agoRemove lock allocation from SafeSocketHandle on Windows (#32275)
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.

4 years agoRemove a couple allocations from Socket.Connect/Bind/etc. (#32271)
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.

4 years agoAPI review URL should be HTTPS, not HTTP (#32281)
Levi Broderick [Fri, 14 Feb 2020 16:07:46 +0000 (08:07 -0800)]
API review URL should be HTTPS, not HTTP (#32281)

4 years agoRevert "address feedback"
Eirik Tsarpalis [Thu, 13 Feb 2020 15:17:25 +0000 (15:17 +0000)]
Revert "address feedback"

This reverts commit d3c21fa00063683856f35517598ca22423edcd28.

4 years agoaddress feedback
Eirik Tsarpalis [Thu, 13 Feb 2020 10:44:27 +0000 (10:44 +0000)]
address feedback

4 years agoNullable annotate System.Security.Cryptography.OpenSSL
Eirik Tsarpalis [Wed, 12 Feb 2020 14:07:31 +0000 (14:07 +0000)]
Nullable annotate System.Security.Cryptography.OpenSSL

4 years agoaddress feedback
Eirik Tsarpalis [Fri, 14 Feb 2020 15:32:29 +0000 (15:32 +0000)]
address feedback

4 years agoaddress feedback
Eirik Tsarpalis [Fri, 14 Feb 2020 15:26:41 +0000 (15:26 +0000)]
address feedback

4 years agoaddress feedback
Eirik Tsarpalis [Tue, 11 Feb 2020 17:07:52 +0000 (17:07 +0000)]
address feedback

4 years agoremove erroneous assertion
Eirik Tsarpalis [Tue, 11 Feb 2020 16:19:01 +0000 (16:19 +0000)]
remove erroneous assertion

4 years agoupdate ref signatures
Eirik Tsarpalis [Tue, 11 Feb 2020 13:48:50 +0000 (13:48 +0000)]
update ref signatures

4 years agoadd nullable directives to common source files
Eirik Tsarpalis [Mon, 10 Feb 2020 21:26:59 +0000 (21:26 +0000)]
add nullable directives to common source files

4 years agonullable annotate System.Security.Cryptography.Cng
Eirik Tsarpalis [Mon, 10 Feb 2020 19:33:28 +0000 (19:33 +0000)]
nullable annotate System.Security.Cryptography.Cng

4 years ago[debugger] Enabling PPDB on Wasm. (#32188)
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>
4 years agoLinux NIC speed type made long to fit the actual value (#32223)
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.

4 years agoRe-enable Windows ARM32 jobs (#32261)
Tomáš Rylek [Fri, 14 Feb 2020 08:27:47 +0000 (09:27 +0100)]
Re-enable Windows ARM32 jobs (#32261)

4 years agoFix arm cross OS DAC compilation (#31903)
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

4 years agoAllow QuicListener to accept files paths for options (#32088)
Justin Kotalik [Fri, 14 Feb 2020 05:26:48 +0000 (21:26 -0800)]
Allow QuicListener to accept files paths for options (#32088)

4 years agoFix up some nullability annotations to remove unnecessary null-forgiving operations...
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 :)

4 years agoMove common project reference to the S.T.E.W ref into a separate ItemGroup. (#32210)
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.

4 years agoRename JsonPropertyInfo<TConverter> to JsonPropertyInfo<TTypeToConvert>. (#32209)
Ahson Khan [Fri, 14 Feb 2020 04:42:10 +0000 (20:42 -0800)]
Rename JsonPropertyInfo<TConverter> to JsonPropertyInfo<TTypeToConvert>. (#32209)

4 years agoRevert "Remove duplicate code"
Saurabh Singh [Fri, 14 Feb 2020 00:16:00 +0000 (16:16 -0800)]
Revert "Remove duplicate code"

This reverts commit 7fb61b3f86819f67aff16c1a1ad10ea25b595050.

4 years agoRemove duplicate code
Saurabh Singh [Thu, 13 Feb 2020 23:59:23 +0000 (15:59 -0800)]
Remove duplicate code

4 years agoMove X86 check to utilities
Saurabh Singh [Thu, 13 Feb 2020 23:56:15 +0000 (15:56 -0800)]
Move X86 check to utilities

4 years agoChange to type casting instead of marshalling
Saurabh Singh [Thu, 13 Feb 2020 23:52:55 +0000 (15:52 -0800)]
Change to type casting instead of marshalling

4 years agoVector abi tests and reverse pinvoke fixes (#32034)
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

4 years agoUpdate CODEOWNERS and scripts (#32251)
Chris Ross [Thu, 13 Feb 2020 23:29:41 +0000 (15:29 -0800)]
Update CODEOWNERS and scripts (#32251)

4 years agouse proper IO in ssl handshake (#32013)
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

4 years agoMerge pull request #32184 from steveharter/FileCleanup
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)

4 years agoRemove dead code in S.R.S.Formatters.Tests (#32229)
Viktor Hofer [Thu, 13 Feb 2020 21:27:01 +0000 (22:27 +0100)]
Remove dead code in S.R.S.Formatters.Tests (#32229)

4 years agoSkip res. intensive BinaryFormatter tests on chk (#32245)
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

4 years ago[runtime] Disable assertion messages for g_assertf as well if DISABLE_ASSERT_MESSAGES...
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>
4 years ago[mini] Move netcore hosting functionality into separate file (#32136)
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

4 years agoFix handling of non-reg-passed HFA (#32180)
Carol Eidt [Thu, 13 Feb 2020 18:56:30 +0000 (10:56 -0800)]
Fix handling of non-reg-passed HFA (#32180)

Fix #31673

4 years agoDisabling x86 Win7&8.1 helix test runs (#32233)
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.

4 years agoAdditional renaming and csproj changes
Steve Harter [Wed, 12 Feb 2020 17:33:07 +0000 (11:33 -0600)]
Additional renaming and csproj changes

4 years agoRename converter types
Steve Harter [Wed, 12 Feb 2020 17:30:20 +0000 (11:30 -0600)]
Rename converter types

4 years agoRename and move converter files
Steve Harter [Wed, 12 Feb 2020 16:30:38 +0000 (10:30 -0600)]
Rename and move converter files

4 years agoClean up improper usage of linguistic string functions (#31968)
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

4 years agoFurther removal of old framework aliases in docs
Viktor Hofer [Thu, 13 Feb 2020 17:17:30 +0000 (18:17 +0100)]
Further removal of old framework aliases in docs

4 years agoRemove old frameworks and use dotnet build in docs
Viktor Hofer [Thu, 13 Feb 2020 17:15:14 +0000 (18:15 +0100)]
Remove old frameworks and use dotnet build in docs

4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20200212.7 (#32224)
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

4 years agoUpdate to the latest available Intellisense transport package. (#32218)
Ahson Khan [Thu, 13 Feb 2020 16:42:36 +0000 (08:42 -0800)]
Update to the latest available Intellisense transport package. (#32218)

4 years agoRemove unused variables and follow coding style (#677)
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

4 years ago[tests] Disable bug-10127.exe runtime test on Windows x64 (#32222)
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>