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
Layomi Akinrinade [Wed, 15 Jul 2020 18:36:59 +0000 (11:36 -0700)]
Make IgnoreNullValues apply only to reference types (#39147)
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>
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.
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.
Elinor Fung [Wed, 15 Jul 2020 17:13:45 +0000 (10:13 -0700)]
Handle 'unmanaged' calling convention value (#39030)
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.
Maryam Ariyan [Wed, 15 Jul 2020 17:05:09 +0000 (10:05 -0700)]
Adds Console Log Formatting APIs (#38616)
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>
Jan Kotas [Wed, 15 Jul 2020 16:48:54 +0000 (09:48 -0700)]
Disable eventpipe/gcdump test against #39361 (#39362)
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
Marek Safar [Wed, 15 Jul 2020 16:21:50 +0000 (18:21 +0200)]
Generate only unique entries in wasm pinvoke table generator (#39356)
Eric Erhardt [Wed, 15 Jul 2020 15:46:04 +0000 (10:46 -0500)]
Remove debug only attributes when Debugger.IsSupported is false. (#39237)
* Remove debug only attributes when Debugger.IsSupported is false.
Contributes to https://github.com/mono/linker/issues/1093
* Move debug only attributes to shared CoreLib.
Eirik Tsarpalis [Wed, 15 Jul 2020 14:50:48 +0000 (15:50 +0100)]
Apply arm64 intrinsics to System.Text.Encodings.Web (#38707)
* use arm64 intrinsics in FindFirstCharacterToEncodeUtf8
* remove whitespace
* shim intrinsics apis for netstandard & netcoreapp targets
* use shimmed APIs in DefaultJavascripEncoder.cs
* implement MoveMask over AdvSimd
* Fix build and remove x86 shims
* remove stub goto labels
* implement optimizations for FindFirstCharacterToEncodeUtf8
* optimize FindFirstCharacterToEncode
* fix bug
* implement optimizations for FindFirstCharacterToEncodeUtf8
* remove goto labels
* optimize FindFirstCharacterToEncode
* Optimiize FindFirstCharacterToEncodeUtf8
* bug fix
* add missing shim methods
* fix bug
* minor cleanups
* cleanup and add comments
* address feedback
* address feedback and add checks for endianness
* address feedback
* Use shims from CoreLib
* Remove AdvSimdHelper.MoveMask and factor non-ascii byte locator logic into architecture-specific helper methods
* address feedback
* reinstate goto labels
* revert removed goto labels
* revert more changes
* address feedback
* address feedback
* further optimize GetIndexOfFirstNonAsciiByte
* add TODO comment
Marek Safar [Wed, 15 Jul 2020 14:49:05 +0000 (16:49 +0200)]
Add PlatformNotSupportedException for Browser version of System.Net.Sockets (#39346)
Simon Nattress [Wed, 15 Jul 2020 14:45:24 +0000 (07:45 -0700)]
[Crossgen2] Add DelayLoadMethodCallThunks table, fix stack walks containing thunks (#39063)
* [Crossgen2] Add DelayLoadMethodCallThunks table, fix stack walks containing thunks
GC stress runs with Crossgen2 binaries frequently see AVs with stack-walk failures. This occurs when a delay load thunk is being executed as a stack-walk is performed. The runtime resolves any thunk address to the code info for the last managed method in the runtime functions table.
Use the `DelayLoadMethodCallThunks` header entry to avoid finding an R2R method when the actual IP address is for a stub. The issue is that the binary search algorithm in `NativeUnwindInfoLookupTable::LookupUnwindInfoForMethod` which doesn't correctly return -1 if the code address being searched for is larger than any present. That issue cannot easily be fixed inside of that routine as identifying the end of a function via the `RUNTIME_FUNCTION` structure is slow on some platforms and impossible on others (Windows X86). This old bug was not hit because Crossgen emits stubs earlier in the image than managed code, whereas the two are reversed with Crossgen2.
Fix generation of the RuntimeFunctionsTable so that the terminating sentinel node is not treated as part of the table in the R2R header entry for the table. This was causing the sentinel node to be treated as its own runtime function by the runtime and could lead to reading beyond the table bounds in `NativeUnwindInfoLookupTable::LookupUnwindInfoForMethod`. The bug in the binary search of the table hid this bug until now.
Add the `DelayLoadMethodCallThunks` header entry. `DelayLoadMethodCallThunkNodeRange` is a placeholder node (not an `ObjectNode`) to provide a symbol to relocate against from the header. It represents the range of import thunks. Add support to the object writer for defining a range between two symbols in the same section. The relocation phase can then resolve the difference between the two symbols to determine the range size.
Fixes https://github.com/dotnet/runtime/issues/38482
Co-authored-by: David Wrighton <davidwr@microsoft.com>
Kevin Jones [Wed, 15 Jul 2020 14:01:24 +0000 (10:01 -0400)]
Add static one-shot hashing methods
With this change:
* Building up hashes, piecemeal: IncrementalHash
* One-shot hashes, polymorphically: HashAlgorithm.ComputeHash
* One-shot hashes, statically: [Algorithm].HashData
Zoltan Varga [Wed, 15 Jul 2020 12:25:46 +0000 (08:25 -0400)]
[wasm] Remove ActiveIssue for issue #38337. Add a ConditionalFact instead, since the test still fails. (#39348)
Jan Vorlicek [Wed, 15 Jul 2020 11:54:22 +0000 (13:54 +0200)]
Add .cfi annotation to CONTEXT_CaptureContext and RtlCaptureContext (#39280)
This change ensures correct unwinding of stack when stepping through
these methods under a debugger.
David Wrighton [Wed, 15 Jul 2020 11:44:35 +0000 (04:44 -0700)]
Thumb2 uses the Arm registers (#39318)
Juan Hoyos [Wed, 15 Jul 2020 10:12:51 +0000 (03:12 -0700)]
Add loader heap enumeration api's (ICorDebugProcess11) (#39124)
* IDL Change
* Store generated code for ICorDebugProcess11
* Implement ICorDebugProcess11
* PR Feedback
* Fix clang builds
dotnet-maestro[bot] [Wed, 15 Jul 2020 09:39:26 +0000 (09:39 +0000)]
[master] Update dependencies from mono/linker dotnet/icu (#39286)
* Update dependencies from https://github.com/mono/linker build
20200713.5
Microsoft.NET.ILLink.Tasks
From Version 5.0.0-preview.3.20361.1 -> To Version 5.0.0-preview.3.20363.5
* Update dependencies from https://github.com/dotnet/icu build
20200714.1
Microsoft.NETCore.Runtime.ICU.Transport
From Version 5.0.0-preview.8.20359.7 -> To Version 5.0.0-preview.8.20364.1
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Alexander Köplinger [Wed, 15 Jul 2020 09:20:59 +0000 (11:20 +0200)]
WASM: Enable System.Memory tests (#39319)
One test failed with an issue: https://github.com/dotnet/runtime/issues/39311
Also noticed that StringTests.cs is included from the CommonPath, this is a historical artifact from when System.Memory built for netfx/netstandard so we could run tests on those configs.
We no longer need it since StringTests.cs is already ran in System.Runtime.Tests.
Juan Hoyos [Wed, 15 Jul 2020 08:56:45 +0000 (01:56 -0700)]
Fix location of gcdump test (#39057)
Levi Broderick [Wed, 15 Jul 2020 06:50:33 +0000 (23:50 -0700)]
Disallow unrestricted polymorphic deserialization in DataSet (#39304)
Fixes CVE-2020-1147
https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-1147
See also https://go.microsoft.com/fwlink/?linkid=
2132227.
Levi Broderick [Wed, 15 Jul 2020 06:32:07 +0000 (23:32 -0700)]
Obsolete BinaryFormatter.Serialize and BinaryFormatter.Deserialize (#39324)
monojenkins [Wed, 15 Jul 2020 06:22:10 +0000 (02:22 -0400)]
[wasm] Fix the propagation of exceptions through runtime invokes. (#39316)
The previous code would convert exceptions into errors which would
be rethrown later, clearing the resume state.
Hopefully fixes https://github.com/dotnet/runtime/issues/38337.
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Mike McLaughlin [Wed, 15 Jul 2020 06:08:26 +0000 (23:08 -0700)]
PAL_VirtualUnwindOutOfProc for MacOS (#39213)
PAL_VirtualUnwindOutOfProc for MacOS
Add MacOS compact unwind section parsing (__unwind_info) and stepping: SearchCompactEncodingSection, SearchDwarfSection, GetProcInfo, StepWithCompactEncoding*.
Add back some (from a previous commit) of the dwarf unwind info parsing functions to use for the dwarf unwind info (__eh_frame section): ReadValue*, ReadULEB128, ReadSLEB128, ReadEncodedPointer, ParseCie, ExtractFde, ExtractProcInfoFromFde. These functions were used and fairly well tested in 3.x.
Build libunwind8 source on MacOS for those dwarf unwind info cases.
The methoddesc's enum memory region code needed add more of the code version manager's data to the coredump.
Bruce Forstall [Wed, 15 Jul 2020 05:38:42 +0000 (22:38 -0700)]
Disable System.Net.HttpListener.Tests for TailcallStress (#39315)
Issue: https://github.com/dotnet/runtime/issues/39309
Tarek Mahmoud Sayed [Wed, 15 Jul 2020 05:06:57 +0000 (22:06 -0700)]
Improve Activity API usability and OpenTelemetry integration (Part 2) (#39087)
Jose Perez Rodriguez [Wed, 15 Jul 2020 04:59:55 +0000 (21:59 -0700)]
Add NetFramework Configurations to OOB packages (#39099)
* Porting new netfx configurations for packages
* Add Netfx configurations to Microsoft.Extensions and missing System packages
* Making sure net461 configurations build against targeting pack assembly versions
* Undo changes to add netfx configurations on reference projects that don't ship in their package
* Fix issue with M.E.FP.P package by removing NetStandard.Library metapackage dependency
* Fix issues with depending on higher version than the one available in net461
* Disable UTF8String verifyClosure on package
* Undo changes to Microsoft.XmlSerializer.Generator
* Update src/libraries/Microsoft.Extensions.FileProviders.Physical/src/Microsoft.Extensions.FileProviders.Physical.csproj
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
imhameed [Wed, 15 Jul 2020 04:40:09 +0000 (21:40 -0700)]
Update Mono's implementation of Vector<T> intrinsics. (#39322)
Recognize `get_AllBitsSet` instead of `get_AllOnes`; this internal
intrinsic was renamed in https://github.com/dotnet/runtime/pull/36579
(
1c66ad1b71bb84a16b71bb5efcef1fa999c1c8bc).
Implement `Vector<T>.One` as an intrinsic.
Carol Eidt [Wed, 15 Jul 2020 04:28:02 +0000 (21:28 -0700)]
Struct, arg and float reg cleanup (#39284)
- Unify the handling of promoted args when assigning offsets; there's no need to handle independent vs. dependent promotion separately.
- Use `varTypeUsesFloatReg` where appropriate.
- Some minor refactoring of initial reg assignment.
- Add a 'Clear' method to `StructPromotionHelper` for use after inlining (not yet in use, as it produces diffs).
- Wrap a SIMD field node in `GT_OBJ` only if needed.
These changes are preparatory to improved struct promotion for args.
Ben Adams [Wed, 15 Jul 2020 04:25:06 +0000 (05:25 +0100)]
Add TryReadTo(out ReadOnlySpan<T> span, ReadOnlySpan<T> delimiter (#39048)
* Add TryReadTo(out ReadOnlySpan<T> span, ReadOnlySpan<T> delimiter
* Tweaks
t-mustafin [Wed, 15 Jul 2020 03:56:31 +0000 (06:56 +0300)]
[crossgen2] Use Alignment to calculate class Offset (#38962)
ComputeAutoFieldLayout() function ignores calculated fieldSizeAndAlignment.Alignment and uses context.Target.LayoutPointerSize instead. It produces a problems if fieldSizeAndAlignment.Alignment > context.Target.LayoutPointerSize on arm for example.
I suggest to use maximum of that values to calculate offset.
Fixes Issue #38822
Signed-off-by: Timur <t.mustafin@partner.samsung.com>
Bruce Forstall [Wed, 15 Jul 2020 01:34:52 +0000 (18:34 -0700)]
Disable libraries tailcallstress testing on Linux arm32 (#39317)
Issue: https://github.com/dotnet/runtime/issues/38892
Dan Moseley [Wed, 15 Jul 2020 00:33:14 +0000 (17:33 -0700)]
Fix TestOnStartWithArgsThenStop and make service tests more reliable (#39153)
* Comment dispose
* Fix service tests
* typo
Sergey Andreenko [Tue, 14 Jul 2020 23:52:20 +0000 (16:52 -0700)]
2 small cleanup: 2 printf formatiing typos and 1 function header. (#39321)
* Fix 2 cases of wrong prinf formatting.
old typos.
* Change `fgIsIndirOfAddrOfLocal` return type to the precise.
Vitek Karas [Tue, 14 Jul 2020 23:45:15 +0000 (16:45 -0700)]
Assembly.Location should return empty string for assemblies loaded from single-file bundle (#39275)
Changes made to PEFile to report empty string for path when it comes directly from the bundle.
I experimented with changing the PEImage m_path to empty string, but way too many things break. It is valid for the m_path to be empty, but we only use it to memory-loaded assemblies where the assembly loaded via PEImage::LoadFlat which does things very differently. The bundle still relies on opening the assembly as a file (file handle and offset).
The end result is that internally the assembly's PEImage has a non-existent m_path (it points to the base directory and the file name of the assembly, but no such file will normally exist). I don't think anything will actually use the path to access the file though.
Also changed how we load CoreLib from bundle. We used to give it path "System.Private.CoreLib.dll" which causes asserts in the runtime in couple of places (the one I hit was when trying to load assembly from memory - it gets CoreLib as its creator and we call GetPath on the creator and then validate the path in debug builds). As far as I can tell this change should not make any observable effect, other than fixing the fact that we expect the m_path of a PEImage to be either empty or absolute path.
Mitchell Hwang [Tue, 14 Jul 2020 21:27:24 +0000 (17:27 -0400)]
[wasm] Address System.Runtime.Loader failures (#39306)
* [wasm] Condition Finalizer_CollectibleWithNoAssemblyLoaded with precise gc supported
* [wasm] Modify SatelliteAssemblies member data and condition on NonInvariantGlobalization
* [libraries] Remove System.Runtime.Loader project from exclusions
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Santiago Fernandez Madero [Tue, 14 Jul 2020 21:25:03 +0000 (14:25 -0700)]
WASM: run tests on CI only in rolling and/or when libraries/tests.proj is changed (#39239)
* WASM: run tests on CI only in rolling and/or when libraries/tests.proj is changed
* Fix build
* Test change in tests.proj
* Fix build
* Flow variables from platform-matrix to jobTemplate
* Fix installer base template variables propagation
* Pass variables as array
nathan-moore [Tue, 14 Jul 2020 20:49:54 +0000 (16:49 -0400)]
JIT: Don't emit some unnecessary tests (#38586)
* Remove some unnecessary tests
* Handle more cases
* Fix some bugs
* Fix some comments
* fix up docs some
* add fallthrough
* Formatting
Stephen Toub [Tue, 14 Jul 2020 20:44:28 +0000 (16:44 -0400)]
Delete APM fallback from Socket task operations (#39248)
* Fix static field names
* Remove CachedEventArgs wrapper
This was put in place initially when the Task-based APIs were new, and we wanted to make them pay-for-play such that other uses of Socket wouldn't incur the extra fields. But at this point, the Task-based APIs are the primary/recommended way to use Socket, and when they are used, the wrapper adds overhead (both in size and CPU). Deleting it.
* Delete APM fallback from AcceptAsync
* Delete APM fallbacks for Receive/SendAsync with tasks
Alexander Köplinger [Tue, 14 Jul 2020 20:40:02 +0000 (22:40 +0200)]
WASM: Fix System.IO.FileSystem.DriveInfo and Microsoft.VisualBasic.Core tests (#39276)
* WASM: Fix System.IO.FileSystem.DriveInfo
* WASM: Fix Microsoft.VisualBasic.Core tests
Some tests need culture data.
* Fix test that was accidentally reversed for non-Browser
Eric Erhardt [Tue, 14 Jul 2020 20:37:48 +0000 (15:37 -0500)]
Preserve DebuggerTypeProxyAttribute classes (#39126)
* Preserve DebuggerTypeProxyAttribute classes
Also, ensure the test app assembly is linked, and not copied during trimming tests, which was a bug in our test infrastructure.
Fix #37307
* Add test for DebuggerTypeProxy string overload.
* Update ref to match impl.
Egor Chesakov [Tue, 14 Jul 2020 20:22:55 +0000 (13:22 -0700)]
[Arm64] ASIMD StorePair StorePairNonTemporal (#39240)
* StorePair
* StorePairNonTemporal
* StorePairScalar
* StorePairScalarNonTemporal
monojenkins [Tue, 14 Jul 2020 19:50:22 +0000 (15:50 -0400)]
[wasm] Restrict the changes in mono/mono#20113 to netcore only. (#39267)
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Dan Moseley [Tue, 14 Jul 2020 19:19:58 +0000 (12:19 -0700)]
Add sleep before looking for dump (#39217)
* Add sleep before looking for dump
* Enable helix only
* typo
Eric Erhardt [Tue, 14 Jul 2020 18:59:39 +0000 (13:59 -0500)]
Fix build break by adding new package version for DependencyModel (#39291)
Tomas Weinfurt [Tue, 14 Jul 2020 18:10:01 +0000 (11:10 -0700)]
add ServerOptionsSelectionCallback to SslStream (#38760)
* add ServerOptionsSelectionCallback to SslStream
* remove System.IO
* add missing file
* more tests
* feedback from review
* feedback from review
* skip SniSetVersion on win7
* fix IsNotWindows7
Co-authored-by: Tomas Weinfurt <furt@DESKTOP-SUKDQFN.corp.microsoft.com>
Steve Pfister [Tue, 14 Jul 2020 17:57:08 +0000 (13:57 -0400)]
[Wasm] Disable System.Linq.Parallel test suite (#39305)
* [Wasm] Disable System.Linq.Parallel test suite
https://github.com/dotnet/runtime/issues/38942 seems to be failing more frequently, so the suite will be disabled until
we can provide a fix.
* Adding it to the skipped test list instead of an attribute
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Alexander Köplinger [Tue, 14 Jul 2020 17:43:12 +0000 (19:43 +0200)]
WASM: Fix System.Diagnostics.TextWriterTraceListener tests (#39186)
* WASM: Fix System.Diagnostics.TextWriterTraceListener tests
It was using Process.GetCurrentProcess() which throws PNSE on WebAssembly.
* PR feedback
Drew Scoggins [Tue, 14 Jul 2020 17:27:43 +0000 (10:27 -0700)]
Add NoInterpreter filter back (#39131)
Tomas Weinfurt [Tue, 14 Jul 2020 17:26:55 +0000 (10:26 -0700)]
improve diag for GetNetworkInterfaces failures (#39252)
Adam Sitnik [Tue, 14 Jul 2020 17:07:59 +0000 (19:07 +0200)]
don't aquite lock when calling RuntimeInformation.OSArchitecture and OSArchitecture.ProcessArchitecture (#39196)
* don't aquite lock when calling RuntimeInformation.OSArchitecture and OSArchitecture.ProcessArchitecture
* make the arch fields volatile
* proper fix of the Unix code
* apply [SuppressGCTransition]
Adam Sitnik [Tue, 14 Jul 2020 17:06:23 +0000 (19:06 +0200)]
add OSPlatform.macOS, switch to OrdinalIgnoreCase for OSPlatform comparisons (#39209)
* add OSPlatform.macOS, hide OSX
* use OrdinalIgnoreCase for platform name comparisons
* RuntimeInformation.IsOSPlatform(OSPlatform.macOS) must return true on OSX
* add new test cases for IsOSPlatformEarlierThan and IsOSPlatformOrLater
* cache the IsCurrent information
* apply code review suggestion
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* apply code review suggestion
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Anirudh Agnihotry [Tue, 14 Jul 2020 17:03:52 +0000 (10:03 -0700)]
Adding attribute keyword to all the attributes in the ref (#39255)
dotnet-maestro[bot] [Tue, 14 Jul 2020 16:35:20 +0000 (18:35 +0200)]
[master] Update dependencies from mono/linker dotnet/runtime-assets dotnet/icu (#39158)
* Update dependencies from https://github.com/mono/linker build
20200711.1
Microsoft.NET.ILLink.Tasks
From Version 5.0.0-preview.3.20360.3 -> To Version 5.0.0-preview.3.20361.1
* Update dependencies from https://github.com/dotnet/runtime-assets build
20200710.1
System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Security.Cryptography.X509Certificates.TestData , System.Windows.Extensions.TestData
From Version 5.0.0-beta.20319.2 -> To Version 5.0.0-beta.20360.1
* Update dependencies from https://github.com/dotnet/icu build
20200709.7
Microsoft.NETCore.Runtime.ICU.Transport
From Version 5.0.0-preview.8.20359.5 -> To Version 5.0.0-preview.8.20359.7
* Remove unsupported option
* Bump SDK dependency to bring updated ILLink task
* Update trimmer configuration property names
* Keep debug symbols as they are needed for the tests
* Disable trimming tests on Windows due to weird pdbs handling
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Alexander Köplinger [Tue, 14 Jul 2020 16:07:04 +0000 (18:07 +0200)]
WASM: Fix System.Diagnostics.Tracing (#39271)
It was missing a few signatures in wasm_m2n_invoke.g.h that caused it to fail with `WASM-ERR: CANNOT HANDLE INTERP ICALL SIG IIILIIII`
Alexander Köplinger [Tue, 14 Jul 2020 16:01:19 +0000 (18:01 +0200)]
WASM: Disable two GetFunctionPointerForDelegate tests (#39278)
Known issue: https://github.com/dotnet/runtime/issues/39187
Maxim Lipnin [Tue, 14 Jul 2020 14:35:10 +0000 (17:35 +0300)]
[wasm] Enable System.Runtime.Serialization.Primitives test suite (#39264)
Alexander Köplinger [Tue, 14 Jul 2020 14:33:57 +0000 (16:33 +0200)]
WASM: Disable System.Net.Primitives.Pal.Tests.csproj (#39272)
It got reactived but an unrelated PR introduced a test failure for it, disable it again.
Alexander Nikolaev [Tue, 14 Jul 2020 14:18:08 +0000 (16:18 +0200)]
Socket's connect operations tracing (#38620)
Socket's connect start, stop and cancelled events are logged as activities via EventSource.
Contributes to #37428
Alexander Nikolaev [Tue, 14 Jul 2020 14:12:58 +0000 (16:12 +0200)]
WinHttpHandler multiple HTTP/2 connections test is skipped on older Windows (#39266)
Fixes #39258
Eric Erhardt [Tue, 14 Jul 2020 14:02:12 +0000 (09:02 -0500)]
Fix DebuggerTypeProxy on ObjectCollection (#39234)
Using `nameof(DebugView)` doesn't work because DebugView is a nested type, so this isn't the full name of the type. Fixing to use typeof instead.
Johan Lorensson [Tue, 14 Jul 2020 13:09:27 +0000 (15:09 +0200)]
Keep weak gc handle for EventPipe delegate callback in provider. (#39205)
Zoltan Varga [Tue, 14 Jul 2020 11:18:39 +0000 (07:18 -0400)]
[wasm] Fail right away in interp_create_method_pointer () when trying to create a function pointer to a native-to-managed wrapper. (#39260)
The previous method of returning interp_no_native_to_managed doesn't work:
* The runtime expects different function pointers for different methods, returning
the same pointer leads to all kinds of weird errors.
* On wasm, the native caller expects the function to have the right signature, so
calling interp_no_native_managed () will leads a to signature mismatch error which is
hard to debug.
Maxim Lipnin [Tue, 14 Jul 2020 10:18:46 +0000 (13:18 +0300)]
[wasm] Enable System.Runtime.Serialization.Xml and System.Runtime.Serialization.Xml.ReflectionOnly test suites (#39262)
Maxim Lipnin [Tue, 14 Jul 2020 10:15:41 +0000 (13:15 +0300)]
[wasm] Enable System.Runtime.Serialization.Json test suite (#39193)
* [wasm] Enable System.Runtime.Serialization.Json test suite
* Remove System.Runtime.Serialization.Json.Tests project from the exclusion list
* Remove System.Runtime.Serialization.Json.ReflectionOnly.Tests project from the exclusion list
Mitchell Hwang [Tue, 14 Jul 2020 10:09:39 +0000 (06:09 -0400)]
[wasm] Address System.Runtime.Loader.DefaultContext failure (#39204)
* [wasm] Add ActiveIssue to LoadInDefaultContext for wasm
* [libraries] Remove System.Runtime.Loader.DefaultContext project exclusion
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Mitchell Hwang [Tue, 14 Jul 2020 10:05:51 +0000 (06:05 -0400)]
[wasm] Address System.Runtime.InteropServices failures on Browser (#39188)
* [wasm] Modify OffsetOf_Decimal_ReturnsExpected for Browser
* [wasm] Add ActiveIssues for GetDelegateForFunctionPointerTests and GetFunctionPointerForDelegateTests
* [libraries] Remove System.Runtime.InteropServices project exclusion
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Maxim Lipnin [Tue, 14 Jul 2020 10:03:42 +0000 (13:03 +0300)]
[wasm] Enable System.Net.Http.Unit test suite (#39181)
* [wasm] Enable System.Net.Http.Unit test suite
* Remove System.Net.Http.Unit test project from the exclusion list
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Alexander Köplinger [Tue, 14 Jul 2020 10:00:37 +0000 (12:00 +0200)]
WASM: Disable tests on System.Diagnostics.StackTrace that fail (#39226)
Alexander Köplinger [Tue, 14 Jul 2020 09:59:01 +0000 (11:59 +0200)]
WASM: Add PNSE for System.Net.NameResolution and disable tests (#39219)
We only support `Dns.GetHostName()` since that didn't throw in the older mono WebAssembly release and can be redirected to `Environment.MachineName`.
Alexander Köplinger [Tue, 14 Jul 2020 09:58:11 +0000 (11:58 +0200)]
WASM: Fix System.Diagnostics.TraceSource tests (#39224)
* WASM: Fix System.Diagnostics.TraceSource tests
One test was using `Assembly.GetEntryAssembly()` which returns null on WebAssembly.
Others are testing that the output contains the stacktrace but it is empty on WASM right now.
* PR feedback
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Alexander Köplinger [Tue, 14 Jul 2020 09:55:39 +0000 (11:55 +0200)]
WASM: Disable tests in System.ComponentModel.Annotations that rely on globalization (#39228)
Allows the test suite to pass on WebAssembly: `Tests run: 692, Errors: 0, Failures: 0, Skipped: 15. Time: 1.237011s`
Alexander Köplinger [Tue, 14 Jul 2020 09:54:20 +0000 (11:54 +0200)]
WASM: Disable thread related tests on System.IO.Compression (#39231)
They try to test various conditions that only work if you have multiple threads which is not the case on WebAssembly.
Jeff Handley [Tue, 14 Jul 2020 09:22:13 +0000 (02:22 -0700)]
Allow platform-specific attributes on Fields (#39214)
Eric StJohn [Tue, 14 Jul 2020 07:54:22 +0000 (00:54 -0700)]
Remove System.Reflection.DispatchProxy package (#39220)
This library was added to .NETStandard2.1 and thus can no-longer be
changed.
Tanner Gooding [Tue, 14 Jul 2020 05:50:30 +0000 (22:50 -0700)]
Adding LinkedListNode<T>.ValueRef (#39236)
Ivan Povazan [Tue, 14 Jul 2020 05:23:16 +0000 (07:23 +0200)]
Portable PDB support for ilasm (#37702)
Minimum viable support for portable pdb generation from ilasm.
Supporting the following features of the portable pdb format
- Portable PDB CodeView debug directory entry
- Document table
- MethodDebugInformation table
- Local scope table
- Local variable table
This change extends the metadata writer to be able to write the portable pdb format.
- All changes related to portable PDB metadata generation should be controlled with preprocessor directive FEATURE_METADATA_EMIT_PORT_PDB
- New metadata code is not included in the runtime, as the runtime uses a managed parser when it works with portable pdbs
Authored-by: Ivan Povazan <ivan@raincode.com>
Tarek Mahmoud Sayed [Tue, 14 Jul 2020 05:09:24 +0000 (22:09 -0700)]
Add NeutralResourcesLanguageAttribute to corefx libraries (#39135)
imhameed [Tue, 14 Jul 2020 04:05:44 +0000 (21:05 -0700)]
Run CoreCLR runtime tests using Mono with LLVM AOT. (#38547)
- coreclr/build-test.sh now has a new subcommand: 'mono_aot', which builds a
new target, named 'MonoAotCompileTests', added to
coreclr/tests/src/runtest.proj. This target compiles the runtime tests using
Mono LLVM AOT in a simple configuration where the host platform is identical to
the target platform. Parallel compilation happens via a hack: actual
compilation happens in mono/msbuild/aot-compile.proj, a single-target msbuild
file, and runtest.proj invokes this single-purpose project and target using
batching to create multiple parallelizable instances of this project. Future
work: use the MonoAOTCompiler custom task currently used to build the iOS
sample program.
- Avoid using the runtimeVariant string when defining
coreClrProductArtifactName in mono/templates/xplat-pipeline-job.yml. There are
no "runtime variants" of CoreCLR configured with this parameter; instead,
depend on a shared non-runtime-variant build of CoreCLR.
- Mark function DISubprograms as local definitions--this is an LLVM 9
compatibility fix.
- Use --tag=CXX when linking libmonosgen-2.0.so via libtool when LLVM is linked
into Mono.
This makes libtool use the C++ compiler driver when linking Mono--which uses
whatever platform-specific flags are necessary to link against the C++ stdlib.
Previously, libtool would use the C compiler driver, which didn't do this and
would produce shared objects with no explicit dependency on libstdc++.
This problem is normally masked because of the very lax dynamic linking
semantics on ELF, but Mono on our CI setup is built in a CentOS 7 image (which
does not contain a C++11 libstdc++) that has a GCC 7 compatibility package
installed, along with a clang 9 installation that detects headers from the GCC
7 compatibility package. This compatibility package includes a libstdc++ linker
script that links C++11 libstdc++ components statically into the target while
dynamically linking against components present in pre-C++11 libstdc++. The end
result of all of this is that Mono built with this configuration will
dynamically depend on C++11 libstdc++ symbols that should have been statically
linked into the library, and will outright fail to run on machines without a
newer version of libstdc++ available.
- Add tests that fail after LLVM AOT compilation to issues.targets.
Geoff Kizer [Tue, 14 Jul 2020 03:58:36 +0000 (20:58 -0700)]
add write queue to Http2Connection to optimize write handling (#39166)
* add write queue to Http2Connection to optimize write handling
* address feedback
* remove AsyncMutex
* remove AsyncMutex for real
* use Channel<T> instead of custom queue
* make channel options static
Co-authored-by: Geoffrey Kizer <geoffrek@windows.microsoft.com>
Stephen Toub [Tue, 14 Jul 2020 01:39:31 +0000 (21:39 -0400)]
Fix ManagedWebSocket ordering of releasing send buffer and semaphore (#39199)
Once we release the semaphore, we no longer have ownership over _sendBuffer, so we have to release the latter before not after releasing the semaphore.
Yoh Deadfall [Tue, 14 Jul 2020 00:32:00 +0000 (03:32 +0300)]
Added field support to JSON serializer (#36986)
* Added field support to JSON serializer
* Addressed issues
* Added tests
* Addressed issues
Eugene Rozenfeld [Tue, 14 Jul 2020 00:19:20 +0000 (17:19 -0700)]
Inlined GC Polls for call to methods with SuppressGCTransitionAttribute (#39111)
* Inlined GC Polls for call to methods with SuppressGCTransitionAttribute.
* Emit inlined GC Polls for methods with SuppressGCTransitionAttribute
when possible and when optimizing.
* Emit only one GC poll per basic block.
* Move insertion of GC polls to a new phase `fgInsertGCPolls` that runs after
most optimizations so that we don't insert unnecessary GC polls.
* I plan to delete `fgCreateGCPolls` phase that was previously used to insert
GC polls for platforms that don't support hijacking in a subsequent PR.
We currently don't support such platforms.
* Fix `fgCreateGCPoll` to be able to insert inlined GC polls for `BBJ_NONE` and
`BBJ_THROW` basic blocks.
Marek Safar [Mon, 13 Jul 2020 20:58:49 +0000 (22:58 +0200)]
Add documentation about libraries features switches (#39200)
* Add documentation about libraries features switches
* Review feedback
* Casing tweaks
Mitchell Hwang [Mon, 13 Jul 2020 20:30:36 +0000 (16:30 -0400)]
[wasm] Addressing System.Runtime.Extensions failures (#38996)
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Alexander Köplinger [Mon, 13 Jul 2020 18:56:53 +0000 (20:56 +0200)]
Add space after "Other" in OperatingSystem.VersionString (#39180)
Follow-up to https://github.com/dotnet/runtime/pull/39130
Egor Chesakov [Mon, 13 Jul 2020 18:49:35 +0000 (11:49 -0700)]
[Arm64] ASIMD DotProduct and Rounding Double Multiply Add/Subtract (#38957)
* DotProduct
* DotProductBySelectedQuadruplet
* MultiplyRoundedDoublingAndAddSaturateHigh
* MultiplyRoundedDoublingAndAddSaturateHighScalar
* MultiplyRoundedDoublingAndSubtractSaturateHigh
* MultiplyRoundedDoublingAndSubtractSaturateHighScalar
* MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh
* MultiplyRoundedDoublingBySelectedScalarAndSubtractSaturateHigh
* MultiplyRoundedDoublingScalarBySelectedScalarAndAddSaturateHigh
* MultiplyRoundedDoublingScalarBySelectedScalarAndSubtractSaturateHigh
David Cantu [Mon, 13 Jul 2020 17:42:13 +0000 (10:42 -0700)]
Support reseolve reference for typeof(object) on deserialize (#38979)
Marek Safar [Mon, 13 Jul 2020 17:12:58 +0000 (19:12 +0200)]
Add always trimmed attributes list for browser config (#39000)
* Add always trimmed attributes list for browser config
Example of size reduction on SPC with the most minimalistic Hello
World sample.
| System.Private.CoreLib | Size (kB) | Delta |
|-|-|-|
| Original | 1358 kB | - |
| Trimmed | 1271 kB | - 87 kB |
* Review feedback
* Combine and embed the ILLink.LinkAttributes.xml file into the assembly.
* Update linker command line to ignore attributes file.
Add ExcludeFromCodeCoverageAttribute.
* PR feedback.
Add note about Obsolete.
Only use assembly fullname="*" for compiler generated attributes.
* Update ILLink.LinkAttributes.wasm.xml
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Vladimir Sadov [Mon, 13 Jul 2020 16:55:21 +0000 (09:55 -0700)]
enable GS Cookie on OSX (#39143)
* enable GS Cookie on OSX
* Actual fix
Hugh Bellamy [Mon, 13 Jul 2020 16:29:33 +0000 (17:29 +0100)]
Add Enum generic overloads (#33589)
Kenneth Pouncey [Mon, 13 Jul 2020 12:31:39 +0000 (14:31 +0200)]
[browser][wasm][tests] JavaScript Interop Marshal tests (#38917)
* [browser][wasm][tests] JavaScript Interop Marshal tests
* Add primitive and string marshal tests
* Add tests for object identity across marshaling calls for JS object and managed objects.
- Tests to make sure the objects stay the same and are not created new.
* Add tests and code cleanup
* Add marshal of js function tests
* Add delegate marshaling test
* Fix License text
* More tests
* Fix an error where `mono_method_resolve` is called before BINDING object was initialized
* Add more marshal tests
* Add more tests
* Address review comments
Hugh Bellamy [Mon, 13 Jul 2020 12:31:07 +0000 (13:31 +0100)]
Add some edge case tests for Array.CreateInstance and fix Mono handling (#36604)
Natalia Kondratyeva [Mon, 13 Jul 2020 12:15:24 +0000 (15:15 +0300)]
Fix codepoint splitting in email headers (#39072)
Added EncodeString method that accounts for codepoint boundaries to
Base64Stream and QEncodedStream. Used EncodeString instead of
EncodeBytes where strings were encoded. Refactored EncodeBytes while
its logic remained the same. Extracted encoding logic into ByteEncoder
class.
Fix #1485
Stephen Toub [Mon, 13 Jul 2020 11:13:32 +0000 (07:13 -0400)]
Update deep-dive-blog-posts.md
Alexander Nikolaev [Mon, 13 Jul 2020 09:44:42 +0000 (11:44 +0200)]
WinHttpHandler supports multiple HTTP/2 connections per server (#38758)
New property EnableMultipleHttp2Connections on WinHttpHandler enables multiple HTTP/2 connection to the same server.
Contributes to #35088