platform/upstream/dotnet/runtime.git
4 years agoCorrect test to account for PLINQ Zip unordered behavior (#39553)
Stephen A. Imhoff [Sat, 18 Jul 2020 01:58:35 +0000 (18:58 -0700)]
Correct test to account for PLINQ Zip unordered behavior (#39553)

4 years agoAdd Convert.ToHexString/FromHexString
Nicolas Portmann [Sat, 18 Jul 2020 00:12:21 +0000 (02:12 +0200)]
Add Convert.ToHexString/FromHexString

Add methods to convert between hexadecimal strings and bytes, and converts internal usage to use those APIs when possible, or reuse the shared code as helpers otherwise.

4 years agoDisable slow tests under GCStress (#39545)
Bruce Forstall [Sat, 18 Jul 2020 00:11:46 +0000 (17:11 -0700)]
Disable slow tests under GCStress (#39545)

Some tests are very slow under GCStress for some platforms, especially
Linux arm32 and for GCStress=3. Disable these tests under GCStress.

https://github.com/dotnet/runtime/issues/2231

4 years agoMark Obsoletions for .NET 5 (#39269)
Jeff Handley [Sat, 18 Jul 2020 00:09:29 +0000 (17:09 -0700)]
Mark Obsoletions for .NET 5 (#39269)

* Mark new obsoletions for .NET 5; update existing obsoletions

* Exclude DirectoryServicesPermission/DirectoryServicesPermissionAttribute from obsoletions for now

* No need to restore SYSLIB0003 at end of Forwards files

* Use a common Obsoletions.cs file for all SYSLIB obsoletions

* Resurrect CER code behind #ifdef in EventSource

* Mark GlobalAssemblyCache overrides as Obsolete

* Suppress Thread.Abort() error in ImageAnimator.Unix.cs

* Unconditionally mark RoAssembly.GlobalAssemblyCache as obsolete

* Rename MSLIB0001 to SYSLIB0001 in ref assembly

* Suppress obsoletion warnings in tests

* Adopt a uniform #ifdef for NET50_OBSOLETIONS

* Fix BinaryFormatter obsoletion message after the rebase

* Use SYSTEM_PRIVATE_CORELIB constant instead of NETCOREAPP

* Remove the code comment on the ifdef

* Apply feedback related to CER obsoletions

* Apply feedback related to CAS

* Update ref assembly to reflect SecurityManager obsoletion

* Fix regression in System.IO.Pipes.NamedPipeServerStream.Windows.RunAsClient

4 years agoRevert "Kill REG_PROFILER_RET_SCRATCH (#37679)" (#39335)
Andy Ayers [Fri, 17 Jul 2020 23:21:27 +0000 (16:21 -0700)]
Revert "Kill REG_PROFILER_RET_SCRATCH (#37679)" (#39335)

This reverts commit b179e198403adbfbf275a40741cef7b252cda186.

4 years agoFix liveness of FrameListRoot (#39452)
Carol Eidt [Fri, 17 Jul 2020 23:19:57 +0000 (16:19 -0700)]
Fix liveness of FrameListRoot (#39452)

* Fix liveness of FrameListRoot

The FrameListRoot variable isn't used if `call->IsSuppressGCTransition()`, but liveness wasn't checking this.

Fix #39221

4 years agoGuard SseImpl method body with IsSupported check (#39246)
Andy Ayers [Fri, 17 Jul 2020 23:18:52 +0000 (16:18 -0700)]
Guard SseImpl method body with IsSupported check (#39246)

Though this method is only ever callable by code that's already done the right
IsSupported check, add a redundant check to the method itself, so that when
crossgenning SPC on non-xarch platforms we won't try and compile the xarch
specific parts of this method.  This should save some time and a bit of file
size for non-xarch SPCs.

See notes on #38894 for context.

4 years agoEnable FEATURE_METADATA_VERIFY_LAYOUTS (#39451)
Steve MacLean [Fri, 17 Jul 2020 20:38:54 +0000 (16:38 -0400)]
Enable FEATURE_METADATA_VERIFY_LAYOUTS (#39451)

* Enable FEATURE_METADATA_VERIFY_LAYOUTS

Feature was apparently disabled due to use of MSVC specific
preprocessor macros.

Rewrite macros to be standards compliant.

Remove *_ESCAPED macros

Add USING_ALIAS(aliasName, typeName)

Fix friend class declaration

* Fix DataTargetReader::AlignBase()

DAC_ALIGNAS macro was used to force MSVC and clang/gcc
compilers layouts to match.  Update DataTargetReader::AlignBase()
assumptions based on new layouts

4 years ago[mono] Fix an assert which happens when marshalling ftnptr types. (#39517)
Zoltan Varga [Fri, 17 Jul 2020 20:02:55 +0000 (16:02 -0400)]
[mono] Fix an assert which happens when marshalling ftnptr types. (#39517)

MonoClass-es created for ftnptr types have an implicit pointer field so their size is not
the same as the computed size.

4 years agoFix libraries run-test-job dependencies (#39536)
Santiago Fernandez Madero [Fri, 17 Jul 2020 20:02:34 +0000 (13:02 -0700)]
Fix libraries run-test-job dependencies (#39536)

4 years ago Add telemetry to System.Net.NameResolution (#38409)
Miha Zupan [Fri, 17 Jul 2020 19:05:41 +0000 (21:05 +0200)]
 Add telemetry to System.Net.NameResolution (#38409)

* Add telemetry to System.Net.NameResolution

* Rename hostName to hostNameOrAddress

* Use constants for event IDs

* Address PR feedback

* Reduce overhead when only the counter is needed

* Make NameResolution Telemetry an activity

* Remove redundant check

* Fix indentation

* Check IsEnabled before AfterResolution to help linker

* Add Telemetry tests

* Throws => ThrowsAny

4 years agoDisable Add_TakeFromAnotherThread_ExpectedItemsTaken for TailcallStress (#39399)
Bruce Forstall [Fri, 17 Jul 2020 18:19:42 +0000 (11:19 -0700)]
Disable Add_TakeFromAnotherThread_ExpectedItemsTaken for TailcallStress (#39399)

Issue: https://github.com/dotnet/runtime/issues/39398

4 years agoSmall performance improvment (#38485)
Youssef Victor [Fri, 17 Jul 2020 16:53:20 +0000 (18:53 +0200)]
Small performance improvment (#38485)

* Small performance improvment

* Update Matrix3x2 as well

4 years agoAdd a --enable-minimal=eventpipe configure option. Disable eventpipe on wasm. (#38991)
Zoltan Varga [Fri, 17 Jul 2020 16:28:21 +0000 (12:28 -0400)]
Add a --enable-minimal=eventpipe configure option. Disable eventpipe on wasm. (#38991)

* Add a --enable-minimal=eventpipe configure option. Disable eventpipe on wasm.

* Address review comments.

* Disable FeaturePerfTracing for wasm.

* Disable calls to ep_init()/ep_cleanup() as well.

4 years ago[wasm] Enable System.Resources.Extensions.Tests and System.Resources.ResourceManager...
Maxim Lipnin [Fri, 17 Jul 2020 15:55:41 +0000 (18:55 +0300)]
[wasm] Enable System.Resources.Extensions.Tests and System.Resources.ResourceManager.Tests test suites (#39513)

4 years agoStop gating HelixPreCommands behind an always-false conditional. (#38642)
Jo Shields [Fri, 17 Jul 2020 15:08:47 +0000 (11:08 -0400)]
Stop gating HelixPreCommands behind an always-false conditional. (#38642)

Fixes interpreter test lane not running on interpreter

4 years ago[Wasm] Additional signatures for SkiaSharp interop + More (#39494)
monojenkins [Fri, 17 Jul 2020 14:48:51 +0000 (10:48 -0400)]
[Wasm] Additional signatures for SkiaSharp interop + More (#39494)

This change adds the set of signatures required for SkiaSharp to work untouched using the signatures already provided for the existing platform.

Co-authored-by: mattleibow <mattleibow@users.noreply.github.com>
4 years agoAdd Record tests to NetFx (#39477)
Steve Harter [Fri, 17 Jul 2020 14:06:18 +0000 (09:06 -0500)]
Add Record tests to NetFx (#39477)

4 years agoFix Mono RuntimeType to handle conversion between enums of same underlying type....
Johan Lorensson [Fri, 17 Jul 2020 13:32:21 +0000 (15:32 +0200)]
Fix Mono RuntimeType to handle conversion between enums of same underlying type. (#39207)

runtime\src\tests\tracing\common\TraceConfiguration.cs tries to call
a constructor of using type System.Diagnostics.Tracing.EventPipeSerializationFormat
with a different (but compatbile) enum type using reflection. Both enums
are of underlying type, Int32, but the call fails on Mono since it fails
to recognize that the two enums are compatible in CheckValue.

Fix will make sure call to IsConvertibleToPrimitiveType uses underlying
type as target type when checking if current value is convertible to a
compatible value.

4 years agomark Windows-specific APIs as such (#39265)
Adam Sitnik [Fri, 17 Jul 2020 13:11:50 +0000 (15:11 +0200)]
mark Windows-specific APIs as such (#39265)

* move all OSPlatformAttributes to a single file so they can be easily referenced in < .NET 5 libraries

* Adds System.Runtime.Versioning*Platform* annotation attributes to < .NET 5 builds

* introduce MinimiumSupportedWindowsPlatform

* introduce IsWindowsSpecific setting that adds MinimumOSPlatform attribute for Windows Specific libraries

* mark all Windows-specific libraries as such

* annotate Windows-specific System.Console methods and properites

* annotate Windows-specific DpapiProtectedConfigurationProvider type

* annotate throwing Windows-specific APIs from System.Diagnostics.Process namespace

* annotate throwing Windows-specific APIs from System.IO.MemoryMappedFiles namespace

* annotate Windows-specific APIs from System.IO.Pipes namespace

* the new attributes should support enums

* annotate Windows-specific APIs from HttpListenerTimeoutManager class

* annotate Windows-specific APIs from System.Net.Sockets namespace

* annotate Windows-specific APIs from System.Runtime.InteropServices namespace

* annotate Windows-specific APIs from System.Security.Cryptography.Csp namespace

* annotate Windows-specific APIs from System.Security.Cryptography.X509Certificates namespace

* annotate Windows-specific APIs from System.Threading namespace

* address code review feedback: dont introduce new constants, reuse existing SYSTEM_PRIVATE_CORELIB

* code review: import the namespace, simplify the attribute name

* add missing Socket.DuplicateAndClose and Socket(SocketInformation)

* fix the test name (it does not throw)

* add missing DriveInfo.set_VolumeLabel

* add System.IO.FileSystem File Encrypt and Descrypt methods

* simplify the < .NET 5 check

* enable nullable in explicit way as it's not enabled in all the projects where this file is included

* include platform attributes in projects that ask for it in explicit way

* set IncludePlatformAttributes to true for projects that include files from other projects

* use suggestions from Viktor and Santi

Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
4 years agoFix IsPrerelease condition to be aligned with rest of utf8string code (#39511)
Jan Jahoda [Fri, 17 Jul 2020 12:10:15 +0000 (14:10 +0200)]
Fix IsPrerelease condition to be aligned with rest of utf8string code (#39511)

Co-authored-by: Jan Jahoda <jajahoda@.microsoft.com>
4 years agodelete test project. (#39501)
Sergey Andreenko [Fri, 17 Jul 2020 08:00:49 +0000 (01:00 -0700)]
delete test project. (#39501)

4 years agofix build for netcoreapp3.0 (#39447)
Eirik Tsarpalis [Fri, 17 Jul 2020 07:01:25 +0000 (08:01 +0100)]
fix build for netcoreapp3.0 (#39447)

4 years agomark them as extensions methods in the src (#39498)
Anirudh Agnihotry [Fri, 17 Jul 2020 06:48:27 +0000 (23:48 -0700)]
mark them as extensions methods in the src (#39498)

* use static method calls

* remove unnecessary helpers calls

4 years agoRevert "Adding support for constrained open generics to DI (#34393)" (#39486)
Maryam Ariyan [Fri, 17 Jul 2020 05:08:55 +0000 (22:08 -0700)]
Revert "Adding support for constrained open generics to DI (#34393)" (#39486)

This reverts commit 211bc884dbadb8765699554257699f5c82d21f6d.

4 years agoFix license header in gcpriv.h (#39496)
Jan Kotas [Fri, 17 Jul 2020 04:21:55 +0000 (21:21 -0700)]
Fix license header in gcpriv.h (#39496)

4 years agoremove ignored reference (#39459)
Anirudh Agnihotry [Fri, 17 Jul 2020 03:20:04 +0000 (20:20 -0700)]
remove ignored reference (#39459)

4 years agoAddress late feedback for #39320. (#39387)
Eugene Rozenfeld [Fri, 17 Jul 2020 02:50:57 +0000 (19:50 -0700)]
Address late feedback for #39320. (#39387)

4 years agoEnsure Firing Activity Stop event before setting the current Activity (#39400)
Tarek Mahmoud Sayed [Fri, 17 Jul 2020 02:10:41 +0000 (19:10 -0700)]
Ensure Firing Activity Stop event before setting the current Activity (#39400)

4 years agoUpdate MSBuild Traversal SDK that contains StopOnFirstFailure support (#39481)
Santiago Fernandez Madero [Fri, 17 Jul 2020 02:02:43 +0000 (19:02 -0700)]
Update MSBuild Traversal SDK that contains StopOnFirstFailure support (#39481)

4 years agoFix Crossgen2 compilation in case input files are on different drives (#39441)
Anton Lapounov [Fri, 17 Jul 2020 01:29:38 +0000 (18:29 -0700)]
Fix Crossgen2 compilation in case input files are on different drives (#39441)

Crossgen2 would try to override input files if they are on a different drive or a share with respect to _compositeRootPath.

4 years agofix exception strings. (#39491)
Manish Godse [Fri, 17 Jul 2020 01:18:35 +0000 (18:18 -0700)]
fix exception strings. (#39491)

4 years agoFix rare case of 'Reading is already in progress' after canceling another Read (...
Brennan [Fri, 17 Jul 2020 01:12:39 +0000 (18:12 -0700)]
Fix rare case of 'Reading is already in progress' after canceling another Read (#39336)

4 years agoDisable System.Runtime tests that use binary formatter on wasm (#39487)
Santiago Fernandez Madero [Fri, 17 Jul 2020 01:03:50 +0000 (18:03 -0700)]
Disable System.Runtime tests that use binary formatter on wasm (#39487)

4 years agoUse one-shot hash functions where possible. (#39455)
Kevin Jones [Fri, 17 Jul 2020 00:18:40 +0000 (20:18 -0400)]
Use one-shot hash functions where possible. (#39455)

4 years agoLinking native libraries into superhost (#38684)
Vladimir Sadov [Thu, 16 Jul 2020 23:29:12 +0000 (16:29 -0700)]
Linking native libraries into superhost (#38684)

* native libs location

* pass artifacts locations as CMake variables.

* Link native libs

* use LibrariesConfiguration to discover libraries artifacts

* redirect to current exe

* remove bundled binaries from the  netcoreapp/pkg

* delete exports file

* no bundling of native libs on OSX

* only link native libs on Linux

* Support linking of coreclr on Linux only

* PR feedback

* move the shim to dllimport.cpp

* Use library names vs. file names

* removed ShouldRedirectToCurrentLibrary. NULL library name in PAL_LoadLibrary will be always considered self-referring.

4 years agoRemoving unused Resources from System.Threading.Overlapped (#39395)
Jose Perez Rodriguez [Thu, 16 Jul 2020 23:10:57 +0000 (16:10 -0700)]
Removing unused Resources from System.Threading.Overlapped (#39395)

* Removing unused Resources from System.Threading.Overlapped

* Removing unused code from S.T.O.csproj and add Resources check to test

4 years agoAdding support for constrained open generics to DI (#34393)
Jimmy Bogard [Thu, 16 Jul 2020 23:08:35 +0000 (18:08 -0500)]
Adding support for constrained open generics to DI (#34393)

4 years agoICU integration and asset loading overhaul (#37971)
Katelyn Gadd [Thu, 16 Jul 2020 23:02:10 +0000 (16:02 -0700)]
ICU integration and asset loading overhaul (#37971)

This PR overhauls runtime startup/asset loading and adds support for ICU integration.

The mono-config.js format is reworked and simplified, with new functionality added:

    Individual assets can be loaded from one or more remote sources with configurable fallback behavior
    In addition to the existing support for loading assemblies, you can now pre-load arbitrary files into the native heap or into emscripten's virtual file system. VFS support previously only existed in runtime-test.js but now is available to any consumer of dotnet.js.
    Assets can have a virtual path set so that their application-facing path does not necessarily have to match their path on the server.
    One or more ICU data archives can be added to the assets list and will be automatically loaded and used to enable ICU-based globalization support.
    Many configuration knobs that previously required API calls can now be set declaratively in the configuration file (environment variables, etc.)

WasmAppBuilder is updated to add ICUDataFiles and RemoteSources parameters that can be used to add the associated information to the config file declaratively from a msbuild project.

Various adjustments are made to existing tests and test cases so that they will pass with the addition of ICU integration.

Co-authored-by: EgorBo <egorbo@gmail.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
4 years agoAdvSimd support for System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar...
Carlos Sanchez Lopez [Thu, 16 Jul 2020 22:57:39 +0000 (15:57 -0700)]
AdvSimd support for System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar (#39050)

* AdvSimd support for System.Text.Unicode.Utf16Utility.GetPointerToFirstInvalidChar

* Move using directive outside #if.
Improve Arm64MoveMask.

* Change overloads

* UIn64 in Arm64MoveMask

* Build error implicit conversion fix

* Rename method and use simpler version

* Use ShiftRightArithmetic instead of CompareEqual + And.

* Remove unnecessary comment

* Add missing shims causing Linux build to fail

4 years agoMove libraries test build to product build (#39402)
Santiago Fernandez Madero [Thu, 16 Jul 2020 22:02:32 +0000 (15:02 -0700)]
Move libraries test build to product build (#39402)

* Move libraries test build to product build

* Publish artifacts needed by coreclr tests

* Don't build corelib anymore since it is a P2P from libraries now

4 years agoAdd tests for runtimepack type RuntimeLibraries. (#37397)
Sean Hall [Thu, 16 Jul 2020 22:01:55 +0000 (08:01 +1000)]
Add tests for runtimepack type RuntimeLibraries. (#37397)

Add documentation to contructor in RuntimeLibrary.

4 years agoThrow when Rfc2898DeriveBytes extract limit has been exceeded
Kevin Jones [Thu, 16 Jul 2020 21:08:53 +0000 (17:08 -0400)]
Throw when Rfc2898DeriveBytes extract limit has been exceeded

4 years agoFix inadvertently case sensitive Boyer-Moore (#39420)
Dan Moseley [Thu, 16 Jul 2020 20:58:01 +0000 (13:58 -0700)]
Fix inadvertently case sensitive Boyer-Moore (#39420)

* Unit test

* Fix

* Typo

* CR feedback

4 years agoWASM: enable System.Runtime.Tests (#39344)
Santiago Fernandez Madero [Thu, 16 Jul 2020 20:46:03 +0000 (13:46 -0700)]
WASM: enable System.Runtime.Tests (#39344)

* WASM: fix System.Runtime.Tests

* Enable System.Runtime.Tests

* Disable test and don't strip link attributes on all product assemblies

* PR feedback

4 years agoUpdate API doc on AddSimpleConsole (#39426)
Sourabh Shirhatti [Thu, 16 Jul 2020 19:37:56 +0000 (12:37 -0700)]
Update API doc on AddSimpleConsole (#39426)

4 years agoMake "services.ConfigureOptions" register validations (#38513)
Loïc Sharma [Thu, 16 Jul 2020 18:56:40 +0000 (11:56 -0700)]
Make "services.ConfigureOptions" register validations (#38513)

* Add validation to ConfigureOptions

* Improve comments

4 years agoFix issue with Trimming tests on Windows (#39307)
Jose Perez Rodriguez [Thu, 16 Jul 2020 18:52:59 +0000 (11:52 -0700)]
Fix issue with Trimming tests on Windows (#39307)

* Fix issue with Trimming tests on Windows

* Update the IsSymbolFile metadata calculation

4 years agoAdd tests to ensure the right exception is thrown for an invalid token after metadata...
David Cantu [Thu, 16 Jul 2020 18:39:46 +0000 (11:39 -0700)]
Add tests to ensure the right exception is thrown for an invalid token after metadata properties (#39254)

4 years agoAdd logic for non-generic Stack/Queue to share add-method delegates (#39151)
Layomi Akinrinade [Thu, 16 Jul 2020 18:15:01 +0000 (11:15 -0700)]
Add logic for non-generic Stack/Queue to share add-method delegates (#39151)

4 years agoForce bindingRedirect for System.Resources.Extensions (#39386)
Eric StJohn [Thu, 16 Jul 2020 17:48:45 +0000 (10:48 -0700)]
Force bindingRedirect for System.Resources.Extensions (#39386)

System.Resources.Extensions writes a type-reference into the .resources
file it writes but RAR will never see this when considering conflicts
for bindingRedirects.

Force a bindingRedirect whenever this package is used.

4 years agoEnable logging for CI runs (#39381)
Bill Wert [Thu, 16 Jul 2020 17:33:46 +0000 (10:33 -0700)]
Enable logging for CI runs (#39381)

* Enable logging for CI runs

* mistaken variable name

* realized I was fixing the wrong thing. This should just set logging params for CI jobs.

* fix indent

* mistakenly moved variable groups to the wrong block.

* remove newline

* remove newline

4 years agoMmap R2R images at and non-page-boundary (#38951)
Vladimir Sadov [Thu, 16 Jul 2020 17:32:45 +0000 (10:32 -0700)]
Mmap R2R images at and non-page-boundary (#38951)

* Mmap R2R images at and non-page-boundary

Assemblies embedded within a single-file are aligned at 16 byte boundaries.

However, currently MappedImageLayout assumes that assemblies are mapped at 4K offsets.
This results in map failure and subsequent failure to load the image in a mapped layout.
Subsequently, the image was loaded as IL as a fallback.

The change fixes this problem by:

mmap() pages containing sections/headers using appropriate ROUND_DOWN and ROUND_UP operations
Load sections at unaligned offsets in MAPMapPEFile.

Fixes: #38061

* Relaxing map alignment check to 16 bytes

* do not round up header size

* asserts

* reject sections where data and VA hint have different page alignment

* PR feedback

* revert init of loadedHeaderBase and add a comment

Co-authored-by: Swaroop Sridhar <swaroop.sridhar@microsoft.com>
4 years agoRemaining cleanup work on Microsoft.Extensions.Logging.Console (#39407)
Maryam Ariyan [Thu, 16 Jul 2020 17:30:41 +0000 (10:30 -0700)]
Remaining cleanup work on Microsoft.Extensions.Logging.Console (#39407)

* Remove and sort usings

* Remove AnsiSystemConsole

* Remove and sort usings on tests

* flip ifdefs

* Add missing xml docs

* PR feedback

4 years agoBump Intellisense nupkg version to Prev7 (#39383)
Carlos Sanchez Lopez [Thu, 16 Jul 2020 17:28:49 +0000 (10:28 -0700)]
Bump Intellisense nupkg version to Prev7 (#39383)

4 years agoAdd one more -sroa pass for llvm-jit (#38659)
Egor Bogatov [Thu, 16 Jul 2020 17:08:24 +0000 (20:08 +0300)]
Add one more -sroa pass for llvm-jit (#38659)

4 years agoFix crash on invariant mode when calling GetCultureInfo(name, true) (#39408)
Santiago Fernandez Madero [Thu, 16 Jul 2020 16:41:07 +0000 (09:41 -0700)]
Fix crash on invariant mode when calling GetCultureInfo(name, true) (#39408)

4 years agoUse implicit system configuration for EncryptionPolicy.RequireEncryption
Tom Deseyn [Thu, 16 Jul 2020 16:30:26 +0000 (18:30 +0200)]
Use implicit system configuration for EncryptionPolicy.RequireEncryption

4 years agoAdd RequiresUnreferencedCodeAttribute to CryptoConfig
Jeremy Barton [Thu, 16 Jul 2020 16:23:54 +0000 (09:23 -0700)]
Add RequiresUnreferencedCodeAttribute to CryptoConfig

4 years agoReduce allocations and P/Invokes in one-shot hashes
Kevin Jones [Thu, 16 Jul 2020 16:21:09 +0000 (12:21 -0400)]
Reduce allocations and P/Invokes in one-shot hashes

4 years agoMemoryCache: Size calculation with expired Entries (#39189)
Christian Hiersekorn [Thu, 16 Jul 2020 16:06:12 +0000 (18:06 +0200)]
MemoryCache: Size calculation with expired Entries (#39189)

4 years agoImprove SuppressGCTransitionAttribute docs (#39410)
Jan Kotas [Thu, 16 Jul 2020 15:56:17 +0000 (08:56 -0700)]
Improve SuppressGCTransitionAttribute docs (#39410)

4 years agoMake ILBlittablePtrMarshaler participate in marshaller inheritance (#39389)
Aaron Robinson [Thu, 16 Jul 2020 15:50:54 +0000 (08:50 -0700)]
Make ILBlittablePtrMarshaler participate in marshaller inheritance (#39389)

* Make ILBlittablePtrMarshaler participate in marshaller inheritance

* Add test for class layout with Out attribute scenario.

4 years agoAllow building libs tests for all configurations (#38993)
Viktor Hofer [Thu, 16 Jul 2020 15:09:28 +0000 (17:09 +0200)]
Allow building libs tests for all configurations (#38993)

* Allow building libs tests for all configurations

Building libraries tests and passing in the -allconfigurations switch
results in the libraries packages being built and tested. Conditioning
the packages build/test on the /p:TestPackages switch.

4 years agoSprinkle SuppressGCTransition across Unix shim P/Invokes (#39206)
Stephen Toub [Thu, 16 Jul 2020 14:57:47 +0000 (10:57 -0400)]
Sprinkle SuppressGCTransition across Unix shim P/Invokes (#39206)

* Sprinkle SuppressGCTransition across Unix shim P/Invokes

Did a quick audit and added it to all the trivial functions that just return a constant or return some static or map one value to another or such things.

* Address PR feedback

* Update src/libraries/Native/Unix/System.Native/pal_io.c

Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
4 years ago[wasm] Enable the library test suites that have no failures at the moment (#39427)
Maxim Lipnin [Thu, 16 Jul 2020 13:21:13 +0000 (16:21 +0300)]
[wasm] Enable the library test suites that have no failures at the moment (#39427)

4 years agoFix non-windows test failure on Microsoft.Extensions.Hosting.HostTests.CreateDefaultB...
Maryam Ariyan [Thu, 16 Jul 2020 12:24:20 +0000 (05:24 -0700)]
Fix non-windows test failure on Microsoft.Extensions.Hosting.HostTests.CreateDefaultBuilder_RegistersEventSourceLogger (#39411)

* ifdefing SuppressGCTransition out of Logging.Console

Fixes #39404

Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com>
4 years agoUpdate dependencies from https://github.com/dotnet/arcade build 20200714.3 (#39392)
dotnet-maestro[bot] [Thu, 16 Jul 2020 11:01:09 +0000 (13:01 +0200)]
Update dependencies from https://github.com/dotnet/arcade build 20200714.3 (#39392)

Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat
 From Version 5.0.0-beta.20330.3 -> To Version 5.0.0-beta.20364.3

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
4 years agoupdate branding to rc1 (#39418)
Jan Jahoda [Thu, 16 Jul 2020 10:41:53 +0000 (12:41 +0200)]
update branding to rc1 (#39418)

* update branding to rc1

* update branding to rc1

Co-authored-by: Jan Jahoda <jajahoda@.microsoft.com>
4 years agoFix source build (CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE) (#39391)
Mike McLaughlin [Thu, 16 Jul 2020 06:09:04 +0000 (23:09 -0700)]
Fix source build (CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE) (#39391)

Fixes issue #https://github.com/dotnet/runtime/issues/2014

Adds back ELF unwind info parsing code that has been around since 3.0 so it is fairly well tested. It is conditional on CLR_CMAKE_USE_SYSTEM_LIBUNWIND, otherwise, PAL_VirtualUnwindOutOfProc uses the new libunwind8 _OOP_find_proc_info function.

4 years agoIntroduce BinaryFormatter enablement switch; disable on wasm (#38963)
Levi Broderick [Thu, 16 Jul 2020 05:26:32 +0000 (22:26 -0700)]
Introduce BinaryFormatter enablement switch; disable on wasm (#38963)

Applications are given the option of disabling BinaryFormatter.Serialize and BinaryFormatter.Deserialize, meaning they'll throw NotSupportedException if anybody tries calling them. WASM projects always disable these APIs via a hardcoded mechanism; there is no re-enablement mechanism for those projects.

This commit only introduces the switch. It does not disable it in any project types by default. (Exception: wasm, as mentioned above.) The related PR https://github.com/dotnet/sdk/pull/12434 causes aspnet 5.0+ applications to disable BinaryFormatter functionality by default, but apps can re-enable if needed.

4 years agoAdd JsonIgnoreCondition.WhenWritingNull (#39388)
Layomi Akinrinade [Thu, 16 Jul 2020 03:49:09 +0000 (20:49 -0700)]
Add JsonIgnoreCondition.WhenWritingNull (#39388)

* Add JsonIgnoreCondition.WhenWritingNull

* Address review feedback

4 years agoInterpret DOTNET_BUNDLE_EXTRACT_BASE_DIR without dir separator as relative path ...
Mateo Torres-Ruiz [Thu, 16 Jul 2020 03:48:52 +0000 (20:48 -0700)]
Interpret DOTNET_BUNDLE_EXTRACT_BASE_DIR without dir separator as relative path (#39331)

* Get absolute path

4 years agoAdd support for GCPOLL_INLINE for crossgen (#39376)
Jan Kotas [Thu, 16 Jul 2020 01:34:48 +0000 (18:34 -0700)]
Add support for GCPOLL_INLINE for crossgen (#39376)

Fixes #13591

4 years agoMove ICU dependency to product (#39382)
Matt Mitchell [Thu, 16 Jul 2020 00:59:13 +0000 (17:59 -0700)]
Move ICU dependency to product (#39382)

4 years agoUse more consistent manifest attributes (#39360)
Matt Mitchell [Wed, 15 Jul 2020 23:41:53 +0000 (16:41 -0700)]
Use more consistent manifest attributes (#39360)

Create manifest attributes that are consistent with arcade's usage.

4 years agoAllow ctor parameters to exactly match property name (#38959)
Steve Harter [Wed, 15 Jul 2020 22:43:07 +0000 (17:43 -0500)]
Allow ctor parameters to exactly match property name (#38959)

4 years agoMicro optimizations for serialization (#39323)
Steve Harter [Wed, 15 Jul 2020 22:27:54 +0000 (17:27 -0500)]
Micro optimizations for serialization (#39323)

4 years agouse new API on new windows to get TLS13 (#37888)
Tomas Weinfurt [Wed, 15 Jul 2020 22:07:32 +0000 (15:07 -0700)]
use new API on new windows to get TLS13 (#37888)

* use new API on new windows to get TLS13

* use unmanaged ref to avoid copy

* feedback from review

* feedback from review

* feedback from review

* kick the build

4 years agoFix 2 noRetypingRegressions. (#39345)
Sergey Andreenko [Wed, 15 Jul 2020 21:57:39 +0000 (14:57 -0700)]
Fix 2 noRetypingRegressions. (#39345)

* don't mark stack indir as 'X'.

* Fold OBJ(ADDR(x)) under ASG when possible.

* FIx issues found by Carol

4 years agoQuiet crossgen2 output (#39340)
David Wrighton [Wed, 15 Jul 2020 21:43:31 +0000 (14:43 -0700)]
Quiet crossgen2 output (#39340)

Crossgen2 currently prints many unnecessary details to the console using strings that are regarded as temporary

- Update the type system exceptions to use descriptive strings instead of [TEMPORARY ERROR MESSAGE]XXX
- Do not print any error when a method isn't compiled due to lack of IL code
  - This is common, and not a failure of any form
- Tie logging of non-compiled methods to the --verbose switch
  - We may wish to provide variable logging levels, but that can easily be done in the future

4 years agoVxsort (#37159)
Peter Sollich [Wed, 15 Jul 2020 20:57:01 +0000 (22:57 +0200)]
Vxsort (#37159)

* Initial snapshort of vxsort implementation incorporating source code from Dan Shechter.

* Bug fix from Dan.

* Use bigger mark list for experiments.

* Give up if the mark list size is bigger than a reasonable fraction of the ephemeral space.

* Latest version from Dan, disable for ARM64.

* Fixes for Linux compile, ended up disabling vxsort for Linux for now.

* Experimenting with 32-bit sort - the variation that gathers mark list entries pertaining to the local heap by reading the mark lists from all the heaps appears to be too slow and scales very badly with increasing number of heaps.

* 32-bit sort - preserve failing case.

* Do the pointer compression/decompression in place, to improve performance, optionally write mark lists and associated information to binary files for further analysis.

* Introduce runtime check whether CPU supports AVX2 instruction set.

* Implement mark list growth.

* Integrate new version including AVX512 code path.

* Implement runtime test for AVX512 support.

* Move the files for the vectorized sort to their own directory, add stubs to call AVX2 or AVX512 flavor of the sort.

* Get rid of unneeded #include statement in two files.

* Address codereview feedback to specifically say AVX512F instead of just AVX512 as there are multiple subsets.

* Fix CMakeLists.tx files for non-x64 non-Windows targets, introduce separate max mark list sizes for WKS, remove dead code from grow_mark_list, add #ifdef to AVX512 detection to make the other architectures build.

* Instead of modifying the tool-generated header file corinfoinstructionset.h, modify InstructionSetDesc.txt that it is generated from, and run the tools that generates all the files from it.

* Move AVX2/AVX512 instruction set detection to GC side.

* Use vectorized packer, switch packed range from uint32_t to int32_t, because that makes the sorting a bit more efficient.

* Add GCConfig setting to turn vectorized sorting off, streamline ISA detection (but require initialization), rename to IsSupportedInstructionSet.

* Several small improvements:
 - Don't waste time sorting the mark list if background GC is running as we are not going to use it.
 - Use smaller max mark list size if we cannot use AVX2/AVX512 instruction sets
 - Fix mark list overflow detection for server GC.

* Address codereview feedback - add constants for the thresholds above which we use AVX/AVX512F instruction sets.

Add space before parameter lists as per GC codebase coding conventions.

Improve some comments.

* Add license headers and entry in THIRD-PARTY_NOTICES.TXT for Dan's vectorized sorting code.

* Update license headers

* Address code review feedback:
 - fix typo in comment in InitSupportedInstructionSet
 - move test for full GC to beginning of sort_mark_list
 - in WKS GC, we can use the tighter range shigh - slow for the surviving objects instead of the full ephemeral range.
 - make the description for the new config setting GCEnabledInstructionSets more explicit by enumerating the legal values and their meanings.

* Snapshot for Linux changes

* Add more definitions to immintrinh.h

* Fix cmake warnings about mismatched endif clauses.

* Disable Linux support for now due to multiple compile & link errors.

* Address code review feedback:
 - add instructions to bitonic_gen.py
 - centralize range and instruction set checks in do_vxsort
 - add parentheses around expressions.
 - removed some printfs, converted others to dprintf
 - strengthened assert

4 years agoMove wasm queue to one that has more capacity and condition it (#39373)
Santiago Fernandez Madero [Wed, 15 Jul 2020 20:54:15 +0000 (13:54 -0700)]
Move wasm queue to one that has more capacity and condition it (#39373)

4 years agoMake CreateHMAC(ReadOnlySpan<byte> key) public.
Kevin Jones [Wed, 15 Jul 2020 20:50:49 +0000 (16:50 -0400)]
Make CreateHMAC(ReadOnlySpan<byte> key) public.

4 years ago[Test] EventPipe test enhancements (#39212)
John Salem [Wed, 15 Jul 2020 20:27:59 +0000 (13:27 -0700)]
[Test] EventPipe test enhancements (#39212)

4 years agoWASM: Fix System.IO.MemoryMappedFiles tests (#39355)
Alexander Köplinger [Wed, 15 Jul 2020 20:22:04 +0000 (22:22 +0200)]
WASM: Fix System.IO.MemoryMappedFiles tests (#39355)

4 years agoApply CA2016: Forward CancellationToken to methods that can take it (#37607)
Carlos Sanchez Lopez [Wed, 15 Jul 2020 20:10:46 +0000 (13:10 -0700)]
Apply CA2016: Forward CancellationToken to methods that can take it (#37607)

* Forward CancellationToken to methods that can take it

* Address suggestions

* address suggestions

* Revert using

* Make rule 2016 a warning in runtime

* Extra cases found

* Revert changes that should not pass a token, change rule to info to verify build and test CI results

* Pass CancellationToken.None to base.CreateContentReadStreamAsync, as in its default overload

* Address stack overflow in MultipartContent

* HostingAbstractionsHostExtensions address using

* Update nuget package version to latest, Info->Warning again, fix one more case.

* System.Diagnostics.ProcessWaitState.Unix token

* Remove two unnecessary tokens

4 years agoFix `fgOptimizeBranch` when run late. (#39320)
Eugene Rozenfeld [Wed, 15 Jul 2020 19:51:05 +0000 (12:51 -0700)]
Fix `fgOptimizeBranch` when run late. (#39320)

`fgOptimizeBranch` can now run during fgInsertGCPolls() so
it needs additional processing for newly-created statements.

Fixes #39308.

4 years ago[mono] Improve RuntimeConstructorInfo.ToString (#38451)
Alexis Christoforides [Wed, 15 Jul 2020 18:40:46 +0000 (14:40 -0400)]
[mono] Improve RuntimeConstructorInfo.ToString (#38451)

* [mono] Improve RuntimeConstructorInfo.ToString

Use CoreCLR's code. Fixes https://github.com/dotnet/runtime/issues/36688

* Use CoreCLR's code for RuntimeMethodInfo too

4 years agoMake IgnoreNullValues apply only to reference types (#39147)
Layomi Akinrinade [Wed, 15 Jul 2020 18:36:59 +0000 (11:36 -0700)]
Make IgnoreNullValues apply only to reference types (#39147)

4 years agoexception from PerformWriteAsync should be asynchronous (#39325)
Geoff Kizer [Wed, 15 Jul 2020 17:41:27 +0000 (10:41 -0700)]
exception from PerformWriteAsync should be asynchronous (#39325)

Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
4 years agoFix `ASG struct (copy)` with different src and dst sizes after global morph. (#39137)
Sergey Andreenko [Wed, 15 Jul 2020 17:23:28 +0000 (10:23 -0700)]
Fix `ASG struct (copy)` with different src and dst sizes after global morph. (#39137)

* Fix the issue.

* add an IL repo.

* reenable the optimization.

* Don't do the transformation when optimizations are disabled.

4 years agoJIT: avoid crashing on unexpected types for brtrue/brfalse (#39312)
Andy Ayers [Wed, 15 Jul 2020 17:16:52 +0000 (10:16 -0700)]
JIT: avoid crashing on unexpected types for brtrue/brfalse (#39312)

Abort jitting with BADCODE if there's a type the jit can't handle,
rather than allowing an AV in the jit.

Closes #38956.

4 years agoHandle 'unmanaged' calling convention value (#39030)
Elinor Fung [Wed, 15 Jul 2020 17:13:45 +0000 (10:13 -0700)]
Handle 'unmanaged' calling convention value (#39030)

4 years agoFix up trimming tests for new SDK (#39334)
Eric Erhardt [Wed, 15 Jul 2020 17:08:00 +0000 (12:08 -0500)]
Fix up trimming tests for new SDK (#39334)

Now that we have a new SDK with the latest linker settings, we need to change how we invoke the linker during the trimming tests.

4 years agoAdds Console Log Formatting APIs (#38616)
Maryam Ariyan [Wed, 15 Jul 2020 17:05:09 +0000 (10:05 -0700)]
Adds Console Log Formatting APIs (#38616)

4 years ago[wasm] Modify System.Net.Security to throw PNSE (#39358)
Maxim Lipnin [Wed, 15 Jul 2020 17:00:26 +0000 (20:00 +0300)]
[wasm] Modify System.Net.Security to throw PNSE (#39358)

Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
4 years agoDisable eventpipe/gcdump test against #39361 (#39362)
Jan Kotas [Wed, 15 Jul 2020 16:48:54 +0000 (09:48 -0700)]
Disable eventpipe/gcdump test against #39361 (#39362)

4 years ago[interp] Intrinsify span ctor (#39195)
Vlad Brezae [Wed, 15 Jul 2020 16:37:07 +0000 (19:37 +0300)]
[interp] Intrinsify span ctor (#39195)

* [interp] Fix definition of instruction

* [interp] Intrinsify span ctor

It is heavily used in bcl for static read only spans.

In the future we should do copy propagation through its fields so we avoid creating the span in the first place and remove other unecessary opcodes.

* [interp] Allow method inlining if constructor is intrinsified

* Fix case where has_references is not yet initialized

4 years agoGenerate only unique entries in wasm pinvoke table generator (#39356)
Marek Safar [Wed, 15 Jul 2020 16:21:50 +0000 (18:21 +0200)]
Generate only unique entries in wasm pinvoke table generator (#39356)