Jan Kotas [Tue, 8 Dec 2020 20:16:36 +0000 (12:16 -0800)]
Simplify devirtualization in crossgen2 (#45744)
Eric StJohn [Tue, 8 Dec 2020 19:23:00 +0000 (11:23 -0800)]
Update package baseline for 5.0.1 (#45775)
Zoltan Varga [Tue, 8 Dec 2020 19:14:56 +0000 (14:14 -0500)]
Add support for MONO_TYPE_FNPTR to aot. (#45616)
Fixes https://github.com/dotnet/runtime/issues/45548.
Jan Kotas [Tue, 8 Dec 2020 18:40:17 +0000 (10:40 -0800)]
Find&Replace coreclr/src -> coreclr (#45761)
Anton Firszov [Tue, 8 Dec 2020 18:09:03 +0000 (19:09 +0100)]
WinHttpHandler: apply [SupportedOSPlatform("windows10.0.19041")] on TcpKeepAlive properties (#45494)
WINHTTP_OPTION_TCP_KEEPALIVE is only available since the May 2020 Update, so it's reasonable to decorate the TcpKeepalive API with [SupportedOSPlatform]
monojenkins [Tue, 8 Dec 2020 17:48:04 +0000 (12:48 -0500)]
Fix LLVM link issues when compiling static library on Windows. (#45752)
Co-authored-by: lateralusX <lateralusX@users.noreply.github.com>
Viktor Hofer [Tue, 8 Dec 2020 15:24:24 +0000 (16:24 +0100)]
Add Microsoft StrongNameKey back to System.Composition* (#45756)
Viktor Hofer [Tue, 8 Dec 2020 12:31:52 +0000 (13:31 +0100)]
Move msbuild tasks into src folder and delete dead code (#45722)
* Move tools-local\tasks to src\tasks
* Delete dead task code
* nit installer.tasks.csproj changes
* Remove mobile.tasks intermediate folder
dotnet-maestro[bot] [Tue, 8 Dec 2020 10:34:03 +0000 (10:34 +0000)]
Update dependencies from https://github.com/dotnet/xharness build
20201207.2 (#45726)
[master] Update dependencies from dotnet/xharness
Peter Sollich [Tue, 8 Dec 2020 10:29:08 +0000 (11:29 +0100)]
Equalize marklists (#41599)
Equalize mark lists across GC heaps in Server GC.
With real world workloads, we observe that the size of the mark lists is often very uneven across the heaps. This will also lead to uneven sort times across the heaps. As the GC threads need to synchronize at the end of sort_mark_list, the GC threads with less work will need to wait for those with more work to finish.
Therefore, it should be advantageous to even out the workload before we start sorting.
This PR does this adding a new method equalize_mark_lists that is called at the beginning of sort_mark_list. This method is executed in parallel on all GC threads and computes what pieces of the mark list need to be moved from one heap to another to achieve an even distribution. To avoid additional synchronization, each GC thread only writes its own mark list, and treats the other mark lists as read-only.
Performance analysis for a real-word scenario showed a 2.0 ms (3.2%) reduction in GC pause time.
Aaron Robinson [Tue, 8 Dec 2020 05:08:58 +0000 (21:08 -0800)]
COM Host - Invalid compute of default value string length (#45728)
Incorrectly compute the length of the default string value
for a registry key. This doesn't impact the actual COM
registration but does impact tooling that helps with COM
registration.
Ben Adams [Tue, 8 Dec 2020 04:47:55 +0000 (04:47 +0000)]
Fix .sln path for shared for coreclr (#45738)
Jan Kotas [Tue, 8 Dec 2020 04:43:26 +0000 (20:43 -0800)]
Fix conditions for implicit use of hardware intrinsics (#45662)
JIT uses hardware intrinsics implicitly in certain cases. Unlike regular hardware intrinsics, these
transformations are not guarded using explicit IsSupported checks. NativeAOT had fragile code that tried
to step around this limitation. This change makes this contract explicit by allowing notifyInstructionSetUsage
callback to return bool that the EE side can use to suppress implicit use of hardware intrinsics.
Fixes dotnet/runtimelab#425
Andy Gocke [Tue, 8 Dec 2020 03:21:23 +0000 (19:21 -0800)]
Change temp folder name used in installer tests (#45523)
Tests in the AppHost.Bundle.Tests assembly seem to randomly fail due to a race condition
with the file system. They try to create separate '0','1','2'... subdirectories to isolate
the published files for each test, but I think what's happening is that files may be
marked for deletion, but then not deleted until a later write. For instance, files in
'2' may be marked for deletion and some may fail a File.Exists check, which leads to
'2' being recreated, at which point deletion may occur, which will cause the current test
to fail due to a concurrent write operation.
This change tries to avoid locking & contention by randomly generating folder names and
using a (hopefully atomically created) lock file to indicate ownership of a particular name.
Fixes #43316
Tomáš Rylek [Tue, 8 Dec 2020 02:19:44 +0000 (03:19 +0100)]
December infra rollout - remove duplicated 'src' from coreclr subrepo (src/coreclr/src becomes src/coreclr) (#44973)
* Move src/coreclr/src/Directory.Build.targets to src/coreclr
Merge src/coreclr/src/CMakeLists.txt into src/coreclr/CMakeLists.txt
* Mechanical move of src/coreclr/src to src/coreclr
* Scripts adjustments to reflect the changed paths
John Salem [Tue, 8 Dec 2020 01:21:04 +0000 (17:21 -0800)]
Enable StressLog for subprocess in EventPipe tests (#45425)
SingleAccretion [Tue, 8 Dec 2020 00:26:18 +0000 (03:26 +0300)]
Reword the note on redundancy of frequent clean builds (#45718)
Viktor Hofer [Tue, 8 Dec 2020 00:06:30 +0000 (01:06 +0100)]
Move regenerate-download-table and cleanup (#45724)
Adeel Mujahid [Tue, 8 Dec 2020 00:05:07 +0000 (02:05 +0200)]
Add default case in RLimitResources switch (#45707)
* Add default case in RLimitResources switch
* Fix cmake warning in libs, showing up in -s clr too
David Wrighton [Mon, 7 Dec 2020 22:12:04 +0000 (14:12 -0800)]
There is one true bool and it is bool (#45630)
While reviewing a PR by @AndyAyersMS, I saw that @Rattenkrieg had noticed our variable use of the `bool` and `BOOL` types. This change converts all BOOL usage to bool in the jit interface api,
- This change should have no impact on anything but the jit interface api surface
- I have a goal of converting the jit interface to be loadable in a non-PAL based header environment. As part of that BOOL as well as many other Windowsisms will need to go away and be replaced by standard types
- This was just the first type, although its the only type change that I believe will necessitate changes in the managed crossgen2 codebase
Huo Yaoyuan [Mon, 7 Dec 2020 22:11:04 +0000 (06:11 +0800)]
Add CompressionLevel.SmallestSize (#41960)
* Add CompressionLevel.SmallestSize and map to ZLibNative.CompressionLevel.BestCompression.
* Update xmldoc for CompressionLevel.
* Fix xml doc on ZLibNative.CompressionLevel.
* Apply suggestion from review
Co-authored-by: Dan Moseley <danmose@microsoft.com>
* Add SmallestSize to tests.
* Add test for compression level and sizes.
* Update src/libraries/Common/tests/System/IO/Compression/CompressionStreamUnitTestBase.cs
* Brotli
* Re-add size in order test.
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Layomi Akinrinade [Mon, 7 Dec 2020 22:06:56 +0000 (14:06 -0800)]
Update CODEOWNERS (#45620)
Mitchell Hwang [Mon, 7 Dec 2020 21:21:01 +0000 (16:21 -0500)]
[wasm] Add WasmAppBuilder pkgproj for wasm sample (#44749)
* Add wasm sample pkgproj
* Add wasm Sample pkgproj to descriptions
* Add wasm sample pkgproj ProjectReference
* Add packaging target
* Update to use NetCoreAppToolCurrent
Co-authored-by: Mitchell Hwang <mitchell.hwang@microsoft.com>
dotnet-maestro[bot] [Mon, 7 Dec 2020 21:20:07 +0000 (21:20 +0000)]
Update dependencies from https://github.com/dotnet/xharness build
20201207.1 (#45684)
[master] Update dependencies from dotnet/xharness
Ryan Lucia [Mon, 7 Dec 2020 19:51:31 +0000 (14:51 -0500)]
Add test for exception propagation inside loader events (#43910)
James Newton-King [Mon, 7 Dec 2020 19:43:03 +0000 (08:43 +1300)]
Enable nullable on HostFactoryResolver (#45513)
Koundinya Veluri [Mon, 7 Dec 2020 19:20:33 +0000 (11:20 -0800)]
Update portable thread pool event enablement checks (#45681)
* Revert "Make PortableThreadPool to check events correctly before firing them (#45666)"
This reverts commit
83d19de66a596ff5e0ad0519e48dff62945cc636.
* Add keyword and verbosity checks for events
Reverted the part of https://github.com/dotnet/runtime/pull/38225/commits/
e8043ffa05450b1983a1e751d0a1af80e43e1f31 regarding `IsEnabled` checks
monojenkins [Mon, 7 Dec 2020 18:11:16 +0000 (13:11 -0500)]
[aot] Store the addresses of aot constants in an array instead of using a switch statement on wasm to save space. (#45669)
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Carol Eidt [Mon, 7 Dec 2020 17:56:50 +0000 (09:56 -0800)]
Combine free and busy register allocation (#45135)
* Combine free and busy allocation
Perform register allocation for a given RefPosition
with a single traversal of the registers, whether free
or busy.
* More refactoring
* More refactoring to separate evaluation of heursitics.
* More refactoring to simplify configuration.
Fix one source of arm32 double diffs.
* Delete unused `registerIsAvailable` method
Fix `nextPhysRefLocation` computation for Arm32
* Use `UNIT_MAX` not `MAXUINT`
* clear constantReg when interval is moved
* Fix merge issues
* Fix weight
* Fix spill cost update for UpperVectors
* Fix a bug in reload of multireg call on Arm64
* FixedReg fixes
* Review feedback and other cleanup
* Call clearConstanReg before nulling out the interval, so that we can correctly handling doubles on ARM
* Minor cleanup
* Formatting changes
* Other minor pending fixes
Co-authored-by: Kunal Pathak <Kunal.Pathak@microsoft.com>
Adeel Mujahid [Mon, 7 Dec 2020 17:54:54 +0000 (19:54 +0200)]
Fix GNU linker detection on FreeBSD (#45664)
dotnet-maestro[bot] [Mon, 7 Dec 2020 17:00:56 +0000 (18:00 +0100)]
[master] Update dependencies from mono/linker (#45565)
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Eric Erhardt [Mon, 7 Dec 2020 16:37:35 +0000 (10:37 -0600)]
Suppress ILLink warnings in Reflection (#45603)
* Suppress RunClassConstructor ILLinker warning in RuntimeConstructorInfo
This instance is the static constructor, so the static constructor will be present.
* Suppress ILLink warning in CustomAttributeData.Init.
Update ILLink.Suppressions file.
dotnet-maestro[bot] [Mon, 7 Dec 2020 11:45:38 +0000 (11:45 +0000)]
Update dependencies from https://github.com/dotnet/xharness build
20201204.1 (#45626)
[master] Update dependencies from dotnet/xharness
Sung Yoon Whang [Mon, 7 Dec 2020 04:24:15 +0000 (20:24 -0800)]
Make PortableThreadPool to check events correctly before firing them (#45666)
Vladimir Sadov [Mon, 7 Dec 2020 04:08:41 +0000 (20:08 -0800)]
Static linking of native libs (#44505)
* from prototype
* fix OSX
* fix for Android
* treat "libSystem.Globalization.Native" as QCall in mono too (for now).
* fix for wasm
* fix pedantic errors on GCC
* delete gPalGlobalizationNative
* pass overrider from the host
* default override
* default PInvoke override runs after optional host-provided overrider.
* Some PR feedback (mostly related to code, not the CMake stuff).
* more coding PR feedback
* Deleted "libraries-native" folder.
* unifying tryrun.cmake into 1 common file
* factor out adding lib-specific dependencies into one place (per native library)
* cleanup: entirely remove tryrun.cmake propagation in eng, gen-buildsys, build-commons, and build scripts
* remove "clrcompression.dll" and "libSystem.IO.Compression.Native.dylib" from single-file host packaging
* mono: refactor Globalization lookup into `default_resolve_dllimport`.
* set FEATURE_DISTRO_AGNOSTIC_SSL according to __PortableBuild
* CORECLR_CALLING_CONVENTION for the host callback types
* refactor common parts of entrypoints.c into entrypoints.h
* rename OverrideEntry --> DllImportEntry
* extra libs as CMake functions
* use macros instead of functions in extra_libs.cmake
* mono formatting style in src/mono/mono/metadata/native-library.c
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
* mono: Remaining stylistic nits.
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
* do not set DFEATURE_DISTRO_AGNOSTIC_SSL on iOS, Android, tvOS
Co-authored-by: Ryan Lucia <ryan@luciaonline.net>
Jan Kotas [Sun, 6 Dec 2020 20:42:39 +0000 (12:42 -0800)]
Delete redundant DivMod implementation (#45652)
Jan Kotas [Sun, 6 Dec 2020 19:33:18 +0000 (11:33 -0800)]
Delete IsIntrinsicWorkaround (#45656)
Tomáš Rylek [Sun, 6 Dec 2020 19:10:56 +0000 (20:10 +0100)]
Add support for diffing GC ref map info to R2RDump; small bugfix (#45619)
xtqqczze [Sun, 6 Dec 2020 16:24:57 +0000 (16:24 +0000)]
Upgrade StyleCopAnalyzers to v1.2.0-beta.304 (#45644)
Follow-up to #45562.
Andy Ayers [Sat, 5 Dec 2020 16:33:21 +0000 (08:33 -0800)]
Get exact class during devirtualization (#45526)
If we devirtualize to a method on a generic class, try and obtain the
exact class. Pass this back to the jit to unblock some types of inlines.
Also refactor how information is passed during devirtualization in
anticipation of follow on work to devirtualize default interface methods.
Because there are now multiple inputs and outputs, convey everything
using a struct.
Resolves #38477.
Hong Li [Sat, 5 Dec 2020 02:38:12 +0000 (18:38 -0800)]
Update area-owners.md (#45584)
Andy Ayers [Sat, 5 Dec 2020 02:19:37 +0000 (18:19 -0800)]
JIT: don't compute edge weights when there's no profile data (#45615)
We don't look edge the weights unless there's profile data, so only compute
edge weights if there is profile data.
Saves a tiny bit on TP (~0.2%).
Roman Konecny [Fri, 4 Dec 2020 22:42:40 +0000 (23:42 +0100)]
Optimize huffman encoding static table initialization (#45303)
Huffman encoding table split into two static arrays
Maoni Stephens [Fri, 4 Dec 2020 21:43:43 +0000 (13:43 -0800)]
This is an initial checkin and allows to run some tests (I've included the ones I ran below). (#45172)
I have not done a full functional test run - there are things I know don't work yet. But being
able to run some tests will allow multiple people to work on this in parallel.
I added an env var for now to specify the range for regions. We can have a default reserve range
that's very large. This simplies a lot of things. Right now I'm only enabling the feature on 64-bit
because I've only been testing on 64-bit. For 32-bit we would likely still need to have things like grow_brick_card_tables.
Each generation has at least one region; each region can only belong to one generation.
---
Main changes -
+ I'm using the current heap_segment to represent a region instead of doing a ton of renaming
because each region also needs to keep track of the same allocated/committed/etc. So when
USE_REGIONS is defined you could think region whenever you see segment. But gen/planned gen
are now maintained by each region since we no long have a contiguous range for ephemeral gens.
+ Added a simple region allocator that finds free blocks for region alloc requests and coalesce
adjacent free blocks.
+ Places that need to check for ephemeral generations are changed to check for gen_num/plan_gen_num
accordingly, eg, gc_mark, mark_through_cards, relocate_address.
+ plan phase is changed quite a bit to accommodate regions, eg, we set each region's plan as
we've planned them; we need to go through eph regions for allocating survivors, instead of
detecting crossing gen0/1 boundary by the survivors position relative to their gen start, we
plan the next generation (if necessary) when we run out of regions of the current generation
we are going through. This actually avoids some of the complexity with segments.
+ sweep phase is heavily changed since we don't have a gen limit to detect eph gen boundaries
anymore.
+ Rewrote the code that threads segments together for regions after compact/sweep is done.
+ Changed the SOH allocator to acquire new regions when needed, still maintain ephemeral_heap_segment
but now it's used to indicate the region we are currently allocating in.
+ Got rid of the following that doesn't apply to regions -
ephemeral_low/ephemeral_high
demotion_low/demotion_high
Some of these were replaced for regions; others haven't been (like ephemeral_low/ephemeral_high)
which will be done in separate work items.
+ Added some internal stress mechanisms like selectively pinning some objects and creating ro segs
in GC.
+ I have not changed the write barrier code so for WKS GC cards will be set unconditionally like in
SVR GC.
+ Changed verify_heap to verify regions.
+ Perf changes, eg, to determine compaction.
+ Some changes for BGC; it's still incomplete but I've changed places where it needs to avoid reading
into the ephemeral regions for concurrent like BGC revisit/overflow. Overflow can be optimized to
be per region (this optimization applies to segs as well but more gains with regions).
Some key implementation differences between regions and segments -
+ We no longer have the expand heap code paths which simplies things by a lot.
+ We no longer have a generation start object - each generation has a list of regions that belong to
that generation. Any empty region can be removed off of this list. This is different from when we
had a generation start which meant the first segment would never be empty and we don't reuse it for new
eph seg.
+ With segments in plan phase we may not have allocated gen1/0 start while going through survivors since
there may not be survivors in gen1/0... with regions it's different because each time I finish a generation
I will call process_last_np to allocate the new gen. It's more consistent.
+ consing_gen in plan phase really doesn't need to be a generation. With segments it would change that
generation's alloc seg and we'd switch to gen1 when we need to plan ephemeral generations. But this is
unnecessary because all we need is the alloc_ptr/limit pair + alloc seg (or alloc region for regions).
I've made some progress simplying this so this never changes (always the condemned gen) and always
represents the alloc_ptr/limit/region. We can totally get rid of consing_gen and only maintain those
3 things.
=======
Other things worth mentioning -
+ I intentionally left quite a bit of logging for the new code. Some can be removed when the code
is more baked.
+ I have some "REGIONS TODO"s in the code that are things needed to changed about this PR. Of course
there are many optimizations that will be done - seperated PRs will be submitted for those.
=======
This is the env I used for testing -
complus_gcConcurrent=0
complus_GCLogEnabled=1
complus_GCLogFile=c:\temp\gclog
complus_GCLogFileSize=100
complus_GCName=clrgc.dll
complus_GCRegionsRange=
20000000
complus_heapverify=1
complus_StressLog=0
command line I used for GCPerfSim -
-tc 2 -tagb 16 -tlgb 0.05 -lohar 0 -sohsi 10 -lohsi 0 -pohsi 0 -sohpi 0 -lohpi 0 -pohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time -printEveryNthIter 300000
-tc 2 -tagb 32 -tlgb 0.05 -lohar 100 -sohsi 10 -lohsi 100 -pohsi 0 -sohpi 0 -lohpi 0 -pohpi 0 -sohfi 0 -lohfi 0 -pohfi 0 -allocType reference -testKind time -printEveryNthIter 300000
Zoltan Varga [Fri, 4 Dec 2020 20:16:49 +0000 (15:16 -0500)]
Fix warnings in the code emitted by the wasm pinvoke generator. (#45322)
Santiago Fernandez Madero [Fri, 4 Dec 2020 20:08:35 +0000 (12:08 -0800)]
Add link to active issue attribute on PR guide (#45606)
Carol Eidt [Fri, 4 Dec 2020 20:05:23 +0000 (12:05 -0800)]
Add description of AvoidSplittingBackedge branch and link to #40264 (#45609)
Aleksey Kliger (λgeek) [Fri, 4 Dec 2020 19:37:27 +0000 (14:37 -0500)]
[Mono] Arrays shouldn't implement linked out generic classes (#45125)
Elinor Fung [Fri, 4 Dec 2020 18:30:03 +0000 (10:30 -0800)]
Slight cleanup of host test RepoDirectoriesProvider helper (#45579)
Alexander Köplinger [Fri, 4 Dec 2020 17:21:44 +0000 (18:21 +0100)]
Use NetCoreAppToolCurrent TFM for *AppBuilders (#45591)
This ensures they're built against net5.0 right now instead of net6.0.
Next Turn [Fri, 4 Dec 2020 16:11:24 +0000 (00:11 +0800)]
Replace new UTF8Encoding(false) (#45541)
* Replace new UTF8Encoding(false)
* Remove static field
Eric Erhardt [Fri, 4 Dec 2020 16:06:17 +0000 (10:06 -0600)]
Remove unnecessary IsStatic checks in ActivatorUtilities (#45439)
Vadim Galaktionov [Fri, 4 Dec 2020 13:04:46 +0000 (16:04 +0300)]
Fix resolve root IServiceProvider (#45171)
Maryam Ariyan [Fri, 4 Dec 2020 13:01:36 +0000 (05:01 -0800)]
Breaking change: Throw when resolving on a disposed service provider (#45116)
Juan Hoyos [Fri, 4 Dec 2020 05:18:02 +0000 (21:18 -0800)]
Add documentation on how to disable runtime tests (#45578)
* Update pr-guide.md
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Ilia [Fri, 4 Dec 2020 04:50:12 +0000 (07:50 +0300)]
Return the result of PAL_InjectActivation in Thread::InjectGcSuspension (#44731)
Tomáš Matoušek [Fri, 4 Dec 2020 04:46:50 +0000 (20:46 -0800)]
Document Compilation Options and Compilation Metadata References CDIs (#37605)
Egor Bogatov [Fri, 4 Dec 2020 04:39:33 +0000 (07:39 +0300)]
Add Tuple-based Math.DivRem overloads (#45074)
* Add Tuple-based Math.DivRem overloads
* Remove internal versions of Math.DivRem
* Add AggressiveInlining
* Add comments
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Bruce Forstall [Fri, 4 Dec 2020 04:34:36 +0000 (20:34 -0800)]
Fix location of JIT-EE version GUID (#45574)
With #45044 it moved from corinfo.h to jiteeversionguid.h
Jeremy Koritzinsky [Fri, 4 Dec 2020 04:16:27 +0000 (20:16 -0800)]
Update UnmanagedCallersOnly tests to not emit IL (#45572)
* Update UnmanagedCallersOnly tests to emit IL only when needed.
* Move last test into IL and delete test that uses invalid IL that only RefEmit can handle.
Sung Yoon Whang [Fri, 4 Dec 2020 03:59:57 +0000 (19:59 -0800)]
Make BinderEventListener not listen to TplEventSource (#45570)
* Make BinderEventListener not listen to TplEventSource
* Remove TasksFlowActivityIds definition
Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com>
Eric Erhardt [Fri, 4 Dec 2020 02:14:14 +0000 (20:14 -0600)]
XmlSerializer.Serialize doesn't work when using TrimMode=link (#44772)
* XmlSerializer.Serialize doesn't work when using TrimMode=link
Make XmlSerializer work correctly with ILLinker trimming.
1. Use constant BindingFlags to work around https://github.com/mono/linker/issues/1617
2. Annotate CodeGenerator.CreateTypeBuilder correctly to preserve base class members
Fix #41389
* Update ILLinker suppressions file.
* PR feedback.
Fix ILLinker suppresions.
Bruce Forstall [Fri, 4 Dec 2020 01:16:10 +0000 (17:16 -0800)]
SuperPMI collection pipeline: fix location of JIT-EE version GUID (#45576)
With #45044 it moved from corinfo.h to jiteeversionguid.h
Jeremy Koritzinsky [Fri, 4 Dec 2020 00:06:23 +0000 (16:06 -0800)]
Various fixes in Microsoft.NETCore.App packs (#45566)
xtqqczze [Fri, 4 Dec 2020 00:02:32 +0000 (00:02 +0000)]
Upgrade StyleCopAnalyzers to v1.2.0-beta.261 (#45562)
* Upgrade StyleCopAnalyzers to v1.2.0-beta.261
https://github.com/DotNetAnalyzers/StyleCopAnalyzers/releases/tag/1.2.0-beta.261
* Disable SA1142
* Enable SA1142 except in tests
Santiago Fernandez Madero [Thu, 3 Dec 2020 23:02:21 +0000 (15:02 -0800)]
Fix dependency for test assets on musl test runs (#45567)
* Fix dependency for test assets on musl test runs
* Use testOsSubGroup on dependency
Santiago Fernandez Madero [Thu, 3 Dec 2020 22:39:39 +0000 (14:39 -0800)]
Disable Long Running JSON tests on Checked CoreCLR (#45505)
* Disable Long Running JSON tests on Checked CoreCLR
* PR Feedback
Jan Vorlicek [Thu, 3 Dec 2020 21:34:47 +0000 (22:34 +0100)]
Don't emit type fixups for primitive types in Crossgen2 (#45555)
We were emitting fixups for primitive types like bool, void, etc. These
are not necessary as all of these types are always loaded and so it was
just a waste of R2R file space.
This change blocks generating fixups for those.
Yujin Lee [Thu, 3 Dec 2020 21:16:16 +0000 (06:16 +0900)]
Removed Serialization tests for SQLClient types (#42016)
* Remove Serialization tests for SQLClient types
* Deleted reference to System.Data.SqlClient
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Jan Vorlicek [Thu, 3 Dec 2020 20:38:32 +0000 (21:38 +0100)]
Fix covariant returns with generic return types (#45275)
* Fix covariant returns with generic return types
When a covariant return type was an uninstantiated generic type, the
ClassLoader::IsCompatibleWith was not working properly. In debug builds,
it was asserting because there was no MethodTable for that type and in
release builds, it resulted in ExecutionEngineException or an internal
CLR error.
This change fixes it by using TypeHandle::CanCastTo instead of
MethodTable::CanCastTo and adds a regression test for two cases where
the problem was observed (Assembly.GetTypes() and creating an instance
of a type with a covariant return with a problematic kind of type).
* Fix issue 45082 too
There were two issues. First, the
ClassLoader::ValidateMethodsWithCovariantReturnTypes was called before
typeHnd.DoFullyLoad and that resulted in an assert down the call chain
of TypeDesc::CanCastTo due to a wrong load level.
Second, the SigTypeContext generation for the current MD in the
ClassLoader::ValidateMethodsWithCovariantReturnTypes requires the same
change for class instantiation as the one that we had for the parent MD.
* Fix the issue 45082 in a correct way
The call to ClassLoader::ValidateMethodsWithCovariantReturnTypes is now
in MethodTable::DoFullyLoad.
I have also added a test case that verifies a case that David Wrighton
has suggested offline, where there are 3 types... A, B and C.
C derives from B which derives from A. B has a bad override which
should produce an error. Then, cause C to be fully loaded without
otherwise triggering a load of B.
Eric Erhardt [Thu, 3 Dec 2020 20:34:52 +0000 (14:34 -0600)]
Remove FEATURE_COMPILED_XSL define (#45553)
* Remove FEATURE_COMPILED_XSL define
This is always defined, so there is no need in this define. In the past, it was not defined for UAP builds.
* Remove unused resource
Jeremy Koritzinsky [Thu, 3 Dec 2020 19:58:19 +0000 (11:58 -0800)]
Move return buffer handling from interop to the JIT (#39294)
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
Co-authored-by: Andy Ayers <andya@microsoft.com>
Carol Eidt [Thu, 3 Dec 2020 19:15:40 +0000 (11:15 -0800)]
Update first-class-structs.md (#45512)
* Update first-class-structs.md
* Address feedback and add links to x64 vector ABI branches
Steve Pfister [Thu, 3 Dec 2020 18:29:31 +0000 (13:29 -0500)]
Adds support for testing tvOS (#45043)
XHarness already supports tvOS as a target, so this change supplies the right info
Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
dotnet-maestro[bot] [Thu, 3 Dec 2020 16:39:12 +0000 (16:39 +0000)]
[master] Update dependencies from dotnet/xharness dotnet/runtime-assets dotnet/arcade (#45487)
[master] Update dependencies from dotnet/xharness dotnet/runtime-assets dotnet/arcade
Vitek Karas [Thu, 3 Dec 2020 15:21:22 +0000 (07:21 -0800)]
Correctly apply EventSourceSupport feature switch to NativeRuntimeEventSource (#43602)
`NativeRuntimeEventSource.Process` is called from native code in CoreCLR and as such is rooted in the descriptor. But if event source is disabled via feature switch it should not do anything.
monojenkins [Thu, 3 Dec 2020 13:05:25 +0000 (08:05 -0500)]
[runtime] Avoid checking for hardened runtime on ios, its not needed, and it causes alerts because of PROT_WRITE|PROT_EXEC. (#45514)
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Peter Sollich [Thu, 3 Dec 2020 08:25:08 +0000 (09:25 +0100)]
Fix issue 45091 (#45409)
Fix overeager call to Validate() - we should call this with a bDeep parameter of FALSE, because the pointers to other objects may not be valid yet, if these other objects have not yet been copied.
Note this issue will only repro if HEAPVERIFY_GC is on - otherwise we won't attempt to verify pointers to other objects.
Juan Hoyos [Thu, 3 Dec 2020 07:45:00 +0000 (23:45 -0800)]
Temporarily disable Mono Desktop Windows Release x64 (#45529)
Santiago Fernandez Madero [Thu, 3 Dec 2020 05:52:07 +0000 (21:52 -0800)]
DisableFileSystemWatcherTest (#45511)
Eric Erhardt [Tue, 1 Dec 2020 22:28:36 +0000 (16:28 -0600)]
Remove ActivatorUtilities_In_DependencyInjection #define
Eric Erhardt [Tue, 1 Dec 2020 22:11:52 +0000 (16:11 -0600)]
Move ActivatorUtilities from the Common directory to DI.Abstractions
This is the only project in the repo that uses this file. There's no reason for it to be in the Common directory.
Santiago Fernandez Madero [Thu, 3 Dec 2020 02:33:11 +0000 (18:33 -0800)]
Fix continue on error conditions (#45519)
David Mason [Thu, 3 Dec 2020 02:17:04 +0000 (18:17 -0800)]
fix invalid IL in profiler stub helper (#45453)
Andrew Au [Thu, 3 Dec 2020 01:59:50 +0000 (17:59 -0800)]
Fixes paths (#45392)
Elinor Fung [Thu, 3 Dec 2020 01:33:19 +0000 (17:33 -0800)]
Fix IID for System.Runtime.InteropServices.ComTypes.IEnumSTATDATA (#45498)
Jan Kotas [Thu, 3 Dec 2020 01:32:14 +0000 (17:32 -0800)]
Delete unnecessary GetNativeHandle methods on reflection types (#45489)
They just return "this" for the most part
Anton Firszov [Thu, 3 Dec 2020 00:41:21 +0000 (01:41 +0100)]
WinHttpHandler: fix double -> uint conversions for ARM64 (#45480)
* extend ReceiveDataTimeout functional coverage
* fix double -> uint conversions
* more comments + remove 'unchecked'
* Comment suggestion
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Comment suggestion
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Andrew Au [Wed, 2 Dec 2020 23:45:17 +0000 (15:45 -0800)]
Remove an erroneous assert (#45495)
Elinor Fung [Wed, 2 Dec 2020 22:30:57 +0000 (14:30 -0800)]
Redirect default install location in test to avoid using machine-wide install (#45500)
Anirudh Agnihotry [Wed, 2 Dec 2020 22:18:52 +0000 (14:18 -0800)]
disable restore in vs for projects targeting platform specific old frameworks (#44932)
* disable vs restore in vs for projects targeting platform specific older frameworks
* Add infra to auto-update solution files for restore
* Add NuGet.config files for solutions affected by restore issue
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Santiago Fernandez Madero [Wed, 2 Dec 2020 21:28:52 +0000 (13:28 -0800)]
Fix break in send-to-helix-inner.yml (#45502)
Jeff Handley [Wed, 2 Dec 2020 20:43:50 +0000 (12:43 -0800)]
Use the updated URL for FabricBot (#45499)
And fix a couple of formatting nits while editing (removing commas between owners, and aligning table spacing)
Stephen Toub [Wed, 2 Dec 2020 19:04:16 +0000 (14:04 -0500)]
Fix Write_DataReadFromDesiredOffset test (#45477)
(Already failing on my goal not to submit PRs while on vacation, but I wanted to help squash this test failure taking out multiple PRs.)
Sporadic null reference exceptions were occurring in CI as part of GZipStream.Dispose. The call to writeable.Dispose in the writing task can race with the invisible writeable.Dispose that happens as part of the disposal at the end of the block, due to the earlier using statement. If the writeable.Dispose in the task nulls out the _deflateStream inside of the GZipStream after the implicit Dispose has checked for null but before it calls Dispose on the field, it'll null ref. The fix is simple and something that should have been there anyway: explicitly wait for the writing task to complete, which guarantees the implicit disposal won't race with the explicit one.
Matt Galbraith [Wed, 2 Dec 2020 18:54:51 +0000 (10:54 -0800)]
Increase Mac outerloop timeout for AzDO job (#45490)
As seen in https://dnceng.visualstudio.com/public/_build/results?buildId=905703&view=logs&j=
8580ecfb-912a-5dbd-35ce-
e64d0d51ddbf, OSX test runs can get cancelled as little as 12 minutes before they would have finished (timed out job in question started at 2020-12-02 13:38:06.9640000, finished 2020-12-02 14:59:19.2760000, but the job was cancelled at 2020-12-02T14:48:29.3981590Z.
Sergey Andreenko [Wed, 2 Dec 2020 18:38:25 +0000 (10:38 -0800)]
A small jit changes for Arm64 apple. (#45461)
* Expand the test.
* The jit change that slipped in branches and merges.
Sergey Andreenko [Wed, 2 Dec 2020 18:24:15 +0000 (10:24 -0800)]
Add OSX arm64 jit. (#45467)
* CMake changes.
* use unix_osx.
David Wrighton [Wed, 2 Dec 2020 18:02:32 +0000 (10:02 -0800)]
Use jit interface thunkgen tech for more files (#45044)
- Reduce the boilerplate logic when modifying the jit ee interface
- 3 new files in superpmi are now autogenerated as well as 2 files in the jit directory are now autogenerated
- Reduce to only having one copy of the jit-ee interface guid
Ben Adams [Wed, 2 Dec 2020 17:25:27 +0000 (17:25 +0000)]
Remove ResolveXHandle indirections (#45292)
* Remove internal redirection for RuntimeTypeHandle
* Remove internal redirection for RuntimeFieldHandle
* Remove internal redirection for RuntimeMethodHandle
* Add null token tests
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Adam Sitnik [Wed, 2 Dec 2020 17:04:26 +0000 (18:04 +0100)]
Reduce CacheEntry size (#45410)
* replace 3 boolean fields with one enum flag field
* use auto property for AbsoluteExpiration
* simplify the code by using expression bodies
* don't use internal fields of CacheEntry, the public properties are enough
* expose private methods of MemoryCache and replace the usage of delegates with dependency to MemoryCache
2 fields less for MemoryCache and three for every CacheEntry