Jeremy Koritzinsky [Thu, 21 Mar 2019 05:59:29 +0000 (22:59 -0700)]
Runtime changes for IJW Activation (dotnet/coreclr#22636)
* Implement loading an assembly from an HMODULE on Windows.
* Use the native runtime to execute the main method so I don't have to replicate all of the startup behavior.
* If ijwhost is loaded, then call back into ijwhost to resolve tokens for vtable entries.
* Refactor our various component loaders (COM and IJW) and have IJW load components into separate ALCs when loaded from native.
* Move VTableFixups after DeliverSyncEvents in our incremental load. We need the module to be loaded to at least FILE_LOAD_DELIVER_EVENTS when resolving dependencies loaded via VTableFixups, otherwise they try to load into the default ALC.
* Only try to get ijwhost module handle on Windows.
* Use defined() instead of ifndef
* Fix off-Windows build break and fix unvalid comment.
* ComponentLoadContext->IsolatedComponentLoadContext
* Only build InMemoryAssemblyLoader when targeting windows.
* Add doc comments for IsolatedComponentLoadContext.
* Rename qcall.
* Add comment for boolean parameter.
* Add null check for managed ExecuteMainMethod entrypoint.
* Add comments in ceeload.cpp for the ijwhost method resolution.
* Add test verifying runtime callback to IJW host.
* Add test for InMemoryAssemblyLoader.LoadInMemoryAssembly.
* Fix x86 behavior rel. loading symbols by name and stdcall mangling.
* Remove exe entrypoints. The executable case for mixed-mode will go through the normal .NET Core app model (no special hosting support needed).
* Clean up whitespace
* Add test verifying M->N->M ALC switch behavior with IJW.
* Resolve the ijwhost module by probing the PE for the IJW assembly instead of hardcoding the name.
* Remove static caching in GetTokenGetterFromHostModule.
* Disable new IJW tests on Win7.
* PR Feedback.
* Cleanup extra copy of function.
* Use old-style environment checking in LoadIjwFromModuleHandle since we reference S.P.CL directly.
* Fix break in rebase
* Clean up fake mscoree code.
* Only validate that a CLR header exists. The OS verifies everything else.
* Make ijw host resolution code static to ceeload.cpp
* Use bracketed include for xplatform.h
* Update comment on _CorDllMain
* PR feedback.
* Remove .def file.
* PR feedback.
* Verify we export correctly on x86 and x64.
* Fix path to ijwhostmock for CopyConstructorMarshaler
* Disable IJW tests on arm32 nightly. Can't repro the dependency load failures. Fixes dotnet/coreclr#23358
Commit migrated from https://github.com/dotnet/coreclr/commit/
ea10aaccb09fe30f0444b821fd8d90d9257dd402
Sung Yoon Whang [Thu, 21 Mar 2019 02:20:01 +0000 (19:20 -0700)]
Test for PollingCounter (dotnet/coreclr#23257)
* Add test for PollingCounter
* some cleanup
* Comparing mean to failureCountCalled
* fix comparison
* compare to the correct count
* fix casing in csproj file
Commit migrated from https://github.com/dotnet/coreclr/commit/
42c234f25baf2a6bdd3a429cb8a9530a5dfa54b6
Egor Chesakov [Wed, 20 Mar 2019 21:47:09 +0000 (14:47 -0700)]
Remove kill-tasks step in eng/build-job.yml and kill_tasks.cmd file (dotnet/coreclr#23351)
Commit migrated from https://github.com/dotnet/coreclr/commit/
69dc790d171783584f5af3a5da60a25e2c301899
Sergey Andreenko [Wed, 20 Mar 2019 17:12:06 +0000 (10:12 -0700)]
Restrict the set of platforms for GCStress testing. (dotnet/coreclr#23353)
Commit migrated from https://github.com/dotnet/coreclr/commit/
0eae19e1754517085d38df2a48861c2370c26eea
Brian Bohe [Wed, 20 Mar 2019 17:08:01 +0000 (10:08 -0700)]
Adding a flag to able/disable scope info (dotnet/coreclr#23298)
* Flag USING_SCOPE_INGO definition
* Enclosing siScope's related functions uses with USING_SCOPE_INFO flag definition check
* Encapsulating genSetScopeInfo when using siVarScope
* Moving comment inside flag defined block
* Include siScope/psiScope functions only when flag USING_SCOPE_INFO is defined
* Disable scope info
* Typo
* Adding comment flag name on #endif
* Remove redundant access levels/flags
* Repeating last accessibility level in case flag is disabled
* Setting use of siScope and psiScope as default way of reporting variable homes
Commit migrated from https://github.com/dotnet/coreclr/commit/
0ee508291b7cec2b0a0d5e7929846d3e40446810
Andy Ayers [Wed, 20 Mar 2019 16:17:30 +0000 (09:17 -0700)]
Add repro case for jit stack overflow failure (dotnet/coreclr#23346)
Repro case for dotnet/coreclr#18582 and dotnet/coreclr#23309.
Commit migrated from https://github.com/dotnet/coreclr/commit/
69ec6463cd14b5478dbd6b577ce0483fc0a838c3
Sergey Andreenko [Wed, 20 Mar 2019 06:16:26 +0000 (23:16 -0700)]
Exclude GC/Collect from GCStress testing. (dotnet/coreclr#23345)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4dca1072d15bdda64c754ad1ea474b1580fa554
Jeremy Koritzinsky [Tue, 19 Mar 2019 23:22:47 +0000 (16:22 -0700)]
Implement support for copy constructors when marshalling in IJW (dotnet/coreclr#22805)
Fixes dotnet/coreclr#22219.
I decided to try simplifying the code when bringing this feature over from .NET Framework. The .NETFX x86 implementation of this marshaler adds a lot of extra code-paths, and intercepts the calling stub to enable it to exactly replicate the behavior of what would be the native code by copy-constructing an object in-place where it goes on the stack for the native call.
Instead of adding all of that extra goo, I decided to keep the implementation much more similar to the non-x86 implementation from .NETFX. Instead of intercepting the call and adding bookkeeping helper stubs, the marshaler just copies to a local in the IL stub, just like non-x86. When calling the native function, it just loads the local onto the IL stack and calls the native function as a normal function. There is a difference there, but I cannot think of a way that the difference is observable to the user.
The non-x86 implementation is identical to the .NETFX implementation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4bca72836811aa1b82389c50dc4f2bcae222bdc0
Sung Yoon Whang [Tue, 19 Mar 2019 21:46:18 +0000 (14:46 -0700)]
Remove timer in RuntimeEventSource (dotnet/coreclr#23311)
* Change RuntimeEventSource's counter types
* cleanup
* cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
accc6eb0f0f669494bee0788884b5a10101f1243
Grant [Tue, 19 Mar 2019 21:20:00 +0000 (14:20 -0700)]
Trim/TrimStart/TrimEnd methods for Memory and Span (dotnet/coreclr#22798)
* Span.Trim
* Add another helper
* Remove redundant comments
* Optimize Trim(ReadOnlySpan<char>)
* Suggested overload for byte
* CR fixes
* CR fix
* Add Span overloads
* Add Memory overloads
* CR
* Rename method
* Optimization
* Tweaks
* Refactor
* Opt
* Use 2 helpers
* CR fixes
* CR fixes
* Nits
* CR fixes
* remove in params
* Bug
* Bug
* Move Trim methods to their own dedicated file
* Add char overloads
* Use Contains
* CR fixes
* Optmize ClampNull
* Nit
* Revert optimization
* Make existing implementations consistent with new
* Revert existing methods
* Move helpers
* Span, Memory and RoM should use consistent pattern
* POC for changing RoS
* Revert POC
* Use consistent idiom
* More inlining of explaining vars
* Use expression body for existing code
* CR fixes
* Nit
* Grammar
* CR fixes
* Fix perf bug in existing code
* Perf fix
* Force CI build
* Force CI
Commit migrated from https://github.com/dotnet/coreclr/commit/
860c72845fa6ac501d11f6b71d0b79f4294745d6
David Mason [Tue, 19 Mar 2019 21:00:36 +0000 (14:00 -0700)]
Reintroduce PR dotnet/coreclr#22617 (Update added types and methoddefs on ApplyMetadata) (dotnet/coreclr#23202)
* Add ApplyMetadata changes back
This reverts commit dotnet/coreclr@
f9c10f995fe65c0e7c30aa1734f7bb22c519983d.
* Fix race condition in loading available class hash for R2R with old R2R images or profiler modified R2R images
Commit migrated from https://github.com/dotnet/coreclr/commit/
5aacb1dfa019eb4865800d05a408665be322ea77
Sergey Andreenko [Tue, 19 Mar 2019 18:34:57 +0000 (11:34 -0700)]
Update CoreFX Windows Arm64 exclusion list. (dotnet/coreclr#23261)
* Reenable CoreFX tests that were fixed on arm64 windows.
* Exclude Microsoft.Win32.SystemEvents.Tests
Commit migrated from https://github.com/dotnet/coreclr/commit/
b9de10e0c1fd090d1a5f624e0d77b70bddf1490d
Jarret Shook [Tue, 19 Mar 2019 18:06:56 +0000 (11:06 -0700)]
Disable Jenkins Innerloop Jobs (dotnet/coreclr#23287)
* Disable Jenkins Innerloop Jobs
This change will:
1) Remove default PR trigger jobs from being run in jenkins
2) Start submitting tests for linux arm32 in coreclr-ci
It is worth noting that this change will not remove jobs from netci.groovy.
This is to say that it is still possible to trigger innerloop and outerloop
jobs in jenkins, they will just not be run automatically on each new PR.
Past this point coreclr-ci will be the only PR triggered jobs to appear in Coreclr.
To see test results, navigate to the coreclr-ci Azure Dev Ops page at:
https://dev.azure.com/dnceng/public/_build?definitionId=228 and view the build related to your PR.
There is a test tab which will report all test results.
* Address PR feedback
* Add queue to array syntax
* Do not create push trigger jobs
Commit migrated from https://github.com/dotnet/coreclr/commit/
21075b3f0150084e341a7d37374de67c616b9870
Brian Bohe [Tue, 19 Mar 2019 17:21:49 +0000 (10:21 -0700)]
Adding const to functions that don't change or shouldn't change state (dotnet/coreclr#23329)
Commit migrated from https://github.com/dotnet/coreclr/commit/
8497ae3ed438f443b22b00a66f42afe8f6623bbf
Jarret Shook [Tue, 19 Mar 2019 16:06:56 +0000 (09:06 -0700)]
Revert "Delete suspicious code in delegate construction (dotnet/coreclr#22830)" (dotnet/coreclr#23291)
This reverts commit dotnet/coreclr@
674bdcbc2ac824d005b5179cee3c5826b582b9a6.
Commit migrated from https://github.com/dotnet/coreclr/commit/
0786da806b9727c466f3f9393cb3d55cf9df7536
Levi Broderick [Tue, 19 Mar 2019 05:58:32 +0000 (22:58 -0700)]
Add Utf8String skeleton (dotnet/coreclr#23209)
Utf8String is an experimental type that is string-like (heap-allocated, immutable, variable-length, null-terminated) but whose inner representation is UTF-8, not UTF-16.
This is a skeleton implementation of the basic API shape. The ecosystem of APIs has not yet been built around it. All Utf8String-related code is currently surrounded by ifdefs to allow easy identification and removal from release branches.
Commit migrated from https://github.com/dotnet/coreclr/commit/
1f3f474a13bdde1c5fecdf8cd9ce525dbe5df000
Levi Broderick [Tue, 19 Mar 2019 02:17:20 +0000 (19:17 -0700)]
Add Rune.TryEncodeToUtf8 and related APIs (dotnet/coreclr#23250)
Also renames the existing Encode / Decode APIs per design review feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
31581af5fa816fb2ea94145823ec3bdd6c0b0327
Jeremy Koritzinsky [Tue, 19 Mar 2019 01:01:29 +0000 (18:01 -0700)]
Fix Interop/SizeConst/SizeConstTest to successfully run in all locales. (dotnet/coreclr#20268)
This test initially would fail when run on a multibyte character set with characters for the original value of `s.arr` such as zh-CH. We cannot change the marshaler since there is not a good way to determine how many bytes/character we need at type-load-time (when the size of the native type is determined).
This change allows us to accurately run this test on Windows machines with multi-byte character sets.
Fixes dotnet/coreclr#7793.
Commit migrated from https://github.com/dotnet/coreclr/commit/
2fcf278b141e61ef3ae4c9afa9e3dc1ea9954bb0
William Godbe [Mon, 18 Mar 2019 20:39:34 +0000 (13:39 -0700)]
Merge pull request dotnet/coreclr#23314 from dotnet/darc-master-
648053b9-42fd-4c35-979c-
5fdabc09c8cb
[master] Update dependencies from dotnet/core-setup
Commit migrated from https://github.com/dotnet/coreclr/commit/
82f60c93d6677a6245446e72624723ee70254e4f
Maoni Stephens [Mon, 18 Mar 2019 20:39:29 +0000 (13:39 -0700)]
Fix for running in a container without mem limit set on Windows; (dotnet/coreclr#23297)
also fixing the LocalGC standalone case on Linux
Commit migrated from https://github.com/dotnet/coreclr/commit/
cf887c943bf1dee978bc863b7481686ecee8ad83
Mathias Lykkegaard Lorenzen [Mon, 18 Mar 2019 20:38:57 +0000 (21:38 +0100)]
Update assemblyloadcontext.md (dotnet/coreclr#23318)
Commit migrated from https://github.com/dotnet/coreclr/commit/
f2642ad1b4c94e21a92a5e6426f7a6556551977d
Sinan Kaya [Mon, 18 Mar 2019 18:27:59 +0000 (14:27 -0400)]
Fix explicit constructor calls and Remove multi-line comments (dotnet/coreclr#23162)
* fix implicit constructor call
* extern c
format patch
* muti-line
* Remove direct constructor call
* Conversion
* Need paranthesis
* Return value on resize
* declspec(Thread)
* Ignore warnings for GCC
* Formatting issues
* Move cast to constant
Commit migrated from https://github.com/dotnet/coreclr/commit/
6100a9faf1c29b06aed3ad5bef00ce905880309d
Jan Vorlicek [Mon, 18 Mar 2019 17:53:39 +0000 (18:53 +0100)]
Merge pull request dotnet/coreclr#23307 from franksinankaya/gcc_cleanup_13
Fix conversion, unknown pragmas and Visibility Issues for GCC
Commit migrated from https://github.com/dotnet/coreclr/commit/
d9781f1d81b06ea1562521aea6d278ca876c82ad
Jan Vorlicek [Mon, 18 Mar 2019 17:53:08 +0000 (18:53 +0100)]
Merge pull request dotnet/coreclr#23179 from franksinankaya/gcc_cleanup_11
Correct current script dir detection for GCC
Commit migrated from https://github.com/dotnet/coreclr/commit/
7c0849e28dc97fb941a60bf869e822c372286ff1
José Rivero [Mon, 18 Mar 2019 17:23:30 +0000 (10:23 -0700)]
[EventPipe] Adding an IPC server to handle out of process communication. (dotnet/coreclr#23106)
This is the first commit to enable a "diagnostic port" using IPC (Named Pipe on Windows and Unix Domain Socket on other platforms). This change currently enable EventPipe to be enabled/disabled without the use of a file drop.
- Split the DiagnosticsIpc into (DiagnosticsIpc/IpcStream)
- DiagnosticsIpc (IPC listener) is meant to be used by the Diagnostic server.
- IpcStream (IPC channel) is meant to be use to communicate with the connected client.
- Change the FastSerializer dependency from `CFileStream` to `StreamWriter`
This abstraction is meant decouple the writing of objects in order to extend its usability.
The main objective is to reuse FastSerializer to stream data through the open IPC channel.
- Moved the EventPipeSessionProvider* classes to their own file.
- Added a more streamlined parsing achievable by defining a simpler binary protocol (by noahfalk).
1. Only one allocation is needed for the EventPipeProviderConfiguration array, no allocations or copies are needed for strings because we can refer to them directly out of the incoming command buffer
2. No change to the EventPipe API for enable is required. EventPipeProviderConfiguration retains its current behavior of not deleting the string pointers it holds.
3. No leaks happen because the command buffer owns the string memory and ensures that it stays alive for the duration of the Enable() call.
Commit migrated from https://github.com/dotnet/coreclr/commit/
4497df34cbe3d8bf7a21828714a3cf764da16e98
Sinan Kaya [Mon, 18 Mar 2019 13:16:31 +0000 (13:16 +0000)]
Add gcc6 and gcc8 to supported compilers
Commit migrated from https://github.com/dotnet/coreclr/commit/
e8aadb40fe94ba123087c279a57c65b5cfa3ebff
Sinan Kaya [Mon, 18 Mar 2019 02:32:13 +0000 (02:32 +0000)]
Support gcc for build-test.sh
Commit migrated from https://github.com/dotnet/coreclr/commit/
5bc76805829a6202a5d73ac22f21a6b2eb528507
Levi Broderick [Mon, 18 Mar 2019 05:30:50 +0000 (22:30 -0700)]
Make more types eligible for vectorized code paths in MemoryExtensions (dotnet/coreclr#20855)
Types like sbyte, ushort, and other 8-bit / 16-bit elemental types are now directed down the fast vectorized code paths that previously only byte and char were eligible for.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b88f2f635b02c130ae00b4d8aee3e766a60698d5
Sinan Kaya [Sun, 17 Mar 2019 20:39:59 +0000 (20:39 +0000)]
Correct ignored align attribute
src/vm/threadpoolrequest.h:166:48: error: attribute ignored in declaration of ‘struct ManagedPerAppDomainTPCount::<anonymous>’ [-Werror=attributes]
DECLSPEC_ALIGN(MAX_CACHE_LINE_SIZE) struct {
^
Commit migrated from https://github.com/dotnet/coreclr/commit/
5d3eeaa1a16dc9bcb3279e6503cc3489d644a82f
Sinan Kaya [Sun, 17 Mar 2019 20:36:22 +0000 (20:36 +0000)]
Const has static linkage
bin/obj/Linux.x64.Debug/src/dlls/mscorrc/full/mscorrc_debug.cpp:1002:110: error: ‘visibility’ attribute ignored [-Werror=attributes]
const NativeStringResourceTable nativeStringResourceTable_mscorrc_debug __attribute__((visibility("default"))) = {
Commit migrated from https://github.com/dotnet/coreclr/commit/
45d5b3a7c3b426965defd7b264d24ef00e955751
Sinan Kaya [Sat, 16 Mar 2019 17:31:17 +0000 (17:31 +0000)]
Remove old files
Commit migrated from https://github.com/dotnet/coreclr/commit/
1609b9791ff30bbefed7e6fb2eb42b4aea2d98f9
Sinan Kaya [Mon, 11 Mar 2019 17:01:39 +0000 (17:01 +0000)]
Correct current script dir detection
Commit migrated from https://github.com/dotnet/coreclr/commit/
9d81fad0a06a5153968493bf23e5b782789581c8
Sinan Kaya [Sun, 17 Mar 2019 20:24:40 +0000 (20:24 +0000)]
Fix conversion issues
Commit migrated from https://github.com/dotnet/coreclr/commit/
07f9f2f101754c38570ed75ce9a7083090769a0f
Sinan Kaya [Sat, 16 Feb 2019 20:16:53 +0000 (20:16 +0000)]
Suppress compiler warnings
remove no attribute
Commit migrated from https://github.com/dotnet/coreclr/commit/
30c6f1cf8280f49ec38369793b1fc07bb239a6dc
Egor Bogatov [Sun, 17 Mar 2019 06:10:36 +0000 (07:10 +0100)]
Move Enum and CorElementType to shared (dotnet/coreclr#23177)
Commit migrated from https://github.com/dotnet/coreclr/commit/
d6449a27effa7c983488f183dd00942fa3e3e882
Sung Yoon Whang [Sun, 17 Mar 2019 02:06:11 +0000 (19:06 -0700)]
Fixing some payload serialization issue on new EventCounters (dotnet/coreclr#23295)
* Fixing some payload serialization issue on new EventCounters
* Fix build error
Commit migrated from https://github.com/dotnet/coreclr/commit/
b31dacad8ec2b79f24e1b4ab4b0a7c0a20159601
Elinor Fung [Sat, 16 Mar 2019 22:02:52 +0000 (15:02 -0700)]
Fix x86 dumps from HandleFatalError showing misleading callstack (dotnet/coreclr#23289)
Commit migrated from https://github.com/dotnet/coreclr/commit/
5bfb7417d5841c7ff79452f92e13603c5b0459fc
Nikita Potapenko [Sat, 16 Mar 2019 15:41:47 +0000 (17:41 +0200)]
Fix typo (dotnet/coreclr#23300)
.Net -> .NET
Commit migrated from https://github.com/dotnet/coreclr/commit/
fe851740636b89c052af316576b8d47f0c5edd06
Andy Ayers [Sat, 16 Mar 2019 15:08:16 +0000 (08:08 -0700)]
JIT: clear stub register assignment for tail calls via helper (dotnet/coreclr#23288)
When we have a VSD tail call via a helper, the stub arg is passed as a normal
arg to the helper and moved to the right special register by the copy routine
that the helper invokes. So the jit does not need to pass the stub value in the
special register when calling the helper.
The stub arg gets set to that register by default, so we now unset it for the
tail call via helper case.
Closes dotnet/coreclr#18943.
Commit migrated from https://github.com/dotnet/coreclr/commit/
8ad9856bc69615557267604c1841f2a520dcf132
Bruce Forstall [Sat, 16 Mar 2019 04:27:56 +0000 (21:27 -0700)]
Introduce COMPlus arm64 HW intrinsics knobs (dotnet/coreclr#23244)
* Introduce COMPlus configuration variables to disable arm64 HW intrinsics classes
Fixes dotnet/coreclr#20708
* Formatting
Commit migrated from https://github.com/dotnet/coreclr/commit/
3b05199df4b5b04a8a0eb62c17effa8374e1d726
Brian Bohe [Sat, 16 Mar 2019 03:54:22 +0000 (20:54 -0700)]
Add siVarLoc::Equals (dotnet/coreclr#23275)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c247e12e00d2ee671f105819afebd65950134199
Stephen Toub [Sat, 16 Mar 2019 03:44:53 +0000 (23:44 -0400)]
Rename private GetEntryAssembly QCall overload (dotnet/coreclr#22396)
To avoid issues with existing private reflection-based code that now gets a parameter count mismatch exception.
Also renamed GetExecutingAssembly for consistency.
Commit migrated from https://github.com/dotnet/coreclr/commit/
80bc24981159663c2a2dcda3c1b322c2f57abab8
Elinor Fung [Sat, 16 Mar 2019 00:57:38 +0000 (17:57 -0700)]
Use HKLM for CLSID lookup (dotnet/coreclr#23258)
* Use HKLM for CLSID lookup
* Delete unused functions
Commit migrated from https://github.com/dotnet/coreclr/commit/
7445c892da3bfcc1ac2c9105eb3eda81b0a2ff29
Brian Sullivan [Fri, 15 Mar 2019 23:49:50 +0000 (16:49 -0700)]
Merge pull request dotnet/coreclr#23294 from briansull/fix-format
Fix formatting error
Commit migrated from https://github.com/dotnet/coreclr/commit/
791cd55425e1327d7d0c64d9b6aa697c69ef4c06
Brian Sullivan [Fri, 15 Mar 2019 22:40:40 +0000 (15:40 -0700)]
Fix formatting error
Commit migrated from https://github.com/dotnet/coreclr/commit/
b322cc4f7d7c0e78a5d4c42d5dc8a26ed82d673a
Brian Sullivan [Fri, 15 Mar 2019 21:55:51 +0000 (14:55 -0700)]
Merge pull request dotnet/coreclr#23272 from briansull/VNMap_Overwrite
Fix for duplicate call to Set when we run out of budget
Commit migrated from https://github.com/dotnet/coreclr/commit/
037fb36a35f8e8f8a4cae4701608142e687b376f
Elinor Fung [Fri, 15 Mar 2019 19:33:43 +0000 (12:33 -0700)]
Port AMSI scanning for assembly loads (dotnet/coreclr#23231)
* Port AMSI scanning for assembly loads
* Define PLATFORM_WINDOWS for Windows build
* Remove check for LOAD_LIBRARY_SEARCH_SYSTEM32 support
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a029763047b5144e9fdca7f4c0d70553ddbf2e8
Jan Vorlicek [Fri, 15 Mar 2019 19:32:48 +0000 (20:32 +0100)]
Fix GetFullAffinityMask for cpuCount==64 (dotnet/coreclr#23276)
The function was incorrectly assuming that shifting 64 bit
constant 1 by 64 bits to the left gets result 0.
Commit migrated from https://github.com/dotnet/coreclr/commit/
66009329a187634dc432854cdd7c893d972156eb
Fawad Halim [Fri, 15 Mar 2019 19:32:11 +0000 (14:32 -0500)]
Fixed small typo in path to crossgen (dotnet/coreclr#23286)
Commit migrated from https://github.com/dotnet/coreclr/commit/
855f6bef8e00c7aa45f2f14df4e3c18c12e8ab18
Sergey Andreenko [Fri, 15 Mar 2019 17:38:47 +0000 (10:38 -0700)]
Add `Schedule` and 'Manual' as possible triggers for outerloop jobs. (dotnet/coreclr#23271)
Commit migrated from https://github.com/dotnet/coreclr/commit/
b93bad8d293223ba35299f7ca1a2f65fac9d35ba
Egor Chesakov [Fri, 15 Mar 2019 17:35:25 +0000 (10:35 -0700)]
Exclude tracing/keyword/TwoKeywords test from running on all platforms (dotnet/coreclr#23267)
Related issue: https://github.com/dotnet/coreclr/issues/23224
Commit migrated from https://github.com/dotnet/coreclr/commit/
5704d1ba9e4f27933bfa6bc18bdb83a9d840d632
Koundinya Veluri [Fri, 15 Mar 2019 16:12:27 +0000 (09:12 -0700)]
In CLRLifoSemaphore, start the underlying semaphore with 0 for the initial signal count (dotnet/coreclr#22632)
- Port of a fix from https://github.com/dotnet/corert/pull/6955
- The underlying semaphore is only used to wake up waiters, initially there are no waiters and the signal count should be zero. This was already the case on Windows, this fixes the Unix side. The actual initial signal count is tracked in the upper layer counts.
- The initial signal count passed in is zero anyway in the places where it's used, so it makes no difference for now, just some cleanup
Commit migrated from https://github.com/dotnet/coreclr/commit/
9c4d496071c2ffdc5a8793835694d1a8ac267522
Justin Van Patten [Fri, 15 Mar 2019 14:52:31 +0000 (07:52 -0700)]
Collection<T>: Validate parameters in the public methods (dotnet/coreclr#23166)
I was looking over the new Range methods on `Collection<T>` and it occurred to me that for all existing methods, parameter validation is done in the *public* methods before calling the *protected virtual* methods. This changes the new Range methods to do the same.
Commit migrated from https://github.com/dotnet/coreclr/commit/
52311794f86596eeeedb745fc2258edd0eeafb95
Han Lee [Fri, 15 Mar 2019 14:43:28 +0000 (07:43 -0700)]
Update performance-guidelines.md (dotnet/coreclr#23183)
so that it uses run-xunit-perf.py command. run-xunit-perf.cmd is no longer there.
Commit migrated from https://github.com/dotnet/coreclr/commit/
335df1f075f06653b01838c9e64e6ee31d5f60cf
Jeremy Koritzinsky [Fri, 15 Mar 2019 05:24:15 +0000 (22:24 -0700)]
Fix Ubuntu arm build break. (dotnet/coreclr#23270)
* Add platformdefines.h include to fix build break.
Commit migrated from https://github.com/dotnet/coreclr/commit/
68fad02f41707a5333992cd7701e75aefb4e51c8
Egor Bogatov [Fri, 15 Mar 2019 03:41:05 +0000 (06:41 +0300)]
Move TypeLoadException to shared (dotnet/coreclr#23238)
* fix coding-style
* shorter form for TypeName property
* move coreclr-specific ctor to TypeLoadException
Commit migrated from https://github.com/dotnet/coreclr/commit/
45dd63f1523c559a3a5ba4029a46ef08b55dd10d
Eric StJohn [Fri, 15 Mar 2019 02:13:11 +0000 (19:13 -0700)]
Make ILProj work in Visual Studio (dotnet/coreclr#23264)
CPS depends the targets defined here and will fail to load a project if these aren't imported.
Commit migrated from https://github.com/dotnet/coreclr/commit/
fa43509b42083ba044660d7ea566af79207a4275
Jan Kotas [Fri, 15 Mar 2019 01:36:41 +0000 (18:36 -0700)]
Disable failing test against dotnet/coreclr#23262 (dotnet/coreclr#23263)
Commit migrated from https://github.com/dotnet/coreclr/commit/
832c78f88083dc119632a0c0befdaa1e8d5c0ea7
Brian Sullivan [Thu, 14 Mar 2019 23:19:07 +0000 (16:19 -0700)]
Fix for duplicate call to Set when we run out of budget
Commit migrated from https://github.com/dotnet/coreclr/commit/
6a773c4a849048b65b62940e3c060144cbd31f01
Bruce Forstall [Thu, 14 Mar 2019 22:51:30 +0000 (15:51 -0700)]
Merge pull request dotnet/coreclr#23260 from BruceForstall/AlwaysArchiveCrossgenComparisonResults
Archive crossgen comparison job results even if job fails
Commit migrated from https://github.com/dotnet/coreclr/commit/
db1d0fcb95948fbfbbddf258232d1e066c2c1f78
Jan Vorlicek [Thu, 14 Mar 2019 22:31:25 +0000 (23:31 +0100)]
Merge pull request dotnet/coreclr#23180 from franksinankaya/gcc_cleanup_12
Fix conversion and signedness issues in Event Tracer
Commit migrated from https://github.com/dotnet/coreclr/commit/
a9dfb5cd25b882082e2605161c4fdd7faaa949ec
Aaron Robinson [Thu, 14 Mar 2019 22:15:56 +0000 (15:15 -0700)]
Fix the calling convention for P/Invokes and delegates to hostpolicy (dotnet/coreclr#23249)
* Fix the calling convention for P/Invokes and delegates
* Update mock library to match official hostpolicy calling conventions
Commit migrated from https://github.com/dotnet/coreclr/commit/
ce39609eff13c327b1ac27caeae83f691e67170a
Jan Vorlicek [Thu, 14 Mar 2019 21:30:00 +0000 (22:30 +0100)]
Fix GetProcessAffinityMask (dotnet/coreclr#23247)
The function was returning mask not expected by runtime for coreclr
built with NUMA enabled on machines with multiple NUMA nodes.
The mask was 0 in case the current process was affinitized to CPUs
from multiple NUMA nodes. It was following MSDN doc, however the
doc turned out to be ambiguous. Moreover, the runtime depended
on the fact that on Windows, a process is never run on multiple
NUMA nodes unless is explicitly calls APIs to set ideal processor
for threads. But on Unix, there is no such case and by default, a
process is affinitized to all existing processors over all NUMA
nodes.
And there was one more issue. The GetProcessAffinityMask was returning
a mask within a single CPU group, which is a transformed view of
NUMA node on Windows. So the CPU indices in the mask didn't necessarily
correspond to the native Unix CPU indices. But, the SetThreadAffinityMask
was using the native Unix CPU indices.
To fix the problem, the GetProcessAffinityMask is changed so that
it always returns a mask corresponding to the native Unix CPU indices
(reporting upto 64 processors as the mask is 64 bit wide). Thus it
corresponds to what the SetThreadAffinityMask expects. And it also exactly
matches the behavior when NUMA support is not compiled in.
Moreover, the COMPlus_GCHeapAffinitizeMask bits now correspond to
the native Unix CPU indices.
The GetProcessAffinityMask is used by GC and thread pool only when
NUMA is not enabled using the COMPlus_GCCpuGroup env variable.
Commit migrated from https://github.com/dotnet/coreclr/commit/
23fbf7e7ab231876b9d54b52bac044cdde159118
Koundinya Veluri [Thu, 14 Mar 2019 20:51:25 +0000 (13:51 -0700)]
Fix DisableTier0Jit when multi-core JIT is enabled (dotnet/coreclr#23200)
- With multi-core JIT, a method may be jitted before it is called, in which case the call counting entry would not already exist
Commit migrated from https://github.com/dotnet/coreclr/commit/
50d38a42a5085ad6ed43fc480c6d2b0562e6848e
Sergey Andreenko [Thu, 14 Mar 2019 20:36:03 +0000 (13:36 -0700)]
Update CoreFX Linux Arm64 exclusion list. (dotnet/coreclr#22697)
* Update CoreFX Linux Arm64 exclusion list.
* Exclude System.Globalization.Calendars.Tests.
* Exclude System.Threading.Tasks.Tests.
* Exclude dotnet/coreclr#23242
Commit migrated from https://github.com/dotnet/coreclr/commit/
5f42cca807df8d70b206188858c8636f73ce0f78
Bruce Forstall [Thu, 14 Mar 2019 20:34:53 +0000 (13:34 -0700)]
Archive crossgen comparison job results even if job fails
Commit migrated from https://github.com/dotnet/coreclr/commit/
c75aa7c23c0bbac51ade0844d9e38e9d38e36c65
Jan Vorlicek [Thu, 14 Mar 2019 09:22:44 +0000 (10:22 +0100)]
Merge pull request dotnet/coreclr#23203 from janvorli/fix-no-return-false-positives
Fix no-return false positives in static analyzer build
Commit migrated from https://github.com/dotnet/coreclr/commit/
6958ede8e835048b9d1ee9843d7587cacf527101
Michal Strehovský [Thu, 14 Mar 2019 08:33:59 +0000 (09:33 +0100)]
Delete suspicious code in delegate construction (dotnet/coreclr#22830)
Delegate construction is trying to do some weird special casing around closed delegates to interface methods that is breaking non-virtual delegates to default interface methods. The special casing has suspicious comments indicating people didn't know why it's needed in the first place, so I'm going with a theory that it's a cargo cult (e.g. why the reasons specified in the comments don't apply to normal virtual methods?).
Fixes dotnet/coreclr#22728.
Commit migrated from https://github.com/dotnet/coreclr/commit/
674bdcbc2ac824d005b5179cee3c5826b582b9a6
Sung Yoon Whang [Thu, 14 Mar 2019 02:42:28 +0000 (19:42 -0700)]
Disable tracing/inducedgc test on all Unix platforms (dotnet/coreclr#23240)
* Disabling tracing/tracevalidation/inducedgc test on all unix
* Leave the exclusion list on arm64 there
Commit migrated from https://github.com/dotnet/coreclr/commit/
b6ae87f8b644a51bf4cd926770d20d22b3a2031f
Sergey Andreenko [Thu, 14 Mar 2019 01:31:27 +0000 (18:31 -0700)]
Fix/clean compNoGCHelperCallKillSet for arm. (dotnet/coreclr#23078)
* Add an assert to compNoGCHelperCallKillSet.
That registers that lose GC or byref values also are in compHelperCallKillSet return set.
* Move compNoGCHelperCallKillSet from compiler to emitter.
* Rename `compNoGCHelperCallKillSet` to `emitGetGCRegsKilledByNoGCCall`.
* Fix GCRegsKill sets for arm CORINFO_HELP_PROF_FCN_ENTER and CORINFO_HELP_PROF_FCN_LEAVE.
Commit migrated from https://github.com/dotnet/coreclr/commit/
83327daf3c6186587f91182c39afd8e768baecfd
Sinan Kaya [Mon, 11 Mar 2019 17:58:42 +0000 (17:58 +0000)]
Choose the SString constructor explicitly
Commit migrated from https://github.com/dotnet/coreclr/commit/
72f704c3ec9c51644777a22898e9d820080189ec
Sinan Kaya [Mon, 11 Mar 2019 18:12:01 +0000 (18:12 +0000)]
signedness conversion
Commit migrated from https://github.com/dotnet/coreclr/commit/
211e8c028d2ce217ea51b681f9dbe52968280d32
Sinan Kaya [Mon, 11 Mar 2019 17:31:46 +0000 (17:31 +0000)]
fix conversion issues
Commit migrated from https://github.com/dotnet/coreclr/commit/
f1533899b70c634be152c4ad19db99fd5fa79725
Brian Sullivan [Thu, 14 Mar 2019 00:33:25 +0000 (17:33 -0700)]
Merge pull request dotnet/coreclr#23109 from briansull/gh-21231
Fix for Issue 21231
Commit migrated from https://github.com/dotnet/coreclr/commit/
3d4ed7c829803206db7caea1e348bc4791aec0a6
Levi Broderick [Wed, 13 Mar 2019 22:43:25 +0000 (15:43 -0700)]
Add OperationStatus-based UTF8 transcoding APIs (dotnet/coreclr#23219)
Commit migrated from https://github.com/dotnet/coreclr/commit/
fdd611cbcdc0f7d922dd111e5e1831663c67e685
Bruce Forstall [Wed, 13 Mar 2019 22:38:41 +0000 (15:38 -0700)]
Merge pull request dotnet/coreclr#23220 from BruceForstall/FixArm64HfaJmpCallNyi
Arm64: Implement JMP call for HFA register arguments
Commit migrated from https://github.com/dotnet/coreclr/commit/
c71c92a0c0ff7ac442c3ca9d1ae7cc177072b23f
Brian Sullivan [Thu, 7 Mar 2019 22:20:44 +0000 (14:20 -0800)]
Fix for Issue 21231
When transferring a Zero offset from one GenTree node to another, we need to check if there already is a FieldSeq and append to it.
Added third parameter 'kind' to JitHashTable::Set, and Added enum SetKind
Only allow Set to overwrite an existing entry when kind is set to Overwrite.
Added validation for all calls to JitHashTable::Set
asserting that we don't expect the key to already exist or that we passed Overwrite indicating that we expect to handle it properly.
Added two test cases for Issue 21231
Commit migrated from https://github.com/dotnet/coreclr/commit/
ef1d1e86da8406ca86ca98b8d92b038fe1f08d7a
Juan Hoyos [Wed, 13 Mar 2019 21:38:41 +0000 (14:38 -0700)]
Update documentation: make docker images point to the registry. (dotnet/coreclr#23243)
Commit migrated from https://github.com/dotnet/coreclr/commit/
ac4681867c7dbb92d32d0f26ec7d611b37e92e7e
Carol Eidt [Wed, 13 Mar 2019 21:26:51 +0000 (14:26 -0700)]
Fix SIMD handle issues (dotnet/coreclr#23193)
* Fix SIMD handle issues
PR dotnet/coreclr#23052 was overly aggressive at applying the provided class handle (which defaults to NO_CLASS_HANDLE). In addition, make a small change to `SIMDIntrinsicWiden`, as it doesn't need to go through the complexity of inferring a class handle when it already exists on the node it's duplicating.
Fix dotnet/coreclr#23159
Commit migrated from https://github.com/dotnet/coreclr/commit/
5198ce8d7aa80786b1ca7502db5fcf8cf6f3ddce
Carol Eidt [Wed, 13 Mar 2019 21:19:17 +0000 (14:19 -0700)]
Merge pull request dotnet/coreclr#23212 from CarolEidt/VectorABITest
Preliminary Vector ABI test
Commit migrated from https://github.com/dotnet/coreclr/commit/
52dc01aff1aeb1d972846706c65d7beb8ff9e1a7
Sergey Andreenko [Wed, 13 Mar 2019 20:08:38 +0000 (13:08 -0700)]
exclude tracing/keyword/TwoKeywords/TwoKeywords on WIndows x86. (dotnet/coreclr#23237)
Commit migrated from https://github.com/dotnet/coreclr/commit/
bc9722ccdc539413a386c0aff6500bfa6d88fd80
Michal Strehovsky [Wed, 13 Mar 2019 12:30:44 +0000 (05:30 -0700)]
Fix missed RelocatedType annotation
[tfs-changeset: 1735855]
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
00fbc8c5a94bde60e5f84e80ac8dd6b6da3ca310
Michal Strehovský [Wed, 13 Mar 2019 18:50:13 +0000 (19:50 +0100)]
Enable FeatureDefaultInterfaces unconditionally (dotnet/coreclr#23225)
Fixes dotnet/coreclr#22940.
Commit migrated from https://github.com/dotnet/coreclr/commit/
6eebb9d678a786c081b121709fa7471ff0bd08df
Andrew Au [Wed, 13 Mar 2019 16:56:41 +0000 (09:56 -0700)]
Fix issue 23151 (Cleanup TODO introduced by PR dotnet/coreclr#23148)
Commit migrated from https://github.com/dotnet/coreclr/commit/
c6089f795eb9d5e72f5db5c530d73bc901245e2a
Sung Yoon Whang [Wed, 13 Mar 2019 08:10:35 +0000 (01:10 -0700)]
Add new counter APIs (dotnet/coreclr#23077)
* Refactor EventCounter and add PollingCounter
* Add PollingCounter
* Add IncrementingEventCounter and IncrementingPollingCounter
* Add MetaData API to Counters
* Some more refactoring
* removing commented out code
* some more cleanup
* build fix and addressing some PR comments
* Addressing PR feedback
* use StringBuilder to generate metadata string
Commit migrated from https://github.com/dotnet/coreclr/commit/
d247b06ed9c4dc3e6f625629da7db846be687f2d
Aaron Robinson [Wed, 13 Mar 2019 03:34:45 +0000 (20:34 -0700)]
Default Interface COM testing project (dotnet/coreclr#23195)
* Add tests for native COM client consuming managed COM server that
consumes interfaces with default implementation.
Commit migrated from https://github.com/dotnet/coreclr/commit/
b364ef6c7872d90d75063570f25495286b87acfd
Bruce Forstall [Sat, 9 Mar 2019 01:58:54 +0000 (17:58 -0800)]
Arm64: Implement JMP call for HFA register arguments
Add the code to load up HFA register arguments into their correct registers
before a JMP call.
Removes remaining NYI.
Fixes dotnet/coreclr#23147
Add a test case with several variants of HFA and JMP call.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c08f182bc90b0d32279201b7de89658765e3f6e8
Jan Vorlicek [Wed, 13 Mar 2019 00:07:00 +0000 (01:07 +0100)]
Move ANALYZER_NORETURN after function return type.
GCC doesn't like attributes before the extern keyword.
Commit migrated from https://github.com/dotnet/coreclr/commit/
78004e9a33422d1c2399339a3ac408f4c654d06b
Andy Ayers [Tue, 12 Mar 2019 23:46:24 +0000 (16:46 -0700)]
Don't retain modifiers for instantation stub signatures (dotnet/coreclr#23210)
`ConvToJitSig` is not expecting to see modifiers for return types in sigs,
so don't bother preserving them when creating instantiation stubs.
This comes up for instantiation stubs for methods of `ReadOnlySpan<T>`.
Also, if we are preserving modifiers in a sig, make sure to prefix their type
handles with `ELEM_TYPE_INTERNAL`.
Fixes dotnet/coreclr#23136.
Commit migrated from https://github.com/dotnet/coreclr/commit/
5831fe40394fcdc34fa161041956d379db433dd6
Tanner Gooding [Tue, 12 Mar 2019 21:29:38 +0000 (14:29 -0700)]
Fixing a couple of issues in the Utf8Parsing/Formatting code (dotnet/coreclr#23134)
* Fixing NumberToSingle and NumberToDouble to handle DigitsCount == 0
* Fixing Utf8Formatter.Float to transcode non ASCII bytes
* Responding to PR feedback
Commit migrated from https://github.com/dotnet/coreclr/commit/
b00f12ce4457fc013efce340011b4759e78f9948
Carol Eidt [Tue, 12 Mar 2019 18:28:10 +0000 (11:28 -0700)]
Preliminary Vector ABI test
Commit migrated from https://github.com/dotnet/coreclr/commit/
31461ba11fecd93f951b3612e7487228c32dde62
John Salem [Tue, 12 Mar 2019 16:39:50 +0000 (09:39 -0700)]
Fix syntax bug: bash requires spaces around brackets for tests (dotnet/coreclr#23017)
Commit migrated from https://github.com/dotnet/coreclr/commit/
3a9bb4176f892bbde935478ff04cb05d3a54a64a
Andrew Au [Fri, 1 Mar 2019 18:12:48 +0000 (10:12 -0800)]
Fix issue 21089 (Add tests for the `EventPipe support for "Parameters"` feature.)
Commit migrated from https://github.com/dotnet/coreclr/commit/
18b6abc2c56adacb27b165491fc0ad757c24abdb
Michal Strehovský [Mon, 11 Mar 2019 20:57:29 +0000 (21:57 +0100)]
Replace Delegate.CreateDelegate (dotnet/corertdotnet/coreclr#7147)
Replacing this with a pattern that is easier to statically analyze. We use the GetType/GetMethod/CreateDelegate pattern in several places already.
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
Commit migrated from https://github.com/dotnet/coreclr/commit/
cefce5b5b82bb31600824935c585225aed059271
Carol Eidt [Mon, 11 Mar 2019 23:11:50 +0000 (16:11 -0700)]
Merge pull request dotnet/coreclr#23141 from CarolEidt/Fix23059
Fix handling of struct setup assignments
Commit migrated from https://github.com/dotnet/coreclr/commit/
9dcbb4707c160b3479489e8421802c2eb3d93b44
Hugh Bellamy [Mon, 11 Mar 2019 20:59:13 +0000 (20:59 +0000)]
Fix NRE in EqualStringArrays (dotnet/coreclr#23174)
Commit migrated from https://github.com/dotnet/coreclr/commit/
e9f23f604d6ed754148930ac85c3bcd1e06b4e55
Michal Strehovský [Mon, 11 Mar 2019 20:58:20 +0000 (21:58 +0100)]
Fix bad test (dotnet/coreclr#23173)
The test was testing that a non-virtual call to an abstract method that is methodimpl on the same type will land in the methodimpl. This behavior is not specced and cannot be hit with any mainstream .NET languages. We are making non-virtual calls to abstract methods throw a BadImageFormatException instead.
Fixes dotnet/coreclr#23096.
Commit migrated from https://github.com/dotnet/coreclr/commit/
27b39d83535231d31f562002b78ac1e1b3b54be3
Bruce Forstall [Mon, 11 Mar 2019 20:36:45 +0000 (13:36 -0700)]
Merge pull request dotnet/coreclr#23187 from BruceForstall/AlwaysArchiveCoreFxTestResultsXml
Always archive corefx testresults.xml files
Commit migrated from https://github.com/dotnet/coreclr/commit/
873cc91a6e88364fd758dec2eb61ed20017cfdee
Bruce Forstall [Mon, 11 Mar 2019 20:10:43 +0000 (13:10 -0700)]
Always archive corefx testresults.xml files
These were only being archived for successful runs, which is
when they are the least interesting. Archive them for all test runs.
Commit migrated from https://github.com/dotnet/coreclr/commit/
99935d80bc2047393452fee6210e93ce569afb1c
Jan Vorlicek [Mon, 11 Mar 2019 16:49:05 +0000 (09:49 -0700)]
Fix no-return false positives in static analyzer build
There were about 800 false positive issues in the clang status analyzer
build caused by the fact that various forms of asserts were not considered
by the analyzer as not returning.
This change adds __attribute__((analyzer_noreturn)) (wrapped in a macro) to
those assertion functions.
Commit migrated from https://github.com/dotnet/coreclr/commit/
c4ca1ddb2413a354e8f49fff4680f175a02e7d8e