Andy Ayers [Mon, 12 Nov 2018 18:58:03 +0000 (10:58 -0800)]
Allow jit to examine type of initonly static ref typed fields (dotnet/coreclr#20886)
The jit incorporates the value of integer and float typed initonly static
fields into its codegen, if the class initializer has already run.
The jit can't incorporate the values of ref typed initonly static fields,
but the types of those values can't change, and the jit can use this knowledge
to enable type based optimizations like devirtualization.
In particular for static fields initialized by complex class factory logic the
jit can now see the end result of that logic instead of having to try and deduce
the type of object that will initialize or did initialize the field.
Examples of this factory pattern in include `EqualityComparer<T>.Default` and
`Comparer<T>.Default`. The former is already optimized in some cases by via
special-purpose modelling in the framework, jit, and runtime (see dotnet/coreclr#14125) but
the latter is not. With this change calls through `Comparer<T>.Default` may now
also devirtualize (though won't yet inline as the devirtualization happens
late).
Also update the reflection code to throw an exception instead of changing the value
of a fully initialized static readonly field.
Closes dotnet/coreclr#4108.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c2abe892b227740c4b8baa51f5433dfc1101a52f
Tanner Gooding [Mon, 12 Nov 2018 18:51:16 +0000 (10:51 -0800)]
Some cleanup of the Math functions from dotnet/coreclr#20788 (dotnet/coreclr#20912)
* Fixing Max, MaxMagnitude, Min, and MinMagnitude for Math/MathF to be IEEE compliant
* Disabling the System.Math.Max/Min tests
* Adding the new c_runtime PAL tests to the CMakeLists to ensure they actually get run.
* Fixing the casing of IlogB to ILogB
* Fixing the new PAL tests to match the correct/expected outputs
* Fixing up PAL_ilogb to correctly handle 0 and NaN
Commit migrated from https://github.com/dotnet/coreclr/commit/
a49296e266ae9aa0bee760f2fcf51d3497ba818d
dotnet-maestro-bot [Mon, 12 Nov 2018 14:45:38 +0000 (06:45 -0800)]
Update CoreClr, CoreFx, IbcData, PgoData to preview-27112-01, preview.18562.1, master-
20181112-0045, master-
20181112-0043, respectively (dotnet/coreclr#20929)
Commit migrated from https://github.com/dotnet/coreclr/commit/
cab9d87ee3244d84ffac29a0379a22525839f2a1
Oded Hanson [Mon, 12 Nov 2018 11:02:37 +0000 (13:02 +0200)]
Verify the application group container directory exists in Mac Sandbox (dotnet/coreclr#20916)
* Verify the application group container directory exists in Mac Sandbox
Added an additional check to verify that the shared files directory based on the application group ID exists when running in a Mac sandbox. If it doesn't then the initialization will fail.
As part of this change, also refactored the logic the sets the shared file path into a separate method.
* Changed bool to BOOL
Commit migrated from https://github.com/dotnet/coreclr/commit/
8f9686f5beb1fd7b6f58fbe7269131db255b272e
Jeremy Koritzinsky [Sun, 11 Nov 2018 00:07:33 +0000 (16:07 -0800)]
Keep delegate fields alive across a full native call (dotnet/coreclr#20896)
* Repurpose CleanupWorkList to also preserve delegate references in structs across the full native call.
* Change CleanupWorkListElement to abstract base class instead of interface.
* Make CleanupWorkList a singlely linked list.
* PR Feedback.
* Remove CleanupWorkList and make CleanupWorkListElement be able to represent the full list.
* Add back throw in SafeHandle field marshalling.
* PR feedback.
Commit migrated from https://github.com/dotnet/coreclr/commit/
463ba889b0c010eb9c6f9807eaf0ab4ab5624450
Sung Yoon Whang [Sat, 10 Nov 2018 23:59:02 +0000 (15:59 -0800)]
Remove VersionBlock struct for profiler attach (dotnet/coreclr#20889)
* Remove VersionBlock struct for profiler attach
* Change pipe/event names to not match the Desktop version pipe/event names
Commit migrated from https://github.com/dotnet/coreclr/commit/
845fc293bef24024f779e05ebc33971bea2728d3
Stephen Toub [Sat, 10 Nov 2018 20:44:05 +0000 (15:44 -0500)]
Fix invalid out of range exception thrown in ArrayPool trimming (dotnet/coreclr#20932)
The trim method had the wrong logic to get the relevant bucket size, resulting in InvalidOutOfRangeException exceptiosn being thrown and eaten on the finalizer thread.
Commit migrated from https://github.com/dotnet/coreclr/commit/
dd6d2f82f0122e896a1a7385009b848237292749
Zeng Jiang [Sat, 10 Nov 2018 19:59:07 +0000 (03:59 +0800)]
Add PInvoke/BestFitMapping tests (dotnet/coreclr#19269)
* Add PInvoke/BestFitMapping tests
* Fix warning
* Make native side of tests xplat.
* Clean up managed side of the test build.
* Disable BestFitMapping tests off Windows.
* Individually disable tests.
* Disable the two tests that I missed last time.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e20c7f3d6194ef366a075371f9faee19ac68038
dotnet-maestro-bot [Sat, 10 Nov 2018 14:06:20 +0000 (06:06 -0800)]
Update IbcData, PgoData to master-
20181110-0042, master-
20181110-0040, respectively (dotnet/coreclr#20925)
Commit migrated from https://github.com/dotnet/coreclr/commit/
86de67ab5503aa1e40e853edfe8ad84925abffed
dotnet-maestro-bot [Sat, 10 Nov 2018 06:19:39 +0000 (22:19 -0800)]
Update BuildTools, CoreClr, CoreFx, CoreSetup, IbcData, PgoData to preview1-03407-01, preview-27110-01, preview.18560.1, preview-27109-05, master-
20181109-0043, master-
20181109-0044, respectively (dotnet/coreclr#20790)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa82845277955d86ac36f8eb1b805f198109076a
Eric StJohn [Sat, 10 Nov 2018 01:54:47 +0000 (17:54 -0800)]
Add back support for deserialization of BinaryFormatted resources (dotnet/coreclr#20907)
* Add back support for deserialization of BinaryFormatted resources
This adds back support for using BinaryFormatter to deserialize resources when loaded
from assembly.
We conditionally load BinaryFormatter and will throw if asked to deserialize binary formatted
resources and cannot find it.
* Apply code-review feedback
Changes lazy initialization to use LazyInitializer
Remove special handling of missing serialization assembly.
Clean up comments,
* Use named parameter when specifying permitDeserialization
Commit migrated from https://github.com/dotnet/coreclr/commit/
791332b101524034ca9a69ab7669d5a87713447b
Jan Kotas [Sat, 10 Nov 2018 01:49:12 +0000 (17:49 -0800)]
Delete dead/unreachable code related to remoting (dotnet/coreclr#20880)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ff5723233e6b4df6fe441b2ba453506f860aebe9
Tarek Mahmoud Sayed [Sat, 10 Nov 2018 01:46:06 +0000 (17:46 -0800)]
Expose Index and Range types (dotnet/coreclr#20899)
* Expose Index and Range types
* Address Review Comments
* Address more feedback
* Addressing more comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
3464b60b85c8e10d69d8da86d2eb3f9e7aaa7c4b
Michelle McDaniel [Fri, 9 Nov 2018 23:09:00 +0000 (15:09 -0800)]
Fix path to python on sod and illink jobs (dotnet/coreclr#20914)
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c556159f28051ec091c42c9dcaf4385d9b8c8f6
Bruce Forstall [Fri, 9 Nov 2018 18:18:39 +0000 (10:18 -0800)]
Merge pull request dotnet/coreclr#20895 from dotnet/dev/unix_test_workflow
Adjust corefx output directory name
Commit migrated from https://github.com/dotnet/coreclr/commit/
0a1953f9c27f1fefa61cb936cca4c58b85be0957
Ben Adams [Fri, 9 Nov 2018 17:26:42 +0000 (17:26 +0000)]
Fast-path ExecutionContext for ThreadPool items (dotnet/coreclr#20308)
Fast-path ExecutionContext for ThreadPool items
Maintain the ThreadPool threads on the Default contexts between work items.
Always restore the Default context on the ThreadPool Dispatch loop after a workitem has run (to clean up any ExecutionContext leakage from changes on flow suppressed workitems, or AsyncLocal change eventhandlers; as well as firing their notifications if they have them)
Store the `CurrentThread` as part of the thread static `ThreadPoolWorkQueueThreadLocals` which are already looked up at the start of the Dispatch loop to avoid an additional lookup via `Thread.CurrentThread`.
As workitems are started on the Default context and are returned to it `QueueUserWorkItemCallbackDefaultContext` items can just be run their callbacks directly rather than via `ExecutionContext.Run` (as the EC don't need to move to Default and is always moved back to Default).
As `QueueUserWorkItemCallbackDefaultContext` now runs items directly; flow suppressed callbacks can use the smaller `QueueUserWorkItemCallbackDefaultContext` rather than `QueueUserWorkItemCallback` with a null context; and handling for flow suppression can be removed from `QueueUserWorkItemCallback`.
As `AwaitTaskContinuation`'s `IThreadPoolWorkItem.Execute` doesn't preform additional work after it completes, it can run `m_action` directly for Default context in addition to the flow suppressed context, rather than going via `ExecutionContext.Run`.
Given that the items on the ThreadPool are always started on the threadpool and restored to it; we can introduce some faster paths than `ExecutionContext:RunInternal` (328 bytes asm).
Introduce `ExecutionContext:RunForThreadPoolUnsafe` (71 bytes asm), for `IThreadPoolWorkItem`s where they need to run on a provided context, but do not need to execute anything after they complete so can rely on the Dispatch loop restore. This includes `QueueUserWorkItemCallback`, `QueueUserWorkItemCallback<TState>` and `AwaitTaskContinuation`.
Introduce `ExecutionContext:RunFromThreadPoolDispatchLoop` (225 bytes asm), for items run from the ThreadPool, so don't need to capture current context (Default) to restore later, however need to do need to restore back to Default after execution as they then perform additional work. This includes
`Task`/`AsyncStateMachineBox`/`AwaitTaskContinuation`/`Timer`.
Change `Task.ExecuteFromThreadPool()` to take the thread `Task.ExecuteFromThreadPool(Thread threadPoolThread)` from the ThreadPool Dispatch loop so it can pass it into the `ExecutionContext:RunFromThreadPoolDispatchLoop` overload and avoid the `Thread.CurrentThread` lookup.
Perf test: https://github.com/dotnet/coreclr/pull/20308#issuecomment-
436805786
Resolves: dotnet/corefxdotnet/coreclr#32695
Commit migrated from https://github.com/dotnet/coreclr/commit/
d9732f493c359b404bd5b45117f4d211148c591a
Li Shengqiu [Fri, 9 Nov 2018 14:35:58 +0000 (22:35 +0800)]
Fix typos in comments (dotnet/coreclr#20908)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0f6e360d4b4c20c3bcff03ad27c4dcad38c07f41
Pent Ploompuu [Fri, 9 Nov 2018 14:32:16 +0000 (16:32 +0200)]
Optimize Char.GetUnicodeCategory and related checks (dotnet/coreclr#20864)
Commit migrated from https://github.com/dotnet/coreclr/commit/
9406df8e5f93fd437b6af236df0b0aaba6cf9a31
Tanner Gooding [Fri, 9 Nov 2018 01:58:24 +0000 (17:58 -0800)]
Moving the Utf8Parser/Utf8Formatter to be shared (dotnet/corefxdotnet/coreclr#33348)
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
0fccc78cfea93bafbba07cc4a84a32582a3af88f
Eugene Rozenfeld [Tue, 30 Oct 2018 00:34:17 +0000 (17:34 -0700)]
Implement escape analysis and stack allocation of non-box objects without gc fields.
This change implements a conservative flow-insensitive escape analysis and stack allocation
of non-box objects without gc fields.
Handling of objects with gc fields, box objects, and fixed-size arrays is future work.
Escape analysis is based on the one described here: https://www.cc.gatech.edu/~harrold/6340/cs6340_fall2009/Readings/choi99escape.pdf
Main limitations of this version of the escape analysis:
1. The analysis is flow-insensitive.
2. The analysis is intra-procedural and only sees the current method and the inlined methods.
3. The analysis assumes that references passed to non-pure-helper calls escape.
4. The analysis assumes that any references assigned to fields of objects escape.
Some of these limitations will be removed in future work.
I started with prior prototypes from @echesakovMSFT and @AndyAyersMS and extended and refactored
parts of them.
I also added tests for cases that are currently handled or will be handled soon.
Commit migrated from https://github.com/dotnet/coreclr/commit/
00f5934a3e34977c7a1502da604f2dae90040888
Eugene Rozenfeld [Tue, 30 Oct 2018 00:08:02 +0000 (17:08 -0700)]
Make getClassGClayout work with with class types.
Also add an assert to getHeapClassSize to ensure it's not
called in R2R cross-version-bubble.
Commit migrated from https://github.com/dotnet/coreclr/commit/
e472fd44778d8322db53284336c2a96e75d70244
Eugene Rozenfeld [Tue, 30 Oct 2018 00:05:44 +0000 (17:05 -0700)]
Allow creation of variables of TYP_STRUCT with non-value class handles.
Variables of TYP_STRUCT with non-value class handles represent stack-allocated objects.
Temporarily disable promotion of fields of stack-allocated objects.
Commit migrated from https://github.com/dotnet/coreclr/commit/
26df4f3346acff8bb347ef5134159aa8480debac
Eugene Rozenfeld [Tue, 16 Oct 2018 01:40:35 +0000 (18:40 -0700)]
Add JitObjectStackAllocation config option.
Commit migrated from https://github.com/dotnet/coreclr/commit/
9a5e5810bc22f6d9f4c181069ee94e059a81d14c
Jan Kotas [Thu, 8 Nov 2018 19:45:13 +0000 (11:45 -0800)]
Remove cached invariant globalization mode flag
Direct check of readonly flag is better with tiered JITing (the check is optimized out)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c090d9059f650fb903061e8633db0f4f3910f67a
Jan Kotas [Thu, 8 Nov 2018 21:42:34 +0000 (13:42 -0800)]
Delete unnecessary ReferenceSystemPrivateCoreLib
Commit migrated from https://github.com/dotnet/coreclr/commit/
c2f0fbab9a2d0fc9b89eecda2207e46816671674
Jan Kotas [Fri, 9 Nov 2018 05:12:57 +0000 (21:12 -0800)]
Revert "Passing the CONTEXT in ICorDebugManagedCallback4::DataBreakpoint"
This reverts commit dotnet/coreclr@
9dd2a3688320fa197a3a2a412523416f10e7fa3b.
Commit migrated from https://github.com/dotnet/coreclr/commit/
592bc01e8da6bb4f692b3b090a3c82d415a3b7d7
Stephen Toub [Fri, 9 Nov 2018 01:16:52 +0000 (20:16 -0500)]
Remove System.Memory reference from several libraries (dotnet/coreclr#33343)
Minor cleanup... they only have this System.Memory reference in order to support MemoryMarshal.GetReference, and we can just use the default GetPinnableReference instead. (We could also just stackalloc into a pointer instead of using span at all, but using span keeps it tidy and adds a tiny amount of additional safety).
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
9f41ff9d20c66a4b4fa8c273059085b8a8036343
Tanner Gooding [Fri, 9 Nov 2018 03:47:35 +0000 (19:47 -0800)]
Changing Number.NumberBuffer to carry a `Span<byte>` rather than a `Span<char>` (dotnet/coreclr#20879)
* Changing Number.NumberBuffer to carry a `Span<byte>` rather than a `Span<char>`
* Renaming NumberBuffer.Sign to NumberBuffer.IsNegative
* Renaming NumberBuffer.Precision to NumberBuffer.DigitsCount
* Adding a ToString and CheckConsistency method to NumberBuffer
* Adding some number.CheckConsistency() calls for debug validation
* Fixing the UTF16Formatter to meet the consistency checks
Commit migrated from https://github.com/dotnet/coreclr/commit/
3e6f7cb772febd83eaf3fecc3baf169ddd6a920f
Andrew Au [Thu, 8 Nov 2018 18:55:00 +0000 (10:55 -0800)]
Passing the CONTEXT in ICorDebugManagedCallback4::DataBreakpoint
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dd2a3688320fa197a3a2a412523416f10e7fa3b
José Rivero [Fri, 9 Nov 2018 00:20:29 +0000 (16:20 -0800)]
EventPipe support for "Parameters" (dotnet/coreclr#20796)
These changes enable passing "arguments" to an EventSource.
Commit migrated from https://github.com/dotnet/coreclr/commit/
78570a239101f69200cfceab5e7527ca8cc312b8
Levi Broderick [Thu, 8 Nov 2018 23:35:32 +0000 (15:35 -0800)]
Enlighten ValueNumStore::EvalOpSpecialized about bswap nodes (dotnet/coreclr#20883)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a6c04ffea322382d5ed38c9278ade2c5c5b950ff
Brian Sullivan [Thu, 8 Nov 2018 23:01:32 +0000 (15:01 -0800)]
Merge pull request dotnet/coreclr#20838 from briansull/issue_18259
ValueNum add check for ZeroOffsetFldSeq on LclVar reads
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae4dc9cd50e50dd1f199fa457dc65495f26a71b4
Michelle McDaniel [Thu, 8 Nov 2018 21:56:00 +0000 (13:56 -0800)]
Specify path to python3.5 for perf jobs (dotnet/coreclr#20443)
* Specify path to python3.5 for perf jobs
* Change path to python in throughput testing
Commit migrated from https://github.com/dotnet/coreclr/commit/
383f22ccf240f3b66c3e9f1d161a3a75c4e40d80
Michal Strehovský [Thu, 8 Nov 2018 16:15:26 +0000 (17:15 +0100)]
Replace reflection in an assert with ==
Reflection on private implementation of the CoreLib is disallowed in CoreRT to save disk space (we don't have to bother emitting the metadata).
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
3bab4929107943893c9f837bf8078e8533cc8e18
Bruce Forstall [Thu, 8 Nov 2018 21:17:59 +0000 (13:17 -0800)]
Merge pull request dotnet/coreclr#20890 from BruceForstall/FixMoreFxPaths
Fix more CoreFx 'artifacts' paths
Commit migrated from https://github.com/dotnet/coreclr/commit/
a0da3fe132e047d634896fde2f9e96d6ecc12d35
Bruce Forstall [Thu, 8 Nov 2018 21:16:41 +0000 (13:16 -0800)]
Fix more CoreFx 'artifacts' paths
Commit migrated from https://github.com/dotnet/coreclr/commit/
f68bd895fd3fe320abf4670ed9dfcf5f6d63c47f
Stephen Toub [Thu, 8 Nov 2018 20:34:27 +0000 (15:34 -0500)]
Add work item dumping support to SOS' ThreadPool command (dotnet/coreclr#20872)
Adds a -wi switch to the ThreadPool command that will enumerate all queues dumping out all found work items.
Commit migrated from https://github.com/dotnet/coreclr/commit/
d793aa34a9f7f2bab8a1699456bc2047578a0a6d
Mike McLaughlin [Thu, 8 Nov 2018 20:29:10 +0000 (12:29 -0800)]
Fix "LTTng-UST: Error (-17) while registering..." error when debugging (20874)
Fixes issue dotnet/coreclr#20205.
This has been happening in more and more scenarios:
1) SOS when the coreclr hosting the SOS managed code is a different version that the one being debugged
2) Lee ran into it with ClrMD for Linux
3) The dotnet-diagnostictests repo with the current arcade build changes because the coreclr version hosting mdbg is different than the version running the debuggees.
This fix is simple: only link the tracepointprovider.cpp code that loads libcoreclrtraceptprovider.so into libcoreclr.so and not in any other module that uses the PAL library (libdbgshim.so, libmscordaccore.so, etc.). Create a new "tracepointprovider" library with the tracepointprovider.cpp source file in it and remove it from the "coreclrpal". Link this new lib into libcoreclr.so.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c60869f3768f4495cb1d54179db2c41eed921d50
Bruce Forstall [Thu, 8 Nov 2018 19:20:55 +0000 (11:20 -0800)]
Merge pull request dotnet/coreclr#20882 from BruceForstall/FixFxDir
Adjust for corefx output directory change
Commit migrated from https://github.com/dotnet/coreclr/commit/
06114b7394a2f41bfdd1270cb8f9e8307aadeefb
Bruce Forstall [Thu, 8 Nov 2018 19:12:09 +0000 (11:12 -0800)]
Adjust for corefx output directory change
The "bin" directory is now under the "artifacts" directory.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ae6cc70495a07b4d6e9c60591a7a1bd710eaa2c9
Brian Sullivan [Tue, 6 Nov 2018 02:26:10 +0000 (18:26 -0800)]
Fixes issue 18259
The problem here was that we have an indirection of a LclVar that was a pointer to an array element whose type is a struct.
The following discussion refers to the test case GitHub_18259/GitHub_18259.cs
We recorded that the struct field F1.F0 is assigned 1234u.
With the bug all subsequent reads of vr7.F0 return this value.
We miss the update to zero because we didn't add the Zero Field sequence value to the LclVar vr7
Added Test case GitHub_18259.cs
Added Test case GitHub_20838.cs
Commit migrated from https://github.com/dotnet/coreclr/commit/
a35f0620007ca6f8f6c0223b7f6e0d7573a40121
Matt Galbraith [Thu, 8 Nov 2018 17:48:47 +0000 (09:48 -0800)]
Update FreeBSD build timeout to 120.
Commit migrated from https://github.com/dotnet/coreclr/commit/
624767281d5dfa75c82a72d56c348cc53db844b4
Sven Boemer [Thu, 8 Nov 2018 16:50:37 +0000 (08:50 -0800)]
Add azure-pipelines build and test definitions (dotnet/coreclr#20840)
This adds an azure pipeline definition with a matrix of product and test builds, using helix to run tests. The intention is that this definition will eventually be used for both our official build and CI testing.
There is one build job for each OS/platform/arch, and one test job for each OS/platform/arch/priority/R2Rflag. The test job builds tests and then submits them to helix, passing along a number of test run modes. One helix test job will be created for each OS/platform/arch/priority/R2Rflag/helixtargetqueue/testscenario.
There is a lot of work left to be done to get this up to parity with our official builds and CI, which I've tried to call out in comments.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8bc5616def9074d8457f85d22b1280493ad731ad
Michal Strehovský [Thu, 8 Nov 2018 11:11:25 +0000 (12:11 +0100)]
Add test coverage for custom modifiers (dotnet/coreclr#20546)
Custom modifiers are only lightly tested within the CLR test codebase (both closed and open). This adds targeted tests for:
* Resolution and overriding
* Various places that should ignore them
* Reflection
Commit migrated from https://github.com/dotnet/coreclr/commit/
f6e7568cc6d4901abb5e11ebc05267743a1c5205
Levi Broderick [Thu, 8 Nov 2018 07:54:11 +0000 (23:54 -0800)]
Add string.GetHashCode(ROS<char>) and related APIs (dotnet/coreclr#20422)
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9400301e025ff2d64a93137d11ed1eba0781ced
Tanner Gooding [Thu, 8 Nov 2018 04:23:49 +0000 (20:23 -0800)]
Fixing up the Double/Single parsing code to be correct (dotnet/coreclr#20707)
* Don't normalize -0.0 to 0.0 when parsing
* Updating NumberBuffer to validate the constructor inputs
* Updating NumberToDouble to just get the precision
* Don't check for non-significant zero's in NumberToDouble
* Updating Number.BigInteger to carry additional space for the worst-case scenario
* Removing some dead code from double.TryParse
* Updating NumberToDouble to use the RealParser implementation from Roslyn
* Fixing TryNumberToDouble and TryNumberToSingle to apply the appropriate sign.
* Adding a fast path for double/single parsing when we have <= 15 digits and an absolute scale <= 22
* Update NumberBuffer to also track whether any input digits past maxDigCount were non-zero
* Renaming NumberToFloatingPointBitsRoslyn to NumberToFloatingPointBits
* Updating TryNumberToDouble and TryNumberToSingle to support Overflow to Infinity
* Fixing a Debug.Assert in TryParseNumber
* Fixing `DecimalNumberBufferLength` to 30
* Renaming NumberToFloatingPointBitsRoslyn to NumberToFloatingPointBits
* Clarifying the NumberBufferLength comments
* Fixing TryNumberToDecimal to check the last digit in the buffer, if it exists
* Disable some CoreFX tests due to the single/double/decimal parsing fixes
* Fix TryNumberToDecimal to not modify the value of p in the assert.
Co-Authored-By: tannergooding <tagoo@outlook.com>
* Updating NumberToFloatingPointBits to use single-precision arithmetic and extended-precision multiplication where possible
* Splitting the NumberToFloatingPointBits code into a fast and slow-path method
* Ensure Roslyn is properly attributed.
* Removing the 80-bit extended precision fast path for NumberToFloatingPointBits, due to a bug
* Fixing the double and single parser to ignore case for Infinity and NaN
* Add a clarifying comment to Number.NumberToFloatingPointBits that the code has been modified from the original source.
* Removing the remaining code that was used by the 80-bit extended precision fast-path in NumberToFloatingPointBits
* Adding a missing comma to the CoreFX.issues.json
* Remove licensing "glue" and re-release the Roslyn RealParser code under the MIT license.
* Some minor cleanup to the NumberToFloatingPointBits code.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b30280d98e6c8e1980173a256609a0bde7f9c83d
Fei Peng [Thu, 8 Nov 2018 03:15:55 +0000 (19:15 -0800)]
Handle 64-bit only intrinisc by nested classes (dotnet/coreclr#20146)
Commit migrated from https://github.com/dotnet/coreclr/commit/
002603e22fe881fc501b344910740a529bed0d9c
Tanner Gooding [Thu, 8 Nov 2018 03:15:37 +0000 (19:15 -0800)]
Move the various helper intrinsics to be implemented on the S.R.Intrinsics.Vector types (dotnet/coreclr#20147)
* Renaming Vector64.cs, Vector128.cs, and Vector256.cs to be Vector64_1.cs, etc
* Adding some core helper methods to the Vector64, Vector128, and Vecto256 types.
* Adding some documentation comments to the System.Runtime.Intrinsics.Vector types
* Changing `Set` to `With`
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce586ae4073a15f634b68a1e81ae3649b1e7ac72
Jan Vorlicek [Thu, 8 Nov 2018 00:08:46 +0000 (01:08 +0100)]
Add unloadability support to ReliabilityFramework (dotnet/coreclr#20418)
* Add unloadability support to ReliabilityFramework
This change adds support for unloadable AssemblyLoadContext to the GC
ReliabilityFramework. It basically mimics what was there ifdef-ed out
for AppDomains.
It allows stress testing GC when running inside of an unloadable
AssemblyLoadContext. GC has some special handling for collectible
classes and this allows testing the respective code paths.
* Make tests run on separate threads
The tests running in the assembly load context were bot using separate
threads per test and so they were not really stressing GC as much as
possible. This change fixes that.
I've also merged code for AppDomains / AssemblyLoadContext at most
places so that the differences are clearly visible.
Commit migrated from https://github.com/dotnet/coreclr/commit/
ad581931c97f2b6278e21c381cf6adfc3f555134
Jan Vorlicek [Thu, 8 Nov 2018 00:08:20 +0000 (01:08 +0100)]
Remove need for full GC for unloadable stuff (dotnet/coreclr#20384)
This change removes enforcing of full GC after native LoaderAllocator is
destroyed. It turns out it was not needed. There is no regression in
running coreclr pri 1 tests inside an unloadable AssemblyLoadContext and
unloading the context after a test completes for each test.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b3859ce4debbeab0c0a04b8a519eded46bf67517
Tomas Weinfurt [Wed, 7 Nov 2018 14:55:12 +0000 (06:55 -0800)]
Fix string error handling for failed DNS lookup (dotnet/corefxdotnet/coreclr#32351)
* better handling for dns failures
* cleanup
* add test for DNS failure exception
* relaxt test a little bit to make it more robust for future
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
88ddaa1a3de6acac9924c3f57f5eef2138c1b956
Stephen Toub [Wed, 7 Nov 2018 20:14:00 +0000 (15:14 -0500)]
Improve DumpAsync SOS command (dotnet/coreclr#20845)
* Help DumpDelegate to dump more cases
* Improve DumpAsync command
- Add a stats summary at the beginning of the output
- Improved single-line-per-entry default behavior for increased readability
- Add option to include all tasks, not just async state machine objects
- Include state value for each async object, the state field for async state machines or the state flags for other tasks
- Support following continuation chains, rendered as "async stacks"
- Support resolving delegate names so that Task.Run and related items have the associated method name displayed
- Optional (experimental) DGML rendering of the graph
- Optionally include completed tasks, by default filtering them out
- Optionally display the fields of state machines
* Decode task state flags
* Add addr option and associated DumpAsync DML
* Fix cast warnings in checked / fprintf_s on Unix
* Remove DGML from DumpAsync
Not enough value right now, and complications in compilation on Unix given sos's current set up. Not worth it.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8afc12db660da9d2218770a8309cd4ef0ccd4c3e
Stephen Toub [Wed, 7 Nov 2018 18:55:22 +0000 (13:55 -0500)]
Delete dead code from IdnMapping (dotnet/coreclr#20857)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c07d491548a04456ff69b182579ae83244890af4
Carol Eidt [Wed, 7 Nov 2018 15:06:40 +0000 (07:06 -0800)]
Merge pull request dotnet/coreclr#20787 from CarolEidt/Arm64IntrinsicsWindows
Add Windows support for Arm64 HW Intrinsics
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8ba00e0446e2a8b2f0e969aea249bf886e8ff5e
Bruce Forstall [Wed, 7 Nov 2018 06:35:12 +0000 (22:35 -0800)]
Force using clang5.0 for Ubuntu arm32 builds (dotnet/coreclr#20825)
* Force using clang5.0 for Ubuntu arm32 builds
* Update for code review feedback
to https://github.com/dotnet/corefx/pull/33261
Commit migrated from https://github.com/dotnet/coreclr/commit/
b107aaaa591c645978f17c20f547ccd902d4cf71
Tomas Weinfurt [Wed, 7 Nov 2018 03:48:02 +0000 (19:48 -0800)]
exclude freebsd symbols from publishing (dotnet/coreclr#20854)
* try to use exclude on same line as Include instead of remove in separate step
* update freebsd exclude pattern
Commit migrated from https://github.com/dotnet/coreclr/commit/
631407852a6332a659a6a57ede670d3e94c81efb
Andrew Au [Mon, 5 Nov 2018 19:34:49 +0000 (11:34 -0800)]
Pull out GetContainingObject
Commit migrated from https://github.com/dotnet/coreclr/commit/
53e0cce55692cd568a1dce218a2089146aa8e4f8
Andrew Au [Thu, 1 Nov 2018 23:59:55 +0000 (16:59 -0700)]
NITs
Commit migrated from https://github.com/dotnet/coreclr/commit/
6b58f84275cc05ff3fbf003a70a5034fa5ecdf77
Andrew Au [Thu, 1 Nov 2018 19:01:54 +0000 (12:01 -0700)]
Comments in JIT helper
Commit migrated from https://github.com/dotnet/coreclr/commit/
57c2f001e9853090113b6437eb77d13ee16dcb7e
Andrew Au [Tue, 30 Oct 2018 17:50:47 +0000 (10:50 -0700)]
More code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
f8550e4724956c6a100fe2dbd29def59a3730a85
Andrew Au [Tue, 30 Oct 2018 01:31:45 +0000 (18:31 -0700)]
GetContainingObject should be a method of ICorDebugValue
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce5b9add89809c5d2235a54ceeb62d9c59c25fed
Andrew Au [Thu, 25 Oct 2018 02:22:44 +0000 (19:22 -0700)]
Change GetContainingObject API
Commit migrated from https://github.com/dotnet/coreclr/commit/
7cf7f086e17b7052eb1c34ce3b0000f900ac2ff0
Andrew Au [Tue, 23 Oct 2018 23:49:52 +0000 (16:49 -0700)]
FEATURE_DATABREAKPOINT
Commit migrated from https://github.com/dotnet/coreclr/commit/
d742a2f03ab849a2d6a101320d3f1107a8f82c13
Andrew Au [Thu, 18 Oct 2018 01:01:55 +0000 (18:01 -0700)]
Code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
24acddae18dedf44730f0db00a2d25dc6568eff0
Andrew Au [Mon, 15 Oct 2018 18:45:01 +0000 (11:45 -0700)]
Comment on jithelp.asm
Commit migrated from https://github.com/dotnet/coreclr/commit/
908245c286c5db92ba2de2113ad11788b066754f
Chuck Ries [Fri, 12 Oct 2018 23:28:36 +0000 (16:28 -0700)]
Ensure BeforeGC and AfterGC events are always sent in pairs
This latches the m_isGarbageCollectionEventsEnabled in BeforeGarbageCollection
to ensure that if we send a BeforeGC event we will send the corresponding
AfterGC event. It also ensure we will not send an AfterGC event if we did not
send the corresponding BeforeGC event.
Commit migrated from https://github.com/dotnet/coreclr/commit/
72eb917675fb960c9a6fb8678fdabb686d2be75b
Andrew Au [Sat, 13 Oct 2018 01:34:12 +0000 (18:34 -0700)]
Stepping out of the write barrier
Commit migrated from https://github.com/dotnet/coreclr/commit/
a08e10aa1472c4e75edab7f4fd51a0a423ec4a8c
Andrew Au [Thu, 11 Oct 2018 20:53:55 +0000 (13:53 -0700)]
Complete the work for AMD64 unwind out of write barrier work
Commit migrated from https://github.com/dotnet/coreclr/commit/
7fce1abec7f6b58f301840e0a9690e06cb70a039
Andrew Au [Wed, 10 Oct 2018 22:29:48 +0000 (15:29 -0700)]
Bringing up the AMD64 support for unwinding away from JIT WriteBarrier
Commit migrated from https://github.com/dotnet/coreclr/commit/
253a48b79c0309b54796382d23b50370a46c63c9
Andrew Au [Wed, 10 Oct 2018 17:16:29 +0000 (10:16 -0700)]
Make the write barrier unwinding fix works for coreclr release build
Commit migrated from https://github.com/dotnet/coreclr/commit/
e6ab42f2d7183b2839e00917ca42227de281a9b2
Andrew Au [Wed, 10 Oct 2018 00:32:33 +0000 (17:32 -0700)]
x86 only stackwalk fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
b70d04f9112548b1718e1768cf0cb35943724946
Andrew Au [Thu, 20 Sep 2018 23:44:39 +0000 (16:44 -0700)]
Allocating the DebuggerDataBreakpoint object in the right heap
Commit migrated from https://github.com/dotnet/coreclr/commit/
2db5af268afc606a5ce4675899af5808c6b8a459
Andrew Au [Tue, 28 Aug 2018 03:48:54 +0000 (20:48 -0700)]
Avoid unused event types
Commit migrated from https://github.com/dotnet/coreclr/commit/
7b87997d398d0ece02f2f49e573280e5860a068a
Andrew Au [Tue, 28 Aug 2018 00:58:30 +0000 (17:58 -0700)]
Avoiding triggering data breakpoint in Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
7a479cf1cd6c1a67ad6d19360b700ff198f18071
Andrew Au [Tue, 28 Aug 2018 00:40:13 +0000 (17:40 -0700)]
Linux fix
Commit migrated from https://github.com/dotnet/coreclr/commit/
5e324dad533a8cfe774d39c2bed2ebdc616547ac
Andrew Au [Mon, 13 Aug 2018 21:53:10 +0000 (14:53 -0700)]
Fix ARM compilation issue
Commit migrated from https://github.com/dotnet/coreclr/commit/
7e94efe87f48b990e77e87f6f643cdf1ab51f951
Andrew Au [Mon, 13 Aug 2018 18:14:18 +0000 (11:14 -0700)]
More code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
d5bb5d5b48feba48dbfe561c093a2b38e6f0e99d
Andrew Au [Sat, 11 Aug 2018 00:10:02 +0000 (17:10 -0700)]
Code review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
a37aa3ac04cfbb6da2d39872cb0b546c10915cad
Andrew Au [Fri, 10 Aug 2018 22:39:51 +0000 (15:39 -0700)]
More comments about Debugger::SuspendComplete
Commit migrated from https://github.com/dotnet/coreclr/commit/
ec6d8cd42e9c1e326035ea9cabda0609d9b8f186
Andrew Au [Fri, 10 Aug 2018 22:17:01 +0000 (15:17 -0700)]
Use proper macros for GetContainingObject()
Commit migrated from https://github.com/dotnet/coreclr/commit/
31e996f77aad66847eaeb97e3e163ae0e14c4ae3
Andrew Au [Fri, 10 Aug 2018 22:16:48 +0000 (15:16 -0700)]
Adding comments for thread execution mode in DebuggerRCThread::SendIPCEvent
Commit migrated from https://github.com/dotnet/coreclr/commit/
1992834d8b4d80ab4227d0e6a7c0f9b6939d890b
Andrew Au [Fri, 10 Aug 2018 17:44:36 +0000 (10:44 -0700)]
More API comments
Commit migrated from https://github.com/dotnet/coreclr/commit/
2015a6266ee239267997017bebaadb025ccd223b
Andrew Au [Fri, 10 Aug 2018 17:27:24 +0000 (10:27 -0700)]
Fix a couple bugs in GetContainingObject
Commit migrated from https://github.com/dotnet/coreclr/commit/
3c2a1f099cf2150f5b3597bd3d40e1061ef13aa7
Andrew Au [Thu, 9 Aug 2018 18:15:18 +0000 (11:15 -0700)]
Rename lite to isEESuspendedForGC
Commit migrated from https://github.com/dotnet/coreclr/commit/
0e3a4d9c419b41ddbbccc22b5d668442f2cbfd76
Andrew Au [Thu, 9 Aug 2018 17:27:23 +0000 (10:27 -0700)]
ICorDebug API documentation
Commit migrated from https://github.com/dotnet/coreclr/commit/
e66652e308426cc823b24e8f28dc6f775d49544a
Andrew Au [Tue, 7 Aug 2018 23:55:21 +0000 (16:55 -0700)]
Turn GarbageCollection events off by default and allow VS turning them on
Commit migrated from https://github.com/dotnet/coreclr/commit/
4143a9c607a387d16ffa724e37596501bb7e22f2
Andrew Au [Mon, 6 Aug 2018 22:04:37 +0000 (15:04 -0700)]
Fixing the deadlocks
Commit migrated from https://github.com/dotnet/coreclr/commit/
e467645dbefa58e144a42c3b742cee859b68d55d
Andrew Wang [Thu, 2 Aug 2018 01:53:21 +0000 (18:53 -0700)]
Fix collision with ICorDebugProcess9 to 10
Commit migrated from https://github.com/dotnet/coreclr/commit/
44f9453071131406569ea6167baf494b2ab11926
Andrew Au [Thu, 19 Jul 2018 20:00:49 +0000 (13:00 -0700)]
Fix a bug where a data breakpoint is accidentially deleted when the context is restored on FuncEval completion
Commit migrated from https://github.com/dotnet/coreclr/commit/
e4d8496b0679f09791c4bfd889b215abef542b59
Andrew Au [Fri, 13 Jul 2018 18:12:24 +0000 (11:12 -0700)]
Using Debugger::SuspendComplete()
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9b02a4cc6cc96f6f99169ead5762b5aa2733181
Andrew Au [Wed, 11 Jul 2018 20:41:07 +0000 (13:41 -0700)]
Return better HR for failing to get managed thread context
Commit migrated from https://github.com/dotnet/coreclr/commit/
b8e2abe84f9c4d67ff4aa1e53b3ed775c2750c42
Andrew Au [Wed, 11 Jul 2018 00:20:42 +0000 (17:20 -0700)]
Do not handle the thread context for garbage collection events
Commit migrated from https://github.com/dotnet/coreclr/commit/
a89cd9e6654d21fc0f2a03eeaff71bcc84f69a1f
Andrew Au [Sat, 7 Jul 2018 16:33:14 +0000 (09:33 -0700)]
Simple fixes
Commit migrated from https://github.com/dotnet/coreclr/commit/
eba995ab407dea951c933e8804b4982215575c1b
Andrew Au [Fri, 29 Jun 2018 22:54:12 +0000 (15:54 -0700)]
Eliminate dataBreakpointMask from ICorDebug
Commit migrated from https://github.com/dotnet/coreclr/commit/
8fc1cb2b537845ce9f59e7cd422ba01bc2d3011c
Andrew Au [Wed, 27 Jun 2018 20:23:17 +0000 (13:23 -0700)]
Fixing linux build
Commit migrated from https://github.com/dotnet/coreclr/commit/
20b1e6c0ec19c90f67fb08e1f655e58871302a2d
Andrew Au [Wed, 27 Jun 2018 18:15:04 +0000 (11:15 -0700)]
Get/Set the ThreadContext natively if the debuggee is block on garbage collection events
Commit migrated from https://github.com/dotnet/coreclr/commit/
59acd546c2d326e8a4ec11f078a1f0edde4dabaa
Andrew Au [Tue, 26 Jun 2018 17:31:07 +0000 (10:31 -0700)]
Hacking CordbProcess::GetThreadContext / SetThreadContext to retrieve/modify managed ThreadContext
Commit migrated from https://github.com/dotnet/coreclr/commit/
f72bba95b01c790f92641b9d7d96bf23a014dd3e
Andrew Au [Thu, 21 Jun 2018 17:52:13 +0000 (10:52 -0700)]
Clear Canary cache unconditionally
Commit migrated from https://github.com/dotnet/coreclr/commit/
68b91a76475519cfc48b60c41ce28e5c737188d4
Andrew Au [Thu, 21 Jun 2018 17:45:31 +0000 (10:45 -0700)]
Fix linux build
Commit migrated from https://github.com/dotnet/coreclr/commit/
c799c456e48014896fa2cf04560e59e2f15348fc
Andrew Au [Wed, 20 Jun 2018 00:06:31 +0000 (17:06 -0700)]
This should fix the non-deterministic failures
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9ce722ab28b5a03e87072f914a1a91522abafbd