Steve MacLean [Tue, 26 Nov 2019 16:36:17 +0000 (11:36 -0500)]
Revise perfjitdump (#229)
* Revise perfjitdump
Remove unnecessary fsync() call
Use writev() instead of write() to reduce OS calls
Handle partial write cases
Use initializer list
Simplify logic
Increment codeIndex while locked
Mark codeIndex volatile
Mark enabled volatile
Jan Kotas [Tue, 26 Nov 2019 15:04:02 +0000 (07:04 -0800)]
Minor SpanHelpers cleanup (#259)
- Use ifdef instead of runtime condition
- Use explicit signature for Unsafe.AddByteOffset in VM. We were getting lucky that the right overload of Unsafe.AddByteOffset was choosen by the VM.
Günther Foidl [Tue, 26 Nov 2019 14:38:49 +0000 (15:38 +0100)]
Updated viewing-jit-dumps.md (#289)
* corrected space in eng/build.sh
* Updated viewing-jit-dumps.md
dotnet-maestro[bot] [Tue, 26 Nov 2019 14:35:05 +0000 (15:35 +0100)]
[master] Update dependencies from dotnet/arcade (#243)
* Update dependencies from https://github.com/dotnet/arcade build
20191124.1
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.19574.1
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.19574.1
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19574.1
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.19574.1
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19574.1
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.19574.1
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19574.1
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19574.1
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.19574.1
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.19574.1
- Microsoft.DotNet.GenAPI - 5.0.0-beta.19574.1
- Microsoft.DotNet.GenFacades - 5.0.0-beta.19574.1
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19574.1
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.19574.1
* Set installer.tasks to IsShipping=false
* Temporarily disable SymStore targets for System.Private.CoreLib
* Update dependencies from https://github.com/dotnet/arcade build
20191125.7
- Microsoft.DotNet.XUnitExtensions - 5.0.0-beta.19575.7
- Microsoft.DotNet.XUnitConsoleRunner - 2.5.1-beta.19575.7
- Microsoft.DotNet.VersionTools.Tasks - 5.0.0-beta.19575.7
- Microsoft.DotNet.ApiCompat - 5.0.0-beta.19575.7
- Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19575.7
- Microsoft.DotNet.Build.Tasks.Configuration - 5.0.0-beta.19575.7
- Microsoft.DotNet.Build.Tasks.Feed - 5.0.0-beta.19575.7
- Microsoft.DotNet.Build.Tasks.Packaging - 5.0.0-beta.19575.7
- Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk - 5.0.0-beta.19575.7
- Microsoft.DotNet.CodeAnalysis - 5.0.0-beta.19575.7
- Microsoft.DotNet.GenAPI - 5.0.0-beta.19575.7
- Microsoft.DotNet.GenFacades - 5.0.0-beta.19575.7
- Microsoft.DotNet.Helix.Sdk - 5.0.0-beta.19575.7
- Microsoft.DotNet.RemoteExecutor - 5.0.0-beta.19575.7
Viktor Hofer [Tue, 26 Nov 2019 14:34:01 +0000 (15:34 +0100)]
Add CoreLib shared source project (#244)
* Add CoreLib shared source project
Add a CoreLib shared source project (shproj) to allow displaying shared
source files. With the move of the shared folder to a different location
VS isn't able to display the sources anymore. Adding a link attribute to
the compile items in the projitems fixes this but the information is
lost after a project reload. Therefore adding a shared project to the
solution.
* Update System.Private.CoreLib.Shared.shproj
* Update System.Private.CoreLib.Shared.shproj
Drew Noakes [Tue, 26 Nov 2019 14:33:12 +0000 (01:33 +1100)]
Remove references to gender (#262)
Sean Killeen [Tue, 26 Nov 2019 12:38:33 +0000 (07:38 -0500)]
Fix minor typo in readme (#285)
Stuart Lang [Tue, 26 Nov 2019 12:13:08 +0000 (12:13 +0000)]
Corrected spelling (#278)
Stephen Toub [Tue, 26 Nov 2019 11:41:12 +0000 (06:41 -0500)]
Fix typo in comment
Stephen Toub [Tue, 26 Nov 2019 11:18:39 +0000 (06:18 -0500)]
Improve Regex performance (in particular RegexOptions.Compiled) (#271)
* Avoid generating timeout checks for infinite timeouts
* Use Ldc_I4_X for Ldc when applicable
* Use ToLowerInvariant for invariant mode
* Remove unnecessary virtual-ness of some internal methods
* Clean up CompiledRegexRunner
* Lazily allocate RegexCharClass._categories
* Avoid negative numbers in generated names
* Optimize Is{ECMA}WordChar
* Optimize common CharInClass calls
* Clean up RegexCompiler.cs
* Add more RegexOptions.Compiled tests
* Replace RegexParser.s_category byte[] with a span
* Avoid delegate allocations each time CreateInstance is called
* Replace CharUnicodeInfo.GetUnicodeCategory w/ char's version
It has a fast path for ASCII.
* Clean up stackallocs
* Remove an unnecessary box
* Avoid string allocation for negated category
* Simplify tests
* Make low-hanging fruit allocation reduction
e.g. avoiding allocating a range list if a class contains only categories, avoiding some intermediary strings, avoiding some delegate allocations for sorting, etc.
* More code cleanup
* Use String.IndexOf in RegexParser.Unescape
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
Fadi Hanna [Tue, 26 Nov 2019 09:25:59 +0000 (01:25 -0800)]
Temp workaround to disable PInvoke ILStubs with EH blocks (#249)
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(
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.
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)
Fadi Hanna [Tue, 26 Nov 2019 04:21:27 +0000 (20:21 -0800)]
Cleanup warnings for uncompiled methods for some by-design scenarios (#250)
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.
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
Viktor Hofer [Mon, 25 Nov 2019 22:52:43 +0000 (23:52 +0100)]
Consolidate docs (#251)
* Consolidate sub-repo docs
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.
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
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.
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
Eirik Tsarpalis [Mon, 25 Nov 2019 20:59:16 +0000 (20:59 +0000)]
HttpStress: Use Windows containers and docker-compose (#209)
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
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.
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
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)
Michal Strehovský [Mon, 25 Nov 2019 13:05:14 +0000 (14:05 +0100)]
Make marshallers shareable again (#240)
Fixes build breaks on CoreRT side.
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
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
Stephen Toub [Sun, 24 Nov 2019 04:08:35 +0000 (23:08 -0500)]
Use #nullable restore in code generators (#238)
Stephen Toub [Sat, 23 Nov 2019 21:42:18 +0000 (16:42 -0500)]
Annotate System.IO.MemoryMappedFiles for nullable reference types (#220)
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
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
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
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
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
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.
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
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.
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.
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
Elinor Fung [Fri, 22 Nov 2019 09:40:42 +0000 (01:40 -0800)]
Remove unused code in app domain (#204)
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
Viktor Hofer [Fri, 22 Nov 2019 08:29:18 +0000 (09:29 +0100)]
Set platform for tools.local fixed to AnyCPU (#205)
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.
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
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
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.
Stephen Toub [Fri, 22 Nov 2019 03:53:01 +0000 (22:53 -0500)]
Update SslClientAuthenticationOptionsExtensions.ShallowClone to copy CipherSuitesPolicy (#211)
Andrew Au [Fri, 22 Nov 2019 03:17:06 +0000 (19:17 -0800)]
Avoid infinite recursion in RSAEncryptionPadding equality check
Stephen Toub [Fri, 22 Nov 2019 01:49:55 +0000 (20:49 -0500)]
Remove some NoWarns from CoreLib (#183)
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
Sergey Andreenko [Fri, 22 Nov 2019 00:45:46 +0000 (00:45 +0000)]
Fix `optComputeAssertionGen` dump newline. (#193)
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
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)
Viktor Hofer [Thu, 21 Nov 2019 22:16:58 +0000 (23:16 +0100)]
Update Version.Details.xml (#197)
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
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.
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
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.
Andrew Au [Thu, 21 Nov 2019 20:08:07 +0000 (12:08 -0800)]
Avoid infinite recursion in RSAEncryptionPadding equality check
Jarret Shook [Thu, 21 Nov 2019 19:31:10 +0000 (11:31 -0800)]
Fix undocumented generatelayout command (#161)
* Fix undocumented generatelayout command
* Address feedback
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
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.
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
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.
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.
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
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
Elinor Fung [Thu, 21 Nov 2019 07:58:04 +0000 (23:58 -0800)]
Slight refactor in looking at app paths in AssemblyBinder::BindByTpaList (#115)
Stephen Toub [Thu, 21 Nov 2019 03:26:30 +0000 (22:26 -0500)]
Disable TestZeroTimeout test
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.
Fadi Hanna [Thu, 21 Nov 2019 00:10:49 +0000 (16:10 -0800)]
Propagate BestFitMapping/ThrowOnUnmappable from type/assembly
Fadi Hanna [Thu, 21 Nov 2019 00:09:17 +0000 (16:09 -0800)]
Reject pregenerating p/invokes for LCIDConversion
Fadi Hanna [Thu, 21 Nov 2019 00:08:24 +0000 (16:08 -0800)]
Properly sign-extend indirect loads
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
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.
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
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)
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
Jan Vorlicek [Wed, 20 Nov 2019 22:26:50 +0000 (23:26 +0100)]
Reflect PR feedback
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)
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.
Stephen Toub [Wed, 20 Nov 2019 21:06:32 +0000 (16:06 -0500)]
Fix HashSet.Remove to use provided comparer (#154)
Egor Chesakov [Wed, 20 Nov 2019 20:50:52 +0000 (12:50 -0800)]
Use git bundles (#132)
Jarret Shook [Wed, 20 Nov 2019 20:49:31 +0000 (12:49 -0800)]
Use artifacts dir for workload directory (#151)
Maryam Ariyan [Wed, 20 Nov 2019 20:26:11 +0000 (12:26 -0800)]
Remove old note
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
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
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
Eirik Tsarpalis [Wed, 20 Nov 2019 18:27:18 +0000 (18:27 +0000)]
.dockerignore: do not ignore .git
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
Eirik Tsarpalis [Wed, 20 Nov 2019 16:37:46 +0000 (16:37 +0000)]
Update .dockerignore to match .gitignore
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.
Maryam Ariyan [Wed, 20 Nov 2019 11:41:02 +0000 (03:41 -0800)]
update issue-guide
Maryam Ariyan [Wed, 20 Nov 2019 10:35:17 +0000 (02:35 -0800)]
Add remaining Description info from issue-guide
Maryam Ariyan [Wed, 20 Nov 2019 10:06:55 +0000 (02:06 -0800)]
Add Description column
Maryam Ariyan [Wed, 20 Nov 2019 09:54:43 +0000 (01:54 -0800)]
Add combined area owners (#144)
* Add combined area owners