platform/upstream/dotnet/runtime.git
4 years agoFix crossgen2 compilation with reverse pinvoke (#222)
Jan Vorlicek [Tue, 26 Nov 2019 09:40:33 +0000 (10:40 +0100)]
Fix crossgen2 compilation with reverse pinvoke (#222)

Crossgen2 is failing to compile assemblies that contain reverse pinvoke
helpers with NotImplementedException.
This change fixes it by throwing RequiresRuntimeJit exception instead
for CORINFO_HELP_JIT_REVERSE_PINVOKE_ENTER and
CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT

4 years agoTemp workaround to disable PInvoke ILStubs with EH blocks (#249)
Fadi Hanna [Tue, 26 Nov 2019 09:25:59 +0000 (01:25 -0800)]
Temp workaround to disable PInvoke ILStubs with EH blocks (#249)

4 years agoFix friend class declaration (#268)
Sinan Kaya [Tue, 26 Nov 2019 09:03:09 +0000 (04:03 -0500)]
Fix friend class declaration (#268)

[ 27%] Building CXX object src/pal/src/CMakeFiles/coreclrpal.dir/arch/amd64/signalhandlerhelper.cpp.o
coreclr/src/pal/src/thread/thread.cpp:1613:1: error: ‘CorUnix::PAL_ERROR CorUnix::InternalSetThreadDescription(CorUnix::CPalThread*, HANDLE, PCWSTR)’ has not been declared within CorUnix [-Werror]
 CorUnix::InternalSetThreadDescription(
 ^~~~~~~
In file included from coreclr/src/pal/src/include/pal/dbgmsg.h:160:0,
                 from coreclr/src/pal/src/thread/thread.cpp:21:
coreclr/src/pal/src/include/pal/thread.hpp:204:13: note: only here as a friend
             InternalSetThreadDescription(

4 years agoJIT: if IR and stack can't provide a ref class handle, use object (#239)
Andy Ayers [Tue, 26 Nov 2019 08:16:37 +0000 (00:16 -0800)]
JIT: if IR and stack can't provide a ref class handle, use object (#239)

In some cases we may end up in `lvaSetClass` without a valid ref class handle
from either the IR or the stack. Use the handle for `object` as a conservative
fallback.

Closes dotnet/coreclr#27923.

4 years agoFix exception handling in interface method that checks for marshalling requirements...
Fadi Hanna [Tue, 26 Nov 2019 06:38:56 +0000 (22:38 -0800)]
Fix exception handling in interface method that checks for marshalling requirements (#252)

4 years agoCleanup warnings for uncompiled methods for some by-design scenarios (#250)
Fadi Hanna [Tue, 26 Nov 2019 04:21:27 +0000 (20:21 -0800)]
Cleanup warnings for uncompiled methods for some by-design scenarios (#250)

4 years agoFix setting of DllImportResolver in crossgen2. (#167)
Eugene Rozenfeld [Tue, 26 Nov 2019 01:17:36 +0000 (17:17 -0800)]
Fix setting of DllImportResolver in crossgen2. (#167)

After change https://github.com/dotnet/coreclr/pull/27068 we
are creating multiple instances of CorInfoImpl. That broke the scenario
when jitpath is set: we are calling NativeLibrary.SetDllImportResolver
more than once, which results in
`System.InvalidOperationException: A resolver is already set for the assembly.`

This fix ensures that we call NativeLibrary.SetDllImportResolver
at most once.

This change also ensures that we set the resolver before attempting
to load the jit. That fixes the --jitpath scenario on Linux.

4 years agoImprove test coverage for RSAEncryptionPadding comparsion (#230)
Andrew Au [Tue, 26 Nov 2019 00:13:40 +0000 (16:13 -0800)]
Improve test coverage for RSAEncryptionPadding comparsion (#230)

* Improve test coverage for RSAEncryptionPadding comparsion

* Simplify RSASignaturePadding comparison logic

4 years agoConsolidate docs (#251)
Viktor Hofer [Mon, 25 Nov 2019 22:52:43 +0000 (23:52 +0100)]
Consolidate docs (#251)

* Consolidate sub-repo docs

4 years agoFix marshalling null delegates (#241)
Michal Strehovský [Mon, 25 Nov 2019 22:21:55 +0000 (23:21 +0100)]
Fix marshalling null delegates (#241)

Null delegates marshal as null pointers and vice versa.

4 years agoFix test build error when .NET Core SDK 5 is installed on the machine (#225)
Bruce Forstall [Mon, 25 Nov 2019 21:41:49 +0000 (13:41 -0800)]
Fix test build error when .NET Core SDK 5 is installed on the machine (#225)

Fixes https://github.com/dotnet/runtime/issues/185

4 years agoMerge pull request #157 from ivdiazsa/parallel-test-builds
Ivan Diaz Sanchez [Mon, 25 Nov 2019 21:32:00 +0000 (13:32 -0800)]
Merge pull request #157 from ivdiazsa/parallel-test-builds

Removed test scripts platform conditions to generate test wrappers.

4 years agoSeveral cleanups in CoreCLR YAML scripts (#236)
Tomáš Rylek [Mon, 25 Nov 2019 21:26:30 +0000 (22:26 +0100)]
Several cleanups in CoreCLR YAML scripts (#236)

* Stop transporting the test subtree as it shouldn't be actually
necessary.

* Clarify build phases in multi-subrepo world; unify script executions

* Unify the naming style for managed vs. native test artifacts

* Fix clangArg to be empty on Windows_NT

* Roll back unification of main product build script invocation

* Add CoreCLR prefix to test artifact name

4 years agoHttpStress: Use Windows containers and docker-compose (#209)
Eirik Tsarpalis [Mon, 25 Nov 2019 20:59:16 +0000 (20:59 +0000)]
HttpStress: Use Windows containers and docker-compose (#209)

4 years agoProposed set of norms and best practices for issue and pull request management (#78)
Jeff Schwartz [Mon, 25 Nov 2019 19:51:44 +0000 (11:51 -0800)]
Proposed set of norms and best practices for issue and pull request management (#78)

* Proposed set of norms and best practices for issue and pull request management

* additional feedback

* additional feedback

* additional feedback

4 years agoJIT: optimize more array covariant store checks in the importer (#189)
Andy Ayers [Mon, 25 Nov 2019 16:19:14 +0000 (08:19 -0800)]
JIT: optimize more array covariant store checks in the importer (#189)

The importer was already optimizing away some array covariant store checks,
for cases where the value being stored was null, or the value being stored
came from the same array.

Change this to only optimize array covariant store checks in the importer
when optimization is enabled. For minopts, invoking the store helper produces
smaller code.

Update `gtGetClassHandle` to obtain the array handle from array newobjs,
and use this to also optimize cases where the destination array is exactly
`object[]` or is `T[]` where `T` is final and not itself subject to special
casting logic. In particular this gets the common case where `T` is `string`.

Closes dotnet/coreclr#6537.

4 years agoAllow project builds from script (#201)
Viktor Hofer [Mon, 25 Nov 2019 14:15:21 +0000 (15:15 +0100)]
Allow project builds from script (#201)

* Allow project builds from script

* Fix installer builds

4 years agoRemove optional consumption of CoreCLR transport packages in CoreCLR test build....
Jeremy Koritzinsky [Mon, 25 Nov 2019 14:13:58 +0000 (08:13 -0600)]
Remove optional consumption of CoreCLR transport packages in CoreCLR test build. (#223)

4 years agoMake marshallers shareable again (#240)
Michal Strehovský [Mon, 25 Nov 2019 13:05:14 +0000 (14:05 +0100)]
Make marshallers shareable again (#240)

Fixes build breaks on CoreRT side.

4 years agoRemove System.ComponentModel.TypeConverter exclusion from SuperILC (#217)
Jan Vorlicek [Mon, 25 Nov 2019 02:37:46 +0000 (03:37 +0100)]
Remove System.ComponentModel.TypeConverter exclusion from SuperILC (#217)

It turns out it is not needed anymore, the assembly compiles fine

4 years agoAddress some IDEXXX analysis warnings (#180)
Stephen Toub [Mon, 25 Nov 2019 00:54:27 +0000 (19:54 -0500)]
Address some IDEXXX analysis warnings (#180)

* Address some IDEXXX analysis warnings

* Address PR feedback

4 years agoUse #nullable restore in code generators (#238)
Stephen Toub [Sun, 24 Nov 2019 04:08:35 +0000 (23:08 -0500)]
Use #nullable restore in code generators (#238)

4 years agoAnnotate System.IO.MemoryMappedFiles for nullable reference types (#220)
Stephen Toub [Sat, 23 Nov 2019 21:42:18 +0000 (16:42 -0500)]
Annotate System.IO.MemoryMappedFiles for nullable reference types (#220)

4 years agoAnnotate System.IO.Compression.Brotli for nullable reference types (#218)
Stephen Toub [Sat, 23 Nov 2019 21:41:52 +0000 (16:41 -0500)]
Annotate System.IO.Compression.Brotli for nullable reference types (#218)

* Annotate System.IO.Compression.Brotli for nullable reference types

* Address PR feedback

4 years agoFix AV in System.StubHelpers.CSTRMarshaler.ConvertFixedToNative (#202)
Fadi Hanna [Sat, 23 Nov 2019 05:43:36 +0000 (21:43 -0800)]
Fix AV in System.StubHelpers.CSTRMarshaler.ConvertFixedToNative (#202)

* Fix AV in System.StubHelpers.CSTRMarshaler.ConvertFixedToNative

* Add test coverage

4 years agoUnifying many of the R2R and COR constants between crossgen2 and the r2rdump tools...
Fadi Hanna [Sat, 23 Nov 2019 00:55:46 +0000 (16:55 -0800)]
Unifying many of the R2R and COR constants between crossgen2 and the r2rdump tools (#172)

* Unifying many of the R2R and COR constants between crossgen2 and the r2rdump tools

* Move tools/crossgen2/Common to tools/Common

* Adjust paths in csproj files

4 years agoFix printing switching to MinOpts or Optimized (#214)
Egor Chesakov [Fri, 22 Nov 2019 20:15:11 +0000 (12:15 -0800)]
Fix printing switching to MinOpts or Optimized (#214)

* Initialize compSwitchedToOptimized and compSwitchedToMinOpts before calling to compInitOptions in jit/compiler.cpp

* Add LF to switchedToOptimized and switchedToMinOpts messages in jit/compiler.cpp

4 years agoFix getting affinity set on MUSL on Jetson TX2 (#206)
Jan Vorlicek [Fri, 22 Nov 2019 16:53:02 +0000 (17:53 +0100)]
Fix getting affinity set on MUSL on Jetson TX2 (#206)

* Fix getting affinity set on MUSL on Jetson TX2

The code in PAL_GetCurrentThreadAffinitySet relied on the fact that the
number of processors reported as configured in the system is always
larger than the maximum CPU index. However, it turns out that it is not
true on some devices / distros. The Jetson TX2 reports CPUs 0, 3, 4 and
5 in the affinity mask and the 1 and 2 are never reported. GLIBC reports
6 as the number of configured CPUs, however MUSL reports just 4. The
PAL_GetCurrentThreadAffinitySet was using the number of CPUs reported as
configured as the upper bound for scanning affinity set, so on Jetson
TX2, the affinity mask returned had just two bits set while there were
4 CPUs. That triggered an assert in the GCToOSInterface::Initialize.

This change fixes that by looping over all cpu indices in the affinity set.
Similar fix went to GetProcessorForHeap and related stuff in gcenv.unix.cpp

4 years agoDelete unnecessary intrinsic attributes (#216)
Jan Kotas [Fri, 22 Nov 2019 16:37:34 +0000 (17:37 +0100)]
Delete unnecessary intrinsic attributes (#216)

These are left-over from .NET Native. Not needed for RyuJIT or Mono.

4 years agoMerge pull request #215 from janvorli/fix-abstractcalls-test
Jan Vorlicek [Fri, 22 Nov 2019 15:12:59 +0000 (16:12 +0100)]
Merge pull request #215 from janvorli/fix-abstractcalls-test

Fix crossgen2 handling of direct calls to abstract methods

4 years agoChange the exception thrown for invalid abstract calls
Jan Vorlicek [Fri, 22 Nov 2019 11:21:24 +0000 (12:21 +0100)]
Change the exception thrown for invalid abstract calls

It seems that the InvalidProgramException is more appropriate.

4 years agoFix crossgen2 handling of direct calls to abstract methods
Jan Vorlicek [Fri, 22 Nov 2019 10:38:55 +0000 (11:38 +0100)]
Fix crossgen2 handling of direct calls to abstract methods

This change fixes two differences between old and new crossgen in the
getCallInfo method. Direct calls to abstract methods were being compiled
as if they were possible and lead to runtime crash in the call chain
from the PreStubWorker.

4 years agoMerge pull request #194 from janvorli/fix-box-on-method-handle
Jan Vorlicek [Fri, 22 Nov 2019 10:22:33 +0000 (11:22 +0100)]
Merge pull request #194 from janvorli/fix-box-on-method-handle

Fix missing unbox flag on method handle for struct methods

4 years agoRemove unused code in app domain (#204)
Elinor Fung [Fri, 22 Nov 2019 09:40:42 +0000 (01:40 -0800)]
Remove unused code in app domain (#204)

4 years agoRemove duplicate yml template file (#210)
Santiago Fernandez Madero [Fri, 22 Nov 2019 08:29:40 +0000 (00:29 -0800)]
Remove duplicate yml template file (#210)

* Delete common upload artifact template

* Move upload artifact step from coreclr to common

4 years agoSet platform for tools.local fixed to AnyCPU (#205)
Viktor Hofer [Fri, 22 Nov 2019 08:29:18 +0000 (09:29 +0100)]
Set platform for tools.local fixed to AnyCPU (#205)

4 years agoDisable incremental linking in coreclr Checked Windows builds (#192)
Bruce Forstall [Fri, 22 Nov 2019 06:34:43 +0000 (22:34 -0800)]
Disable incremental linking in coreclr Checked Windows builds (#192)

We force `/OPT:REF` and this is incompatible with incremental linking
(and yields a warning to that effect). To fix, explicitly disable
incremental linking.

(I couldn't find anyplace where it was explicitly enabled, so I believe
it is enabled by default with the given linker options.)

Another option would be to not force `/OPT:REF` for Checked builds.

4 years agoUpdating the JIT to support marshaling blittable generics. (#103)
Tanner Gooding [Fri, 22 Nov 2019 05:27:42 +0000 (21:27 -0800)]
Updating the JIT to support marshaling blittable generics. (#103)

* Adding some tests for marshalling generics.

* Updating the VM to allow marshalling blittable generic types.

* Adding comments for why certain blittable generics are blocked from being marshaled

* Removing the new IDS_EE_BADMARSHAL_BLITTABLE_GENERICS_RESTRICTION string in favor of fixing the text in IDS_EE_BADMARSHAL_GENERICS_RESTRICTION

* Updating CrossGen2 to handle marshalling blittable generics

4 years agoAdd a script for generating a .sln containing all library projects (#186)
Stephen Toub [Fri, 22 Nov 2019 03:56:13 +0000 (22:56 -0500)]
Add a script for generating a .sln containing all library projects (#186)

* Add a script for generating a .sln containing all library projects

* Add a script for generating a .sln containing all library projects

4 years agoAddress new nullable warnings from compiler [MaybeNull] updates (#179)
Stephen Toub [Fri, 22 Nov 2019 03:56:03 +0000 (22:56 -0500)]
Address new nullable warnings from compiler [MaybeNull] updates (#179)

The compiler is updating its handling of maybe-null values, and in doing so we're getting a bunch of new warnings.  We've not yet ingested the new compiler, but this proactively addresses the warnings for when we do.

4 years agoUpdate SslClientAuthenticationOptionsExtensions.ShallowClone to copy CipherSuitesPoli...
Stephen Toub [Fri, 22 Nov 2019 03:53:01 +0000 (22:53 -0500)]
Update SslClientAuthenticationOptionsExtensions.ShallowClone to copy CipherSuitesPolicy (#211)

4 years agoAvoid infinite recursion in RSAEncryptionPadding equality check
Andrew Au [Fri, 22 Nov 2019 03:17:06 +0000 (19:17 -0800)]
Avoid infinite recursion in RSAEncryptionPadding equality check

4 years agoRemove some NoWarns from CoreLib (#183)
Stephen Toub [Fri, 22 Nov 2019 01:49:55 +0000 (20:49 -0500)]
Remove some NoWarns from CoreLib (#183)

4 years agoRemove AppDomain::GetFusionContext (#188)
Elinor Fung [Fri, 22 Nov 2019 01:43:01 +0000 (17:43 -0800)]
Remove AppDomain::GetFusionContext (#188)

It is just the TPA binder context now.

Remove dead code

4 years agoFix `optComputeAssertionGen` dump newline. (#193)
Sergey Andreenko [Fri, 22 Nov 2019 00:45:46 +0000 (00:45 +0000)]
Fix `optComputeAssertionGen` dump newline. (#193)

4 years agoMove more yaml shared templates to common (#175)
Santiago Fernandez Madero [Fri, 22 Nov 2019 00:26:18 +0000 (16:26 -0800)]
Move more yaml shared templates to common (#175)

* Move more shared components to common and move helix queues out of platform-matrix

* PR Feedback

4 years agoUpdate error on failure to execute when SDK could not be resolved (#163)
Elinor Fung [Thu, 21 Nov 2019 22:21:40 +0000 (14:21 -0800)]
Update error on failure to execute when SDK could not be resolved (#163)

4 years agoUpdate Version.Details.xml (#197)
Viktor Hofer [Thu, 21 Nov 2019 22:16:58 +0000 (23:16 +0100)]
Update Version.Details.xml (#197)

4 years agoLibraries testing (#178)
Viktor Hofer [Thu, 21 Nov 2019 22:13:26 +0000 (23:13 +0100)]
Libraries testing (#178)

* Add Libraries Testing framework package as inline

The existing package Microsoft.DotNet.CoreFxTesting lived in Arcade
because of no infrastructure being available to compile local tasks in
the repository. As the runtime repository now offers that we can inline
the testing framework.

* Hardcode configuration for installer.tasks

* Update ReportGenerator global tool version

* Add vstest support

* Update binary serialization blobs

4 years agoFix missing unbox flag on method handle for struct methods
Jan Vorlicek [Thu, 21 Nov 2019 21:50:58 +0000 (22:50 +0100)]
Fix missing unbox flag on method handle for struct methods

Fixes Loader\classloader\generics\regressions\dev10_393447 test runtime
failure when compiled with crossgen2.

This mimicks what old crossgen does.

4 years agoMerge pull request #146 from janvorli/fix-crossgen2-devirt
Jan Vorlicek [Thu, 21 Nov 2019 21:44:16 +0000 (22:44 +0100)]
Merge pull request #146 from janvorli/fix-crossgen2-devirt

Fix devirtualization in crossgen2

4 years agoPropagate assertions through Exception handlers. (#160)
Sergey Andreenko [Thu, 21 Nov 2019 21:40:07 +0000 (21:40 +0000)]
Propagate assertions through Exception handlers. (#160)

* propogate assertions through Exception handlers.

* Add comments.

4 years agoAvoid infinite recursion in RSAEncryptionPadding equality check
Andrew Au [Thu, 21 Nov 2019 20:08:07 +0000 (12:08 -0800)]
Avoid infinite recursion in RSAEncryptionPadding equality check

4 years agoFix undocumented generatelayout command (#161)
Jarret Shook [Thu, 21 Nov 2019 19:31:10 +0000 (11:31 -0800)]
Fix undocumented generatelayout command (#161)

* Fix undocumented generatelayout command

* Address feedback

4 years agoMerge pull request #169 from fadimounir/PortPInvokeFixes
Fadi Hanna [Thu, 21 Nov 2019 19:16:02 +0000 (11:16 -0800)]
Merge pull request #169 from fadimounir/PortPInvokeFixes

Port more Pinvoke fixes from the single-exe branch

4 years agoMove back to the old arm64 queue. (#171)
Jarret Shook [Thu, 21 Nov 2019 18:41:24 +0000 (10:41 -0800)]
Move back to the old arm64 queue. (#171)

This is only for arm64 musl to address #170.

4 years agoRemove some indirection when raising AssemblyResolve event (#142)
Elinor Fung [Thu, 21 Nov 2019 18:33:29 +0000 (10:33 -0800)]
Remove some indirection when raising AssemblyResolve event (#142)

* Remove some indirection when raising AssemblyResolve event
* Delete unused code

4 years agoDisable tests based on #168 (#182)
Jarret Shook [Thu, 21 Nov 2019 18:04:04 +0000 (10:04 -0800)]
Disable tests based on #168 (#182)

Note this is an unforutunate loss of coverage.
It ups the priority on trait based tests or fixing the root cause.

4 years agoEnable warn as error in corelib (#174)
Santiago Fernandez Madero [Thu, 21 Nov 2019 13:05:00 +0000 (05:05 -0800)]
Enable warn as error in corelib (#174)

Enable warn as error in corelib as the workaround was set for VS2017 which we no longer use since we moved to VS2019 and that's the recommended toolset.

4 years agoPoint more docs links to runtime repo (#176)
Miha Zupan [Thu, 21 Nov 2019 13:03:49 +0000 (14:03 +0100)]
Point more docs links to runtime repo (#176)

* Update links in docs/libraries

* Fix more docs/libraries links

4 years agoDisable autodetection of warnings in CoreCLR subrepo build (#153)
Tomáš Rylek [Thu, 21 Nov 2019 10:02:44 +0000 (11:02 +0100)]
Disable autodetection of warnings in CoreCLR subrepo build (#153)

CoreCLR subrepo build has a known existing warning coming from
pgomgr that Arcade upgrades to an error via WarnAsError. I propose
suppressing autodetection of warnings in CoreCLR build to fix this
spurious bug reproducing in release mode.

Thanks

Tomas

Fixes: #150
Follow-up tracking issue: #156

4 years agoSlight refactor in looking at app paths in AssemblyBinder::BindByTpaList (#115)
Elinor Fung [Thu, 21 Nov 2019 07:58:04 +0000 (23:58 -0800)]
Slight refactor in looking at app paths in AssemblyBinder::BindByTpaList (#115)

4 years agoDisable TestZeroTimeout test
Stephen Toub [Thu, 21 Nov 2019 03:26:30 +0000 (22:26 -0500)]
Disable TestZeroTimeout test

4 years agoPass zero length array as null
Fadi Hanna [Thu, 21 Nov 2019 00:11:45 +0000 (16:11 -0800)]
Pass zero length array as null

Turns out zero length arrays are passed as a pointer to the non-existing element only when the array is passed by reference.

4 years agoPropagate BestFitMapping/ThrowOnUnmappable from type/assembly
Fadi Hanna [Thu, 21 Nov 2019 00:10:49 +0000 (16:10 -0800)]
Propagate BestFitMapping/ThrowOnUnmappable from type/assembly

4 years agoReject pregenerating p/invokes for LCIDConversion
Fadi Hanna [Thu, 21 Nov 2019 00:09:17 +0000 (16:09 -0800)]
Reject pregenerating p/invokes for LCIDConversion

4 years agoProperly sign-extend indirect loads
Fadi Hanna [Thu, 21 Nov 2019 00:08:24 +0000 (16:08 -0800)]
Properly sign-extend indirect loads

4 years agoA couple fixes to p/invoke marshalling pregeneration
Fadi Hanna [Thu, 21 Nov 2019 00:06:08 +0000 (16:06 -0800)]
A couple fixes to p/invoke marshalling pregeneration

* Expose the PreserveSig bit on PInvokeMetadata and reject precompiling methods with HResult munging
* Parse CustomMarshaller records to avoid asserting
* Place marshalling cleanup in a new cleanup stream that runs in a finally block
* Place SafeHandle code into the cleanup stream

4 years agoUse precompiled PInvoke stubs from R2R image without the shared IL stub (#101)
Fadi Hanna [Thu, 21 Nov 2019 03:09:43 +0000 (19:09 -0800)]
Use precompiled PInvoke stubs from R2R image without the shared IL stub (#101)

* Use precompiled PInvoke stubs from R2R image without a shared IL stub

This is only for images compiled with crossgen2.

Changes include some refactoring work around the signature parsing to compute marshalling requirements. We had two separate implementations after pulling the PInvoke work from the single-exe branch. Consolidated into one implementation.

4 years agoImplement instantiating and unboxing through portable stublinker code… (#106)
David Wrighton [Thu, 21 Nov 2019 02:59:03 +0000 (18:59 -0800)]
Implement instantiating and unboxing through portable stublinker code… (#106)

* Implement instantiating and unboxing through portable stublinker code
 - Handle only the cases with register to register moves
 - Shares abi processing logic with delegate shuffle thunk creation
 - Architecture specific logic is relatively simple
 - Do not permit use of HELPERREG in computed instantiating stubs
 - Fix GetArgLoc such that it works on all architectures and OS combinations

Add a JIT stress test case for testing all of the various combinations
- Use the same calling convention test architecture that was used as part of tail call work

Rename secure delegates to wrapper delegates
- Secure delegates are no longer a feature of the runtime
- But the wrapper delegate lives on as a workaround for a weird detail of the ARM32 abi

4 years agoMerge pull request #158 from VSadov/volFloat
Vladimir Sadov [Thu, 21 Nov 2019 02:50:56 +0000 (18:50 -0800)]
Merge pull request #158 from VSadov/volFloat

fix volatile float/double on win-arm64   (make sure compiler does not do numeric casts)

4 years agoMerge pull request #145 from maryamariyan/area-owners
Maryam Ariyan [Thu, 21 Nov 2019 00:58:03 +0000 (16:58 -0800)]
Merge pull request #145 from maryamariyan/area-owners

Move combined area owners to issue-guide

4 years agoReflect PR feedback
Jan Vorlicek [Wed, 20 Nov 2019 22:26:50 +0000 (23:26 +0100)]
Reflect PR feedback

4 years agofix volatile float/double on win-arm64 (make sure compiler does not do numeric...
vsadov [Wed, 20 Nov 2019 22:23:35 +0000 (14:23 -0800)]
fix volatile float/double on win-arm64   (make sure compiler does not do numeric casts)

4 years agoRemoved platform condition to always generate cmd and sh test scripts regardless...
Ivan David Diaz Sanchez [Wed, 20 Nov 2019 22:00:58 +0000 (22:00 +0000)]
Removed platform condition to always generate cmd and sh test scripts regardless of platform.

4 years agoFix HashSet.Remove to use provided comparer (#154)
Stephen Toub [Wed, 20 Nov 2019 21:06:32 +0000 (16:06 -0500)]
Fix HashSet.Remove to use provided comparer (#154)

4 years agoUse git bundles (#132)
Egor Chesakov [Wed, 20 Nov 2019 20:50:52 +0000 (12:50 -0800)]
Use git bundles (#132)

4 years agoUse artifacts dir for workload directory (#151)
Jarret Shook [Wed, 20 Nov 2019 20:49:31 +0000 (12:49 -0800)]
Use artifacts dir for workload directory (#151)

4 years agoRemove old note
Maryam Ariyan [Wed, 20 Nov 2019 20:26:11 +0000 (12:26 -0800)]
Remove old note

4 years agoMerge pull request #152 from dotnet/dockerignore-do-not-ignore-git
Eirik Tsarpalis [Wed, 20 Nov 2019 19:31:53 +0000 (19:31 +0000)]
Merge pull request #152 from dotnet/dockerignore-do-not-ignore-git

.dockerignore: remove .git from blacklist

4 years agoMerge pull request #136 from ericstj/ericstj-buildVSbootstrapCLI
Eric StJohn [Wed, 20 Nov 2019 18:50:18 +0000 (10:50 -0800)]
Merge pull request #136 from ericstj/ericstj-buildVSbootstrapCLI

Use SDK from bootstrapped CLI rather than testhost

4 years agoMove platform-matrix to common and add an extra common layer for all jobs to define...
Santiago Fernandez Madero [Wed, 20 Nov 2019 18:49:29 +0000 (10:49 -0800)]
Move platform-matrix to common and add an extra common layer for all jobs to define common variables (#120)

* Add an extra common layer for all jobs to define common variables

* Move platform-matrix.yml to a common location

* PR Feedback

4 years ago.dockerignore: do not ignore .git
Eirik Tsarpalis [Wed, 20 Nov 2019 18:27:18 +0000 (18:27 +0000)]
.dockerignore: do not ignore .git

4 years agoMerge pull request #148 from eiriktsarpalis/update-dockerignore
Eirik Tsarpalis [Wed, 20 Nov 2019 16:57:10 +0000 (16:57 +0000)]
Merge pull request #148 from eiriktsarpalis/update-dockerignore

Update .dockerignore to match .gitignore

4 years agoUpdate .dockerignore to match .gitignore
Eirik Tsarpalis [Wed, 20 Nov 2019 16:37:46 +0000 (16:37 +0000)]
Update .dockerignore to match .gitignore

4 years agoFix devirtualization in crossgen2
Jan Vorlicek [Wed, 20 Nov 2019 12:30:46 +0000 (13:30 +0100)]
Fix devirtualization in crossgen2

In some casesi that are only expressible in IL, devirtualization is
choosing a wrong virtual method. This causes a failure of the
JIT\Regression\JitBlue\GitHub_19222 test.

The test uses the following class hierarchy:
class A
{
    public virtual void f() {}
}

class B : A
{
    public override void f() {}
}

class C : B
{
    public new void f() {}
}

class D : C
{
    public new void f() {}
}

Then there is a local of type C to which we assign a reference to D.
After that the following virtual call is made:

callvirt instance int32 modopt([mscorlib]System.Runtime.CompilerServices.IsLong) A::f()

Devirtualization will choose C.f to call instead of the D.f.

This change disables devirtualization in such cases. Old crossgen does
the same thing.

4 years agoupdate issue-guide
Maryam Ariyan [Wed, 20 Nov 2019 11:41:02 +0000 (03:41 -0800)]
update issue-guide

4 years agoAdd remaining Description info from issue-guide
Maryam Ariyan [Wed, 20 Nov 2019 10:35:17 +0000 (02:35 -0800)]
Add remaining Description info from issue-guide

4 years agoAdd Description column
Maryam Ariyan [Wed, 20 Nov 2019 10:06:55 +0000 (02:06 -0800)]
Add Description column

4 years agoAdd combined area owners (#144)
Maryam Ariyan [Wed, 20 Nov 2019 09:54:43 +0000 (01:54 -0800)]
Add combined area owners (#144)

* Add combined area owners

4 years agoSet installer tasks proj to AnyCPU for output path (#135)
Davis Goodin [Wed, 20 Nov 2019 08:54:28 +0000 (02:54 -0600)]
Set installer tasks proj to AnyCPU for output path (#135)

4 years agoFix path in crossgen comparison job (#138)
Jarret Shook [Wed, 20 Nov 2019 08:49:58 +0000 (00:49 -0800)]
Fix path in crossgen comparison job (#138)

4 years agoUse SDK from bootstrapped CLI rather than testhost
Eric StJohn [Tue, 19 Nov 2019 22:57:54 +0000 (14:57 -0800)]
Use SDK from bootstrapped CLI rather than testhost

Port https://github.com/dotnet/corefx/commit/dd2ad4367bc4e070f3e8ca81ca6421db5733e731

This also removes copying the SDK to the testhost directory
since that is no longer needed.

4 years agoDisable test based on #129 (#130)
Jarret Shook [Tue, 19 Nov 2019 21:17:29 +0000 (13:17 -0800)]
Disable test based on #129 (#130)

**NO_CI**

4 years agoFix coreclr release build on windows to not use unknown switch (#128)
Santiago Fernandez Madero [Tue, 19 Nov 2019 21:10:40 +0000 (13:10 -0800)]
Fix coreclr release build on windows to not use unknown switch (#128)

4 years agoDisable tests based on https://github.com/dotnet/runtime/issues/84 (#85)
Jarret Shook [Tue, 19 Nov 2019 20:54:56 +0000 (12:54 -0800)]
Disable tests based on https://github.com/dotnet/runtime/issues/84 (#85)

* Disable tests based on https://github.com/dotnet/runtime/issues/84

* Add missing tests

4 years agoImplement Crc32 Isa on Arm64 (#117)
Egor Chesakov [Tue, 19 Nov 2019 17:44:37 +0000 (09:44 -0800)]
Implement Crc32 Isa on Arm64 (#117)

* Define Crc32 intrinsics in jit/hwintrinsiclistarm64.h

* Add Crc32 instructions in jit/emitarm64.cpp jit/instrsarm64.h

* Add entry to InstructionSet enum corresponding to Crc32 64-bit Isa in jit/instr.h

* Implement Crc32 and Crc32_Arm64 instruction sets in jit/hwintrinsicarm64.cpp

* Port ScalarBinOpTest.template to Arm in src/coreclr/tests/src/JIT/HardwareIntrinsics/Arm/Shared/ScalarBinOpTest.template

* Add Crc32 ComputeCrc32 tests in tests\src\JIT\HardwareIntrinsics\Arm

* Implement ComputeCrc32 in CodeGen::genSpecialIntrinsic in jit/hwintrinsiccodegenarm64.cpp

* Implement ComputeCrc32 in Compiler::impSpecialIntrinsic in jit/hwintrinsicarm64.cpp

* Make LeadingZeroCount and LeadingSignCount as HW_Flag_BaseTypeFromFirstArg in jit/hwintrinsiclistarm64.h

4 years agoMerge pull request #111 from carlossanlop/AnonymousPipeServerStreamAcl
Carlos Sanchez Lopez [Tue, 19 Nov 2019 17:37:42 +0000 (09:37 -0800)]
Merge pull request #111 from carlossanlop/AnonymousPipeServerStreamAcl

Add AnonymousPipeServerStream method that takes an ACL

The original corefx PR was already signed off, but the CI did not finish on time before the 5pm deadline: dotnet/corefx#42392

Approved API proposal: dotnet/corefx#41657

We don't currently have a way to create a pipe with a given ACL in .NET Core. We can modify the ACL, but it would be more secure to have the proper ACL on the pipe from the start.

This PR adds a new static class and method that can create an AnonymousPipeServerStream taking a PipeSecurity object, reusing code that can already perform this task.

4 years agoFix race in installer tasks build (#122)
Viktor Hofer [Tue, 19 Nov 2019 16:37:12 +0000 (17:37 +0100)]
Fix race in installer tasks build (#122)

4 years agoMerge pull request #125 from dotnet/eirik/fix-httpstress
Eirik Tsarpalis [Tue, 19 Nov 2019 16:10:10 +0000 (16:10 +0000)]
Merge pull request #125 from dotnet/eirik/fix-httpstress

HttpStress: Fix windows stress runs