Noah Falk [Wed, 10 Apr 2019 11:05:03 +0000 (04:05 -0700)]
Update profiling-api-status.md
Clarifying that profiler attach/detach are a known gap
Commit migrated from https://github.com/dotnet/coreclr/commit/
43e0ab4042b72d28a6254593c8f9ae29ce687eb0
Sung Yoon Whang [Wed, 10 Apr 2019 08:19:30 +0000 (01:19 -0700)]
Expose new EventCounter APIs (dotnet/coreclr#23808)
* rename BaseCounter to DiagnosticCounter
* Change MetaData->Metadata
* Make EventSource and Name a property for counter classes
* Make the counter APIs public
* fix build errors
* Change float to double
* Few cleanups, fix test
* fix GetMetadataString
* PR feedback
* More PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
95d37e097086187692c770471d79810482971b34
Next Turn [Wed, 10 Apr 2019 04:18:24 +0000 (12:18 +0800)]
Remove dlclose call to unload CoreCLR (dotnet/coreclr#23863)
Commit migrated from https://github.com/dotnet/coreclr/commit/
448e39d3a060a41783df583c383f1b4a9fd3a185
Santiago Fernandez Madero [Fri, 5 Apr 2019 23:32:35 +0000 (16:32 -0700)]
Add back using to EventSourceException
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d427ca705cb7a23aa5d4902b5e19f679c7b322e
Jan Kotas [Fri, 5 Apr 2019 04:49:22 +0000 (21:49 -0700)]
Update CoreRT for changes in shared partition
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
50f8ab784d406705d128604da577c47bac1f0da3
Gregg Miskelly [Wed, 10 Apr 2019 02:17:39 +0000 (19:17 -0700)]
Add 'SetNotificationForWaitCompletion' to ILLinkTrim.xml (dotnet/coreclr#23822)
SetNotificationForWaitCompletion is meant to be func-eval'ed by the debugger to enable async step out. But this method was being removed by the IL linker. This adds it back.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9ddc4cfa7e0add5b09a0967c692fb1f2e9ebbe82
Jeremy Koritzinsky [Tue, 9 Apr 2019 22:28:00 +0000 (15:28 -0700)]
Don't denormalize enum return values on instance methods on x86. (dotnet/coreclr#23816)
* Don't denormalize enum return values on instance methods on x86.
* Reuse closedElemType.
Commit migrated from https://github.com/dotnet/coreclr/commit/
29fabe7114d006af73ef768c529b4477b355a284
Aaron Robinson [Tue, 9 Apr 2019 22:07:34 +0000 (15:07 -0700)]
Alter CCW wrapping semantics (dotnet/coreclr#23709)
* Update CCW semantics to not unwrap when a managed COM server was activated
from a managed COM client. This is a functional change from .NET Framework.
* Add support for CoreShim to "attach" to the existing CLR instance when
running from a CoreRun scenario.
* Add testing for NET COM client activating a NET COM server
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6b0eef9d4a61e3ef5c3879a5016931f8ca0cf99
Fadi Hanna [Tue, 9 Apr 2019 19:43:38 +0000 (12:43 -0700)]
Exclude PInvokes declared on other modules. We don't yet encode crossmodule references (dotnet/coreclr#23828)
* Exclude PInvokes declared on other modules. We don't yet encode cross module references
Commit migrated from https://github.com/dotnet/coreclr/commit/
5608b4ff0f81b99a5d436dec1e23b393503a4e07
Egor Chesakov [Tue, 9 Apr 2019 19:16:51 +0000 (12:16 -0700)]
Unconditionally set CrossGenTest to false for readytorun/tests/mainv1 mainv2 (dotnet/coreclr#23826)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e20dd4afbe569d10db9ddf75b702bc41c492d2f
Egor Chesakov [Tue, 9 Apr 2019 18:00:25 +0000 (11:00 -0700)]
Group XUnitWrapper.dll into the same Payloads when submit to Helix (dotnet/coreclr#23476)
* Add DisplayNameAttribute to each Fact
* Split files under bin/tests folder into groups and specify the corresponding *.XUnitWrapper.dll
* Group some of the *.XUnitWrapper.dll files into PayloadGroups and split others into different PayloadGroups if they have more than one TestGroup defined
* Add "TestGroup" trait to XUnitWrapper facts
* Add Microsoft.DotNet.XUnitConsoleRunner to eng\Versions.props
* Overwrite xunit.console.dll with the version coming from Microsoft.DotNet.XUnitConsoleRunner
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1cd1b6e98b44a26a52e6997d0445feeda1c8e00
dotnet-maestro-bot [Tue, 9 Apr 2019 15:54:13 +0000 (08:54 -0700)]
Update CoreClr to preview5-27609-71 (dotnet/coreclr#23809)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b1042c7a758f032c4effb96d429c95ad1280295a
Stephen Toub [Tue, 9 Apr 2019 11:21:40 +0000 (07:21 -0400)]
Improve RuntimeHelpers.GetSubArray (dotnet/coreclr#23829)
* Improve RuntimeHelpers.GetSubArray
This change does three things.
First, it fixes `GetSubArray` to work when the supplied array is actually a `U[]` where `U : T`. Currently this case ends up throwing an exception inside of span, which doesn't like working with arrays covariantly.
Second, it fixes argument validation so that we throw an ArgumentNullException if the input array is null rather than NullReferenceException.
Third, it improves the performance of `GetSubArray` for the 95% common case where either `T` is a value type or the type of the array matches the `T` type specified.
* Only use `Array.Empty<T>` when `typeof(T[]) == array.GetType()`
Commit migrated from https://github.com/dotnet/coreclr/commit/
5fd24c69f75a1222a4d9b7abaed1c5712d47bd06
Vladimir Sadov [Tue, 9 Apr 2019 03:58:37 +0000 (20:58 -0700)]
Remove exclusion for System.Threading.Tasks.Tests (dotnet/coreclr#23818)
* Update exclusion for System.Threading.Tasks.Tests
There is a race in the test, which causes failures in various stress runs. And that is not Linux specific.
The failure is addressed in https://github.com/dotnet/corefx/pull/36645
This is to update the exclusion lists to make it not just for Linux and to link to the fix PR, so that it could be tracked when it makes it into coreclr.
* Update corefx_test_exclusions.txt
* Update corefx_test_exclusions.txt
Commit migrated from https://github.com/dotnet/coreclr/commit/
13421bf4d01816fb24b974695acb9a9698193575
Brian Sullivan [Tue, 9 Apr 2019 01:04:29 +0000 (18:04 -0700)]
Merge pull request dotnet/coreclr#23739 from briansull/struct-cse
Block the hoisting of TYP_STRUCT rvalues in loop hoisting
Commit migrated from https://github.com/dotnet/coreclr/commit/
cd418635d5db40df67ffb45de74f61ca8df88207
Aditya Mandaleeka [Mon, 8 Apr 2019 23:18:36 +0000 (16:18 -0700)]
Merge pull request dotnet/coreclr#23752 from adityamandaleeka/arm64_clrww
Enable CLR write watch for ARM64 Windows
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8d57987ab738ebaca78b78004a0c6f8b6f373d2
Brian Sullivan [Thu, 4 Apr 2019 20:42:27 +0000 (13:42 -0700)]
Block the hoisting of TYP_STRUCT rvalues in loop hoisting
Added test case GitHub_23739.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
b87e6349c47b416e571ca905539ea3f6e0554ec7
Sergey Andreenko [Mon, 8 Apr 2019 22:06:52 +0000 (15:06 -0700)]
Merge pull request dotnet/coreclr#23814 from sandreenko/disableSystemIOTestsCorefx
Diable CoreFX System.IO.Tests.dll on windows arm64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5ffe43432409f0bae70aaaf783ebcf72a671387
Jan Vorlicek [Mon, 8 Apr 2019 20:48:20 +0000 (22:48 +0200)]
Merge pull request dotnet/coreclr#23251 from mjsabby/largePagesInGC
Add Large pages support in GC
Commit migrated from https://github.com/dotnet/coreclr/commit/
187410154a323024938a3281fb5a49f5e59ec350
William Godbe [Mon, 8 Apr 2019 19:04:16 +0000 (12:04 -0700)]
Merge pull request dotnet/coreclr#23813 from wtgodbe/PrevAgain
Re-update branding to preview5
Commit migrated from https://github.com/dotnet/coreclr/commit/
09dfeb48a03556898bce2153cf05687816bd7eeb
José Rivero [Mon, 8 Apr 2019 18:54:19 +0000 (11:54 -0700)]
Remove the MultiFileSec option from EventPipe. (dotnet/coreclr#23777)
This option was a pseudo mechanism to fake "streaming" events out-of-proc.
The idea was to have EventPipe creating files every N seconds, with event data up to that point. Thus, external processes could read these files in an attempt to get "read-time" data.
Now, we actually have streaming of event through IPC channels, so this option is not needed.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2ab76fe4fb75af98f470650c939f79c569c729a3
Bruce Forstall [Mon, 8 Apr 2019 18:13:09 +0000 (11:13 -0700)]
Merge pull request dotnet/coreclr#23715 from BruceForstall/FixArmStackProbing
Fix ARM32/ARM64 large frame stack probing
Commit migrated from https://github.com/dotnet/coreclr/commit/
d40a6ac7efe52dc589936fd815210f7290f3fb68
Mukul Sabharwal [Fri, 29 Mar 2019 04:33:24 +0000 (21:33 -0700)]
Add Large pages support in GC
Commit migrated from https://github.com/dotnet/coreclr/commit/
d33f73f69051d2861454081bb3211615413d8ed0
Sergey Andreenko [Mon, 8 Apr 2019 16:34:05 +0000 (09:34 -0700)]
Diable CoreFX System.IO.Tests.dll on windows arm64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b6113c8ad2125f64f4a6b20b572b2ff9aa7763b0
Sergiy Kuryata [Mon, 8 Apr 2019 15:07:07 +0000 (08:07 -0700)]
Merge pull request dotnet/coreclr#23801 from sergiy-k/enabler2rtestingonunix
Enable running tests in the ReadyToRun mode on Linux on OSX
Commit migrated from https://github.com/dotnet/coreclr/commit/
0d581c79f0b40bd43ad3eb62574bfe78a665fe80
Jan Vorlicek [Mon, 8 Apr 2019 11:24:35 +0000 (13:24 +0200)]
Merge pull request dotnet/coreclr#23605 from franksinankaya/gcc_cleanup_17
Fix conversion warning
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a465e4560db2a6efc711a40a940d3a6eaaf4784
Michal Strehovský [Mon, 8 Apr 2019 11:14:39 +0000 (13:14 +0200)]
Allow reabstraction of default interface methods (dotnet/coreclr#23313)
Allow the runtime to load types with incomplete interface implementations. With this change, we allow (in pseudo-C#):
```csharp
interface IFoo { void Frob() { } }
interface IBar : IFoo { abstract void IFoo.Frob() }
class Fooer : IBar { }
```
Calling IFoo.Frob on an instance of `Fooer` will result in new exception being thrown because the default implementation of `IFoo.Frob` was re-abstracted by `IBar`.
Commit migrated from https://github.com/dotnet/coreclr/commit/
24c92a5939002ecbadefbc5f93c2c8cc371d8b72
dotnet-maestro-bot [Mon, 8 Apr 2019 03:22:20 +0000 (20:22 -0700)]
Update CoreClr to preview5-27607-72 (dotnet/coreclr#23799)
Commit migrated from https://github.com/dotnet/coreclr/commit/
67e8c9ba99ea32339e2df59d9615a88851fa6dc7
Sergiy Kuryata [Sun, 7 Apr 2019 23:12:20 +0000 (16:12 -0700)]
Enable running tests in the ReadyToRun mode on Linux on OSX
Commit migrated from https://github.com/dotnet/coreclr/commit/
2f3a83e141314852f25ae0823bbf5227ed7e9619
Egor Chesakov [Wed, 3 Apr 2019 21:33:52 +0000 (14:33 -0700)]
Add Alpine.38.Arm64.Open Helix queue
Commit migrated from https://github.com/dotnet/coreclr/commit/
56043b6c896417e792e64a69692fed3251ed3adc
Egor Chesakov [Wed, 3 Apr 2019 21:30:58 +0000 (14:30 -0700)]
Update image coreclr uses for arm64 musl crossbuild
Commit migrated from https://github.com/dotnet/coreclr/commit/
443b035da14cf9281264a473b1e52561ead68c66
Stephen Toub [Sun, 7 Apr 2019 00:17:57 +0000 (20:17 -0400)]
Fix two new nullable warnings with latest compiler
Commit migrated from https://github.com/dotnet/coreclr/commit/
71b9c5cdb1160bdafe8e09a9a0f5670e0988dea5
dotnet-maestro-bot [Sat, 6 Apr 2019 17:00:48 +0000 (10:00 -0700)]
Update BuildTools, CoreClr to preview4-03906-01, preview5-27606-71, respectively
Commit migrated from https://github.com/dotnet/coreclr/commit/
e11818cd5c25a256a0b85a4a686ed64dc0c8462a
Sergey Andreenko [Sun, 7 Apr 2019 04:00:29 +0000 (21:00 -0700)]
Merge pull request dotnet/coreclr#23775 from sandreenko/reenableFixedCoreFX
Reenable System.Runtime.Tests. for arm64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a6b5b358034ec08e5f2d83a6d561813beb32019
Jeremy Koritzinsky [Sun, 7 Apr 2019 00:47:13 +0000 (17:47 -0700)]
Normalize directory separators before calling LoadLibrary (dotnet/coreclr#23776)
* Normalize directory separators when loading native library via ALC.LoadUnmanagedDllFromPath
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c94ba16ee00316548b2199ae8435b43e0f31894
Hugh Bellamy [Sun, 7 Apr 2019 00:17:01 +0000 (01:17 +0100)]
Remove remaining devdocs and cleanup ComponentModel code (dotnet/coreclr#23175)
* Remove remaining devdocs and cleanup ComponentModel code
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f1801ff0d983bbedea00fca3b8ecc674eaddc13
Sergiy Kuryata [Sat, 6 Apr 2019 18:36:31 +0000 (11:36 -0700)]
Merge pull request dotnet/coreclr#23781 from sergiy-k/addcrossgenforcoreroot1
Add crossgen option to build-test.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
aea7846fc71591739e47c65c0632007bff1cc4a4
dotnet-maestro[bot] [Sat, 6 Apr 2019 18:06:17 +0000 (11:06 -0700)]
[master] Update dependencies from dotnet/corefx (dotnet/coreclr#23785)
* Update dependencies from https://github.com/dotnet/corefx build
20190405.9
- Microsoft.NETCore.Platforms - 3.0.0-preview5.19205.9
- Microsoft.Private.CoreFx.NETCoreApp - 4.6.0-preview5.19205.9
* System.Data.DataSetExtensions is not a package anymore
Commit migrated from https://github.com/dotnet/coreclr/commit/
0baad90379f4ae018afd347fbdfde6bc0fda4a50
Vladimir Sadov [Sat, 6 Apr 2019 13:34:12 +0000 (06:34 -0700)]
Make GCToOSInterface::FlushProcessWriteBuffers use MEMBARRIER_CMD_PRIVATE_EXPEDITED if available (dotnet/coreclr#23778)
Basically a port of https://github.com/dotnet/coreclr/pull/20949 to GCToOSInterface
Commit migrated from https://github.com/dotnet/coreclr/commit/
2c6c6c9ffe6ef40320dfce3c6e53e953485f21a6
dotnet-maestro-bot [Sat, 6 Apr 2019 13:31:53 +0000 (06:31 -0700)]
Update CoreClr to preview5-27605-73 (dotnet/coreclr#23782)
Commit migrated from https://github.com/dotnet/coreclr/commit/
69c8a7360090086c787ce8b9a9a865b0f0331ef9
Jeremy Koritzinsky [Sat, 6 Apr 2019 03:23:36 +0000 (20:23 -0700)]
Match PtrToStringUTF8 to the other PtrToString* families. (dotnet/coreclr#23731)
* Match PtrToStringUTF8 to the other PtrToString* families.
* Make PtrToString*(IntPtr,int) exceptions consistent.
* Exclude out-of-date tests in CoreFX.
* Update exclusions to cover tests that are now throwing ArgumentOutOfRangeExceptions instead of ArgumentExceptions.
* Fix parameter order for exception.
* Pass value to exception.
Commit migrated from https://github.com/dotnet/coreclr/commit/
652ff3c4b94a96a293788d321a036b236be46aef
Egor Bogatov [Sat, 6 Apr 2019 01:48:16 +0000 (04:48 +0300)]
Fix typo in Buffer.BlockCopy (dotnet/coreclr#23636)
Commit migrated from https://github.com/dotnet/coreclr/commit/
10998b4750af123d81b18c5b68b687027fec2bf9
Gergely Kalapos [Sat, 6 Apr 2019 01:47:18 +0000 (03:47 +0200)]
Fix broken links (dotnet/coreclr#23748)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f4e2a3d123ad0f9532eecab1526030aa064fc403
Sergiy Kuryata [Sat, 6 Apr 2019 00:55:42 +0000 (17:55 -0700)]
Add crossgen option to build-test.sh
This option will cause the script to call crossgen to precompile the
managed assemblies in CORE_ROOT after generating layout.
Most of this code has been transferred from tests/bringup_runtest.sh.
Commit migrated from https://github.com/dotnet/coreclr/commit/
681cf04646ae1ef50d1c33f52f515ac2ddcb159c
Bruce Forstall [Thu, 4 Apr 2019 06:23:39 +0000 (23:23 -0700)]
WIP Fix ARM32/ARM64 large frame stack probing
Commit migrated from https://github.com/dotnet/coreclr/commit/
5c4ad70ed7bcc178122d02f75f136841a329f16e
Tomas Weinfurt [Fri, 5 Apr 2019 22:56:21 +0000 (15:56 -0700)]
Fedora.28.Amd64 queue is dead. Use container instead (dotnet/coreclr#23765)
* Fedora.28.Amd64 queue is dead. Use container instead
* udpate ubuntu to Ubuntu
* do not escape () as rest of the coreclr does not do it either.
Commit migrated from https://github.com/dotnet/coreclr/commit/
76a60f410e9703c3350c8fc26c6f5ba077a01743
Sergey Andreenko [Fri, 5 Apr 2019 22:14:42 +0000 (15:14 -0700)]
Reenable System.Runtime.Tests. for arm64.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a736b73b066074483f61e003eaa92c7ad01b16c6
Brian Sullivan [Fri, 5 Apr 2019 21:48:13 +0000 (14:48 -0700)]
Merge pull request dotnet/coreclr#23728 from briansull/FixConstByref
Fix for Issue dotnet/coreclr#23538
Commit migrated from https://github.com/dotnet/coreclr/commit/
d7172e0c76c6c1b3619f6a49686e592becf47b03
William Godbe [Fri, 5 Apr 2019 21:46:53 +0000 (14:46 -0700)]
Merge pull request dotnet/coreclr#23770 from wtgodbe/Preview5
Update branding to preview5
Commit migrated from https://github.com/dotnet/coreclr/commit/
7ed4fac2ecb73fca7c8132cefeb5aba96cf0b7ae
Fadi Hanna [Fri, 5 Apr 2019 21:46:02 +0000 (14:46 -0700)]
Replacing some calls to GetThread with an inlined version (dotnet/coreclr#23771)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a322c96a210fddd761d71ef88ff87e3edde43eac
Steve MacLean [Fri, 5 Apr 2019 21:10:09 +0000 (17:10 -0400)]
Whitespace (dotnet/coreclr#23772)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f46748f4951d06889886324d2174922cd0e48810
Ludovic Henry [Fri, 5 Apr 2019 21:07:57 +0000 (14:07 -0700)]
Fix rounding to UINT32_MAX (dotnet/coreclr#23764)
In case you would have UINT32_MAX - 1 CPUs, you would round up to return UINT32_MAX CPUs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
98d2b480ff9fc207f568ed2ac8dcbcb7c9d6a719
Fadi Hanna [Fri, 5 Apr 2019 21:05:17 +0000 (14:05 -0700)]
Fix issue 23713: handle TypeDesc field handles (dotnet/coreclr#23767)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5b9db5fcd995b52fda09aff38ae42e75f48f8dfa
dotnet-maestro-bot [Fri, 5 Apr 2019 21:04:30 +0000 (14:04 -0700)]
Update CoreClr to preview4-27605-71 (dotnet/coreclr#23710)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5888a2b78324aa9bf5cf85f766b51092077a8626
Tanner Gooding [Fri, 5 Apr 2019 20:58:18 +0000 (13:58 -0700)]
Update the JIT to recognize the IsSupported property for all HWIntrinsics (dotnet/coreclr#23751)
* Moving some JITDUMP calls into Compiler::lookupNamedIntrinsic
* Marking the IsSupported methods as Intrinsic for all HWIntrinsic ISAs
* Updating the hwintrinsic importation to more generally handle IsSupported and ThrowPNSE
* Applying formatting patch.
* Adding using System.Runtime.CompilerServices to the various x86 PlatformNotSupported HWIntrinsic files
Commit migrated from https://github.com/dotnet/coreclr/commit/
1b4d7c77d3e9d1a67ffa354a63692ecc07553b5c
Jeremy Koritzinsky [Fri, 5 Apr 2019 19:52:00 +0000 (12:52 -0700)]
Enable return buffers on Windows ARM64 for struct-returning member functions (dotnet/coreclr#23625)
* Enable return buffers on Windows ARM64 for struct-returning member functions. Fixes dotnet/coreclr#23577.
* Update comment to match new condition.
* Enable byref return on all Windows (excluding arm64 HFA. Add more test cases for ThisCall.
* On x86, if we have a normalized return value in an instance method, get back the actual type so that we correctly marshal it via a return buffer.
* Fix param ordering.
* Clean up based on PR feedback.
* Fix accidental variable shadowing.
Commit migrated from https://github.com/dotnet/coreclr/commit/
04f97c9923156b0c695f5fe441ffd14624de8076
wtgodbe [Fri, 5 Apr 2019 19:45:25 +0000 (12:45 -0700)]
Update branding to preview5
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9f6336e78f49fa5c26dd680c9fa53c7c379a259
Sinan Kaya [Sat, 30 Mar 2019 14:14:20 +0000 (14:14 +0000)]
Fix conversion warning
Commit migrated from https://github.com/dotnet/coreclr/commit/
e894a3753b45639bdaa69e0f9c613a6cb0984c49
Stephen Toub [Fri, 5 Apr 2019 18:30:28 +0000 (14:30 -0400)]
Don't null out references in Stream/BinaryReader/Writer (dotnet/coreclr#23725)
These types null out some fields on Dispose, and some of those fields are accessible directly via exposed properties, which means that nulling them out would either force us to annotate those properties as being nullable or would require us to lie about them being nullable. Nulling them out also makes it easier to accidentally null ref in the implementation, and prevents us from making the fields readonly.
It should be exceedingly rare that you dispose of one of these objects and then keep it alive while also being concerned about keeping alive the other helper objects the type uses. So this change just uses a separate flag to track disposal, and avoids nulling out the fields, which is not a common practice elsewhere in the framework.
This will be a visible change in that after Dispose, properties like StreamWriter.BaseStream/Encoding will now return the stream/encoding rather than null. In theory that could break someone if they were using those properties to determine whether the writer had been disposed, but that seems unlikely / similar fallout from most any bug fix, and objects generally aren't supposed to be touched after Dispose, anyway.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8d51f4253996baf64fca1c57c421fb42ac5762cd
Brian Sullivan [Thu, 4 Apr 2019 16:56:00 +0000 (09:56 -0700)]
Change the backing storage for Byref constants in ValueNumber-ing to use size_t.
Fixes dotnet/coreclr#23538
Commit migrated from https://github.com/dotnet/coreclr/commit/
ed1869401b7c266ca4fc2cac9204e0cd216bb474
Ludovic Henry [Fri, 5 Apr 2019 16:42:47 +0000 (09:42 -0700)]
Partially improve support for `--cpus` from Docker CLI (dotnet/coreclr#23747)
* Round up the value of the CPU limit
In the case where `--cpus` is set to a value very close to the smaller
integer (ex: 1.
499999999), it would previously be rounded down. This
would mean that the runtime would only try to take advantage of 1 CPU in
this example, leading to underutilization.
By rounding it up, we augment the pressure on the OS threads scheduler,
but even in the worst case scenario (`--cpus=1.
000000001` previously
being rounded to 1, now rounded to 2), we do not observe any
overutilization of the CPU leading to performance degradation.
* Teach the ThreadPool of CPU limits
By making sure we do take the CPU limits into account when computing the
CPU busy time, we ensure we do not have the various heuristic of the
threadpool competing with each other: one trying to allocate more
threads to increase the CPU busy time, and the other one trying to
allocate less threads because there adding more doesn't improve the
throughput.
Let's take the example of a system with 20 cores, and a docker container
with `--cpus=2`. It would mean the total CPU usage of the machine is
2000%, while the CPU limit is 200%. Because the OS scheduler would never
allocate more than 200% of its total CPU budget to the docker container,
the CPU busy time would never get over 200%. From `PAL_GetCpuBusyTime`,
this would indicate that we threadpool threads are mostly doing non-CPU
bound work, meaning we could launch more threads.
Commit migrated from https://github.com/dotnet/coreclr/commit/
aea3b1a80d6c114e3e67bc9521bf39a8a17371d1
Aaron Robinson [Fri, 5 Apr 2019 16:28:48 +0000 (09:28 -0700)]
Fix invalid use of stack memory (dotnet/coreclr#23758)
* Fix invalid use of stack memory
Commit migrated from https://github.com/dotnet/coreclr/commit/
7f1e506198944a2f82c39beb1c9454ad0984f35b
Grant [Fri, 5 Apr 2019 14:02:23 +0000 (07:02 -0700)]
Revert optimization (dotnet/coreclr#23759)
Commit migrated from https://github.com/dotnet/coreclr/commit/
73fa28f5088a9f88d1b38dd62b5f8d43c350f605
Jeremy Koritzinsky [Fri, 5 Apr 2019 05:56:56 +0000 (22:56 -0700)]
Disable marshalling delegates as _Delegate and enable marshalling delegates as IDispatch. (dotnet/coreclr#23738)
* Disable marshalling delegates as _Delegate and enable marshalling delegates as IDispatch.
* ifdef out the new IDispatch marshalling on non-COM-supporting platforms.
* PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8241971dc93dca98992596a9396dee1a2031ea15
Levi Broderick [Fri, 5 Apr 2019 05:46:23 +0000 (22:46 -0700)]
Improve performance of Memory<T>.Span property getter (dotnet/coreclr#23750)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a058450784d6ceb2ca8fd4b7b1ca8d3d6d4e8a9
Koundinya Veluri [Fri, 5 Apr 2019 04:52:38 +0000 (21:52 -0700)]
Disable a couple of S.R.InteropServices tests (dotnet/coreclr#23697)
Disabled the two tests that were fixed in PR https://github.com/dotnet/corefx/pull/34968
Commit migrated from https://github.com/dotnet/coreclr/commit/
8deef300eeef13026bce576e3c9ccd3bc91ea6c0
Santiago Fernandez Madero [Fri, 5 Apr 2019 04:47:31 +0000 (21:47 -0700)]
Merge pull request dotnet/coreclr#23633 from dotnet/NullableFeature
Nullable feature into master
Commit migrated from https://github.com/dotnet/coreclr/commit/
de68c9ddd18f863fd67098ab28d19206c9c66627
Santiago Fernandez Madero [Fri, 5 Apr 2019 01:38:02 +0000 (18:38 -0700)]
Fix Debug.Assert in GenericDelegateCache (dotnet/coreclr#23755)
Commit migrated from https://github.com/dotnet/coreclr/commit/
bd050290780b1a51331fb8f78fd33d26ea1f21d3
Jeremy Koritzinsky [Fri, 5 Apr 2019 01:37:57 +0000 (18:37 -0700)]
Fix SystemV AMD64 Explicit structure classification (dotnet/coreclr#22041)
* Don't bail out on enregistering explicit structs if there are no overlapping fields.
* Don't enregister if any unaligned fields.
* Enable passing explicit structs by-value by enregistering on systemv. Some edge cases are likely still broken, but just removing our blanket opt-out makes the current tests pass.
* Enable MarshalstructAsLayoutExp off-Windows.
* Start adding additional tests for explicit layout to try to catch edge cases in SystemV classification.
* Added a test that spans across multiple eightbytes and has an overlap in the second eightbyte.
* Change repro to use an array of floats and an int field in managed and use a float array for padding in native to force an SSE classification on the first byte.
* New algorithm to calculate eightbyte classification by going throw the structure byte-by-byte instead of field-by-field.
* Fix updating eightbyte classifications in the loop to actually used the iterated-upon variable.
* Consider each element of a fixed array as a separate field (to match native implementations).
* Implement correct SystemV classification for fixed buffers in non-blittable structures. Fixed buffers in blittable structures have the managed layout assign classifications, which still is buggy.
* Add tests.
* Correctly classify blittable fixed buffers. Move "is this field a fixed buffer" tracking into one of the unused bits in FieldDesc as code that isn't in marshalers needs to know about it.
* Handle the case where we have a struct that has no fields in an eightbyte that contains (i.e. no fields in the first eight bytes of the structure).
* PR feedback.
* Only look up FixedBufferAttribute when the type is a value class and the type of the field is a value type.
* Use heuristic to determine if a type is a fixed buffer for SystemV classification.
* Revert tracking if a field is a fixed buffer in the FieldDesc.
* Update comments.
* Classify aligned, nonoverlapping, float/double only structures as HFAs even if explicitly laid out
* Enable overlapping fields in HFAs. Update NativeType HFA to check for alignment.
I checked Godbolt to verify that HFAs for overlapping fields are allowed.
* Add HFA tests.
* Fix compile errors from HFA alignment check.
* Non-valuetypes will never have their managed layout used to classify SystemV eightbytes.
* Don't classify a struct with no zero-offset field as an HFA.
* Remove duplicate semicolon.
* PR feedback.
* Add test with 2-field double HFA.
* Clean up and add static asserts for struct size.
* Add define for static_assert_no_msg to the native test headers
* Fix build breaks.
* Remove unneeded "size = X bytes" comments. They were holdovers from the .NET Framework test tree.
* Use GetNumInstanceFieldBytes instead of GetLayoutInfo()->GetManagedSize()
* Fix build break.
* Centralize FieldMarshaler offsettting in ClassifyEightBytesWithNativeLayout.
* Fix signed/unsigned mismatch
* Fix condition to also detect arm64.
* Change ifdef to if defined.
* Remove duplicate declaration (broken in rebase)
* Add some logging in one of the unreproable OSX test failures.
* Mark System.Numerics.Vector as intrinsic and don't use the eightbyte classifier to enregister it.
* Also explicitly opt-out of HFAs for System.Numerics.Vector`1 for consistency.
* Update R2R required version to 3.0.
* Remove debugging prints.
Commit migrated from https://github.com/dotnet/coreclr/commit/
df804273f7bebbe45cb51f22b748c31b5fbe60cf
Jan Vorlicek [Thu, 4 Apr 2019 22:36:34 +0000 (00:36 +0200)]
Merge pull request dotnet/coreclr#23537 from janvorli/remove-gc-cpu-group-knowledge
Remove CPU groups notion from the gc.cpp
Commit migrated from https://github.com/dotnet/coreclr/commit/
126aaf4619adb085a210178ead14fa9439a5ebb6
Stephen Toub [Thu, 4 Apr 2019 20:19:55 +0000 (16:19 -0400)]
Merge pull request dotnet/coreclr#23735 from safern/merge-master-nullable
Pull master changes into NullableFeature
Commit migrated from https://github.com/dotnet/coreclr/commit/
3816dba457c7950ef6ac993fbe548b8b383d3e0b
Egor Chesakov [Thu, 4 Apr 2019 19:07:00 +0000 (12:07 -0700)]
Run on Ubuntu.1604.Arm32.Open in pull requests and scheduled builds (dotnet/coreclr#23729)
Commit migrated from https://github.com/dotnet/coreclr/commit/
69368778c99f2b4a3db591127ac421ca473f74c4
Egor Chesakov [Thu, 4 Apr 2019 19:05:34 +0000 (12:05 -0700)]
Use BYOC pools in "Publish to BAR" job (dotnet/coreclr#23733)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7648a7bb3d3922d7f5d2971cb55858767eb16882
Santiago Fernandez Madero [Thu, 4 Apr 2019 18:53:14 +0000 (11:53 -0700)]
Fix merge conflicts on Delegate and String.resx
Commit migrated from https://github.com/dotnet/coreclr/commit/
adef84e398c0c2743d5f1f3900db989a6819b653
Santiago Fernandez Madero [Thu, 4 Apr 2019 18:51:36 +0000 (11:51 -0700)]
Merge remote-tracking branch 'dotnet/master' into merge-master-nullable
Commit migrated from https://github.com/dotnet/coreclr/commit/
6f09caabfaafdba11df45aa84e02d26ed6732f0c
Jeremy Koritzinsky [Thu, 4 Apr 2019 18:04:13 +0000 (11:04 -0700)]
Runtime support for upcoming .NET Core WinRT Host (dotnet/coreclr#23402)
* First pass at adding winrt host entry-point.
* There's no way to specify HResult-swapping on a function called via hosted-interop so just return the HResult instead.
* Use the WindowsRuntimeMarshal class to create the activation factory and initialize it.
* Implement loading the dependent assemblies of a WinRT assembly into an isolated load context.
* PR Feedback.
* Fail to get the activation factory if the found type is not a managed type exported from a winmd.
* Rearrange parameters based on PR feedback.
* Remove unneeded include.
* Make ActivationFactoryLoader internal.
* Fix null-ref in WinRT-dependent-assembly loading
* Remove extraneous "System."
Commit migrated from https://github.com/dotnet/coreclr/commit/
fdc9998609263d9f531079e2cbe0f3f31eba3382
Jan Kotas [Thu, 4 Apr 2019 17:52:33 +0000 (10:52 -0700)]
Support simple assembly name in startup hook (dotnet/coreclr#23517)
* Add support for specifying only assembly name for startup hook.
* Implement checking for simple assembly names in startuphook.
Also wrap load exceptions.
* Avoid global alloc
* Allow extra path separators in the startup hook variable
* Fixes for extra path separators
Commit migrated from https://github.com/dotnet/coreclr/commit/
8a13881ea1d274067ac03b317fdbd9bcc9369990
Jan Vorlicek [Thu, 4 Apr 2019 17:52:20 +0000 (19:52 +0200)]
Merge pull request dotnet/coreclr#23721 from janvorli/fix-musl-arm64-crossbuild
Fix MUSL ARM64 cross build
Commit migrated from https://github.com/dotnet/coreclr/commit/
dd9aa688783575a61a11655952142bd30681dbe6
Sung Yoon Whang [Thu, 4 Apr 2019 17:38:14 +0000 (10:38 -0700)]
Add Working Set runtime counter (dotnet/coreclr#23717)
* Add cpu counter
* Fix windows build
* Make the counter just return current CPU usage as %
* Add Unix
* Fix unix build
* Some cleanup
* rename
* fixing some build errors
* some cleanup
* remove unused using
* more cleanup
* newline
* Add working set counter
* Remove old file
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f5bd45f855387808672ba0d270863962e625445
Stephen Toub [Thu, 4 Apr 2019 16:58:58 +0000 (12:58 -0400)]
Fix build break due to conflicting PRs (dotnet/coreclr#23726)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9909a7d4b5b8bd7d898be480a186d098dde5f0d7
Carol Eidt [Thu, 4 Apr 2019 16:53:02 +0000 (09:53 -0700)]
Improve Upper Vector Save/Restore (dotnet/coreclr#23344)
Improve Upper Vector Save/Restore
In order to avoid saving and restore the upper half of large vectors around every
call even if they are not used, separately model the upper half of large vector
lclVars, and track whether the large vector lclVar is partially-spilled, in which
case its upper half resides in its upper half Interval's location.
Fix dotnet/coreclr#18144
Commit migrated from https://github.com/dotnet/coreclr/commit/
358d9d2559bd57cee7b2d4d0bc6d03ea252f4da8
Jeremy Koritzinsky [Thu, 4 Apr 2019 16:33:12 +0000 (09:33 -0700)]
Fix prefix of mock hostpolicy on Unix (dotnet/coreclr#23692)
Fixes dotnet/coreclr#23682
Commit migrated from https://github.com/dotnet/coreclr/commit/
cfb2b5a5b93294a962e92f4e303afc1a5bb7ebb4
Carol Eidt [Thu, 4 Apr 2019 16:31:30 +0000 (09:31 -0700)]
Handle local struct pointer arithmetic (dotnet/coreclr#23704)
The assert introduced in dotnet/coreclr#23570 was overly aggressive, and didn't account for the fact that pointer arithmetic can exist in the IL, not just introduced by morph.
Fix dotnet/coreclr#23693
Commit migrated from https://github.com/dotnet/coreclr/commit/
abec165e0dd3ec2f5a46891f3c076b4c55149d56
Marek Safar [Thu, 4 Apr 2019 16:05:08 +0000 (18:05 +0200)]
Move parts of delegate to shared partition (dotnet/coreclr#23552)
Commit migrated from https://github.com/dotnet/coreclr/commit/
991817d90827b206ab25e74e7a5bd326a7e86ad4
Jan Vorlicek [Thu, 4 Apr 2019 14:53:06 +0000 (07:53 -0700)]
Fix MUSL ARM64 cross build
There were two issues:
* the cross/toolchain.cmake was unconditionally setting the linker to ld.gold.
This is not wanted in general and the ld.gold cannot link arm64 MUSL stuff
correctly (it leaves a couple of TLS symbols as undefined)
* the src/vm/arm64/asmhelpers.S was referencing a global variable using absolute
relocation, which is not allowed in shared libraries on MUSL based Linux distros.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac49c5c42839132bfe18962f77efd52d507c71c7
Stephen Toub [Thu, 4 Apr 2019 13:23:40 +0000 (09:23 -0400)]
Don't null out buffer in MemoryStream on Capacity reset (dotnet/coreclr#23700)
Commit migrated from https://github.com/dotnet/coreclr/commit/
65da96af6c08c182f05df388c8d4872311b2f088
Jan Vorlicek [Thu, 4 Apr 2019 10:46:33 +0000 (12:46 +0200)]
Modify affinity range config format for Windows
Each entry has to be prefixed by group number followed by comma. There
is nothing like global CPU index on Windows, all the APIs that support
more than 64 processors use group, in-group index pair. So specifying
the affinity this way matches what users are used to.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6e629e9ccd58be36fcc858d357cdf0811bdcb380
Vitek Karas [Thu, 4 Apr 2019 10:37:46 +0000 (03:37 -0700)]
Fixes for extra path separators
Commit migrated from https://github.com/dotnet/coreclr/commit/
6ba1ba9183efd0bf44e46bbb86bab96604a019c6
Vitek Karas [Thu, 4 Apr 2019 07:25:35 +0000 (00:25 -0700)]
Allow extra path separators in the startup hook variable
Commit migrated from https://github.com/dotnet/coreclr/commit/
f5bb175bf5fa9d945f9873fba1aa65079d797058
Krzysztof Wicher [Thu, 4 Apr 2019 05:29:56 +0000 (22:29 -0700)]
Nullable: shared/System/Security (dotnet/coreclr#23623)
* Nullable: shared/System/Security
* fix windows
* address feedback
* IIIIdentity.Identity?
* apply feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
34f7e6730e25bcfc034265a06f82d5487dbb17b6
Sergey Andreenko [Thu, 4 Apr 2019 05:01:22 +0000 (22:01 -0700)]
Merge pull request dotnet/coreclr#23706 from sandreenko/runCoreFXbaseileDaily
Run CoreFX baseline arm/arm64 Windows/Ubuntu daily.
Commit migrated from https://github.com/dotnet/coreclr/commit/
7ae7c89dd0efb51e0b21302875c2c5e00729c9cb
Sung Yoon Whang [Thu, 4 Apr 2019 03:40:50 +0000 (20:40 -0700)]
Add CPU runtime counter (dotnet/coreclr#23680)
* Add cpu counter
* Fix windows build
* Make the counter just return current CPU usage as %
* Add Unix
* Fix unix build
* Some cleanup
* rename
* fixing some build errors
* some cleanup
* remove unused using
* more cleanup
* newline
* Address PR feedback
* more pr feedback
* More feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
3dbfa1e039d8fbb45d0d9eadffa768ba2b2e89dc
Stephen Toub [Thu, 4 Apr 2019 02:33:29 +0000 (22:33 -0400)]
Nullable: Streams (dotnet/coreclr#23703)
Commit migrated from https://github.com/dotnet/coreclr/commit/
33872aaa1e95adda39f9faf91df0a5ac97252ead
David Wrighton [Thu, 4 Apr 2019 02:11:00 +0000 (19:11 -0700)]
Fix resource loading (dotnet/coreclr#23714)
- Some resources are generated without setting a Major/Minor version in the resource directory
- This is legal, and we shouldn't skip parsing the resource
Commit migrated from https://github.com/dotnet/coreclr/commit/
046d9d4fe9206396fac4a9e0c7b7c8b5801947b3
Filip Navara [Thu, 4 Apr 2019 01:02:15 +0000 (03:02 +0200)]
Move null check into separate method to prevent unnecessary conversion of null into ReadOnlySpan (dotnet/coreclr#23616)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ea83460f07b0f502abddbbd8f264fb66671d7fe4
Stephen Toub [Thu, 4 Apr 2019 01:00:16 +0000 (21:00 -0400)]
Nullable: System.Threading.Tasks (dotnet/coreclr#23691)
* Nullable: System.Threading.Tasks
* Address PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9b80640f5158bd9152e354f4918cc42cd69fe1a
Fei Peng [Thu, 4 Apr 2019 00:15:45 +0000 (17:15 -0700)]
Fix GitHub23672 (dotnet/coreclr#23674)
Commit migrated from https://github.com/dotnet/coreclr/commit/
19c6b19645fccc8e010b4b8f8250f36a97b5433b
Sergey Andreenko [Wed, 3 Apr 2019 23:15:14 +0000 (16:15 -0700)]
Run CoreFX baseline arm/arm64 Windows/Ubuntu daily.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4c09f6212f58c4f6d022a31f11e2f8d6bbadc3d7
David Wrighton [Wed, 3 Apr 2019 22:54:05 +0000 (15:54 -0700)]
Remove ADID and ADIndex from CoreCLR (dotnet/coreclr#23588)
- Remove concept of AppDomain from object api in VM
- Various infrastructure around entering/leaving appdomains is removed
- Add small implementation of GetAppDomain for use by DAC (to match existing behavior)
- Simplify finalizer thread operations
- Eliminate AppDomain::Terminate
- Remove use of ADID from stresslog
- Remove thread enter/leave tracking from AppDomain
- Remove unused asm constants across all architectures
- Re-order header inclusion order to put gcenv.h before handletable
- Remove retail only sync block code involving appdomain index
Commit migrated from https://github.com/dotnet/coreclr/commit/
d3e39bc2f81e3dbf9e4b96347f62b49d8700336c
vitek-karas [Tue, 2 Apr 2019 14:55:35 +0000 (07:55 -0700)]
Avoid global alloc
Commit migrated from https://github.com/dotnet/coreclr/commit/
0212dc157115206909ad150ff16c20c0620c4353