platform/upstream/dotnet/runtime.git
15 months agoChange generation for NonGC objects for debugger (#89927)
Egor Bogatov [Tue, 8 Aug 2023 08:10:39 +0000 (10:10 +0200)]
Change generation for NonGC objects for debugger (#89927)

15 months agoFix analyzer warning that is breaking the build (#90136)
Eirik Tsarpalis [Tue, 8 Aug 2023 07:50:11 +0000 (10:50 +0300)]
Fix analyzer warning that is breaking the build (#90136)

15 months agoSerialize createdump core dump generation (#90130)
Mike McLaughlin [Tue, 8 Aug 2023 03:12:16 +0000 (20:12 -0700)]
Serialize createdump core dump generation (#90130)

* Serialize createdump core dump generation

Only allow one thread at a time to generate a core dump.

Issue: https://github.com/dotnet/runtime/issues/82989

* Code review feedback. Move serializing code into PROCCreateCrashDump

* Code review feedback - put while (true) around poll()'s

15 months ago[iOS] Remove cmake build dependency for library mode (#89869)
Steve Pfister [Tue, 8 Aug 2023 03:02:08 +0000 (20:02 -0700)]
[iOS] Remove cmake build dependency for library mode (#89869)

This change removes cmake as a build dependency and instead uses clang directly when building for iOS/tvOS/Macatalyst library mode.

15 months ago[JIT] Do not force creation of a new IG if the current IG has no instructions (#89876)
Will Smith [Tue, 8 Aug 2023 02:43:48 +0000 (19:43 -0700)]
[JIT] Do not force creation of a new IG if the current IG has no instructions (#89876)

* Added 78891 test

* Fix name

* Fix test

* Feedback

* 78891 test is process isolated to use the environment variables. When enabling GC in the emitter, if the current IG has no instructions, do not force a new IG.

* Remove extend flag

* Quick cleanup

* Quick cleanup

* Update Runtime_78891.csproj

* Feedback

* Fix test

* Fix test

* Reset flags

* Fix test

* Fixing test again...

* Only set the NOGCINTERRUPT flag accordingly

15 months agoReplace `SetErrorMode` with `SetThreadErrorMode`. (#90122)
Aaron Robinson [Tue, 8 Aug 2023 02:00:24 +0000 (19:00 -0700)]
Replace `SetErrorMode` with `SetThreadErrorMode`. (#90122)

* Replace SetErrorMode with SetThreadErrorMode.

Replaces all possible locations.
Removed SetErrorMode from PAL.

15 months agoCheck IsBaselineSimdIsaSupported in LocalAddressVisitor (#90099)
Egor Bogatov [Tue, 8 Aug 2023 01:11:30 +0000 (03:11 +0200)]
Check IsBaselineSimdIsaSupported in LocalAddressVisitor (#90099)

15 months agoUpdate DAC's CMakeLists to create longname pdb (#90109)
Juan Hoyos [Tue, 8 Aug 2023 00:46:45 +0000 (17:46 -0700)]
Update DAC's CMakeLists to create longname pdb (#90109)

15 months ago[wasm][debugger] Support indexing Dictionary by string key (#90108)
Thays Grazia [Tue, 8 Aug 2023 00:05:30 +0000 (21:05 -0300)]
[wasm][debugger] Support indexing Dictionary by string key (#90108)

* Enabling tests, they are working.

* Adding more tests.

15 months agoMake [In] the default for blittable arrays that are pinned (#90054)
Jackson Schuster [Tue, 8 Aug 2023 00:01:45 +0000 (19:01 -0500)]
Make [In] the default for blittable arrays that are pinned (#90054)

* Make [In] the default for blittable arrays that are pinned

15 months agoSimplify invalid hostname check in DomainNameHelper (#90088)
Miha Zupan [Mon, 7 Aug 2023 23:53:21 +0000 (01:53 +0200)]
Simplify invalid hostname check in DomainNameHelper (#90088)

15 months ago[wasm] perf: Use node 16.x, and update v8 paths to track that (#90113)
Ankit Jain [Mon, 7 Aug 2023 23:24:51 +0000 (19:24 -0400)]
[wasm] perf: Use node 16.x, and update v8 paths to track that (#90113)

15 months agoadd units to http metrics (#90020)
Anton Firszov [Mon, 7 Aug 2023 22:39:59 +0000 (00:39 +0200)]
add units to http metrics (#90020)

15 months agoInconsistent DebuggerDisplay formatting - Fix space, equal for name/value and Indirec...
Wasiim Hosenbocus [Mon, 7 Aug 2023 22:27:30 +0000 (18:27 -0400)]
Inconsistent DebuggerDisplay formatting - Fix space, equal for name/value and Indirect Value (#89370)

* Fix space, equal for name/value in DebuggerDisplay

Task 1 - Replace colons with equal, added spaces in between key/value

* Fix failing test

* Update src/libraries/System.Speech/src/Result/SemanticValue.cs

Co-authored-by: James Newton-King <james@newtonking.com>
* Update src/libraries/System.Threading/src/System/Threading/Barrier.cs

Co-authored-by: James Newton-King <james@newtonking.com>
* Update src/libraries/System.Threading/src/System/Threading/CountdownEvent.cs

Co-authored-by: James Newton-King <james@newtonking.com>
* Changes to indirect value in Debugger

Changing string in indirect value; either part of a variable or a method

* Revert Stopwatch debug string

---------

Co-authored-by: James Newton-King <james@newtonking.com>
15 months agoSPMI: Fix build (#90118)
Jakob Botsch Nielsen [Mon, 7 Aug 2023 22:13:53 +0000 (00:13 +0200)]
SPMI: Fix build (#90118)

15 months agoGetUnmanagedValues[Source|Destination] by marshal direction, not stub direction ...
Jackson Schuster [Mon, 7 Aug 2023 21:58:17 +0000 (16:58 -0500)]
GetUnmanagedValues[Source|Destination] by marshal direction, not stub direction (#90057)

15 months agoSPMI: Throw distinguished exception for recorded exceptions (#89978)
Jakob Botsch Nielsen [Mon, 7 Aug 2023 21:02:32 +0000 (23:02 +0200)]
SPMI: Throw distinguished exception for recorded exceptions (#89978)

Switch back to this scheme, since only looking for the managed exception
code does not handle crossgen2/ilc (they throw exceptions across the
JIT-EE interface as normal C++ exceptions).

I've verified that the JIT does not look closely at the exception codes
thrown in any of the places it does EH, which comes down to
`impJitErrorTrap` and `runWithErrorTrap`. So changing the exception code
should not result in any behavior differences.

15 months ago[browser][non-icu] `HybridGlobalization` calendar data (#89255)
Ilona Tomkowicz [Mon, 7 Aug 2023 20:51:42 +0000 (22:51 +0200)]
[browser][non-icu] `HybridGlobalization` calendar data (#89255)

* Calendar WIP.

* Genitive months.

* Short pattern.

* NativeCalendarName does not exist on WebAPI - use EnglishCalendarName.

* Fix failures in Locales caused by calendars data removal.

* Fix to previous commit.

* Whitespace.

* Implemented Eras.

* Populate NativeName with EnglishName.

* Fix tests.

* Typos + comments removal + block failing test.

* AM/PM designators are not in ICU anymore.

* ShortTimePattern is ready.

* Fix some failing tests.

* LongTimePatterns is ready.

* Ask about all culture info from JS at once.

* Fix remaining tests.

* Calendar Globalization tests fixed.

* Adding test files to projects.

* Build fix.

* Fix the fix.

* .

* Fix tests.

* Load locale info on request + fix Browser scenario tests.

* Fix test on v8.

* Forgotten clean-up.

* Small cleanup in ts.

* V8 11 is behaves more like browser.

* Fixed skipped failing tests.

* Syntax

* V8 returns the same as Browser.

* This API is not affected, no need to test. + Add documentation.

* Revert unintentional change.

* Feedback.

* @radical's feedback + fix after removing unnecessary set.

* Fix.

* Feedback.

* Fix tests.

15 months agoImprove performance in DI (#89964)
Benjamin Petit [Mon, 7 Aug 2023 19:55:25 +0000 (21:55 +0200)]
Improve performance in DI (#89964)

15 months agomake sure to only enable things meant for DATAS when it's on (#90008)
Maoni Stephens [Mon, 7 Aug 2023 19:19:55 +0000 (12:19 -0700)]
make sure to only enable things meant for DATAS when it's on (#90008)

also reverted a couple of things that were supposed to be temporary

15 months agoUpdating JSON Package Readme (#90102)
Eric StJohn [Mon, 7 Aug 2023 19:02:15 +0000 (12:02 -0700)]
Updating JSON Package Readme (#90102)

* Updating Json package readme

* Update src/libraries/System.Text.Json/src/PACKAGE.md

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
* Apply suggestions from code review

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
* Remove sharplab comment

* Update PACKAGE.md

* Update PACKAGE.md

* Remove TODO

---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
15 months ago[libs][Android] Filter out backwards timezones only with valid tzlookup file (#89933)
Mitchell Hwang [Mon, 7 Aug 2023 18:38:26 +0000 (14:38 -0400)]
[libs][Android] Filter out backwards timezones only with valid tzlookup file (#89933)

* [libs][Android] Filter out backwards timezones only with valid tzlookup file

* Address feedback

* [libs][Android] Skip NoBackwardTimeZones on Android API under 26

15 months agoFix referencing options source gen project in tests (#90104)
Tarek Mahmoud Sayed [Mon, 7 Aug 2023 18:36:16 +0000 (11:36 -0700)]
Fix referencing options source gen project in tests (#90104)

15 months ago[wasm][debugger] Enable Exception tests. (#90095)
Thays Grazia [Mon, 7 Aug 2023 18:14:41 +0000 (15:14 -0300)]
[wasm][debugger] Enable Exception tests. (#90095)

* Enable Exception tests.

* Fix ExceptionTests.

15 months agoImplement RandomAccess.FlushToDisk() (#89100)
Eric Mutta [Mon, 7 Aug 2023 18:12:33 +0000 (21:12 +0300)]
Implement RandomAccess.FlushToDisk() (#89100)

Fix #86836

Co-authored-by: Dan Moseley <danmose@microsoft.com>
15 months agoPut crossgen perf into "Ubuntu.1804.Amd64.Tiger.Perf". (#90091)
Jiri Cincura ↹ [Mon, 7 Aug 2023 17:11:59 +0000 (19:11 +0200)]
Put crossgen perf into "Ubuntu.1804.Amd64.Tiger.Perf". (#90091)

* Because crossgen need LTTng and 22.04 is not compatible.
* Windows using same queue.

15 months agoConvert CMakeSettings.json to CMakePresets.json for coreclr (#89513)
Huo Yaoyuan [Mon, 7 Aug 2023 17:08:23 +0000 (01:08 +0800)]
Convert CMakeSettings.json to CMakePresets.json for coreclr (#89513)

15 months ago[main] Update dependencies from dotnet/roslyn-analyzers (#89630)
dotnet-maestro[bot] [Mon, 7 Aug 2023 16:57:11 +0000 (09:57 -0700)]
[main] Update dependencies from dotnet/roslyn-analyzers (#89630)

* Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20230727.4
---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: Buyaa Namnan <bunamnan@microsoft.com>
15 months agoUpgrade DNNE to build incrementally (#89594)
Jackson Schuster [Mon, 7 Aug 2023 16:22:10 +0000 (11:22 -0500)]
Upgrade DNNE to build incrementally (#89594)

* Upgrade DNNE dependency to 2.0.3 to support incremental builds properly

15 months agoIntegrate HttpClientFactory and metrics (#86888)
James Newton-King [Mon, 7 Aug 2023 16:08:11 +0000 (00:08 +0800)]
Integrate HttpClientFactory and metrics (#86888)

* Integrate HttpClientFactory and metrics

* React to rebase

* Fix tests

* PR feedback

* Clean up

* Fix tests

15 months agoImprove duplicate assembly resolving (#89958)
Mike Voorhees [Mon, 7 Aug 2023 16:06:20 +0000 (12:06 -0400)]
Improve duplicate assembly resolving (#89958)

`GetAssembly` opens a new assembly and stream every time it is called and keeps them open for the duration of the run.

`RootAssemblyFile.LoadAssemblyFile` sort of handled an already loaded assembly, but it left a new `AssemblyDefinition` instance and `MemoryStream` open every time it happened.

`CacheAssembly` was easy to make a mistake with.   Forget to do the delicate dance that `RootAssemblyFile.LoadAssemblyFile` goes to already loaded assemblies and you can easily overwrite an already cached assembly.  Guard against mistakes rather than quitely overwriting the assembly that was already cached.

Why force callers of `CacheAssembly` to check if something is cached already?  Handle that case internally.

With these changes the logic in `RootAssemblyFile.LoadAssemblyFile` is simplified and an extra copy of the assembly is no longer left open in the scenario where an assembly is specified multiple times.

15 months agoFix wasm perf setup (#90093)
Jiri Cincura ↹ [Mon, 7 Aug 2023 15:02:30 +0000 (17:02 +0200)]
Fix wasm perf setup (#90093)

* Fixes bash expansion of ${this.version()}.

15 months agoAdd JsonSerializerOptions.MakeReadOnly(bool) overload. (#90013)
Eirik Tsarpalis [Mon, 7 Aug 2023 10:57:35 +0000 (13:57 +0300)]
Add JsonSerializerOptions.MakeReadOnly(bool) overload. (#90013)

15 months agoAdd `JsonNode.ParseAsync` public API (#90006)
DoctorKrolic [Mon, 7 Aug 2023 10:52:08 +0000 (13:52 +0300)]
Add `JsonNode.ParseAsync` public API (#90006)

* Add `JsonNode.ParseAsync` public API

* Regenerate ref assemblies

* Change implementation to use unrented document

15 months agoImprove test failure messages (#89967)
Mike Voorhees [Mon, 7 Aug 2023 07:42:42 +0000 (03:42 -0400)]
Improve test failure messages (#89967)

15 months agoCheck for <framework_name>.deps.json when enumerating framework paths (#90035)
Elinor Fung [Mon, 7 Aug 2023 05:06:59 +0000 (22:06 -0700)]
Check for <framework_name>.deps.json when enumerating framework paths (#90035)

This adds a check for the framework's .deps.json instead of just the existence of the directory. To avoid extra file checks in the normal/happy path (where all framework version folder are valid), when resolving, it only does the check after resolving the best version match. And if that version directory isn't valid, it tries resolving again without it.

15 months ago[mono][aot] Use g_strcasecmp () to check whenever aot input assemblies are loaded...
Zoltan Varga [Mon, 7 Aug 2023 00:18:07 +0000 (20:18 -0400)]
[mono][aot] Use g_strcasecmp () to check whenever aot input assemblies are loaded from the correct location. (#90065)

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

15 months agoTimeProvider GetLocalNow enhancement (#90066)
Weihan Li [Sun, 6 Aug 2023 22:07:22 +0000 (06:07 +0800)]
TimeProvider GetLocalNow enhancement (#90066)

Co-authored-by: Tarek Mahmoud Sayed <tarekms@microsoft.com>
15 months agoFix an assert and clean up a codegen issue (#90067)
Tanner Gooding [Sun, 6 Aug 2023 21:38:50 +0000 (14:38 -0700)]
Fix an assert and clean up a codegen issue (#90067)

15 months agoSPMI: Capture EE API exceptions in getNewHelper, and simplify the API shape a bit...
Jakob Botsch Nielsen [Sun, 6 Aug 2023 21:09:54 +0000 (23:09 +0200)]
SPMI: Capture EE API exceptions in getNewHelper, and simplify the API shape a bit (#89852)

We have various tests where getNewHelper throws an EE exception, so
capture these and rethrow them as part of SPMI.

It would be nice with a more general approach to this (conceptually all
EE APIs could throw exceptions), but this at least handles it for our
own libraries.

Contributes to #47540 and #47546.

Also clean up the API shape of getNewHelper slightly, since this requires
a JIT-EE GUID change anyway; the only used member of the token is the class,
so pass a class handle instead. The second parameter was also removed.

15 months agoFix CompositeChangeToken & CancellationTokenSource deadlock (#90078)
Rik Steenkamp [Sun, 6 Aug 2023 17:07:56 +0000 (19:07 +0200)]
Fix CompositeChangeToken & CancellationTokenSource deadlock (#90078)

15 months agoAdd note about creating arrays using newobj (#90070)
Jan Kotas [Sun, 6 Aug 2023 15:05:28 +0000 (08:05 -0700)]
Add note about creating arrays using newobj (#90070)

Contributes to #90038

15 months agoRename area-ILVerification to area-Tools-ILVerification (#89698)
Jan Kotas [Sun, 6 Aug 2023 15:04:35 +0000 (08:04 -0700)]
Rename area-ILVerification to area-Tools-ILVerification (#89698)

* Rename area-ILVerification to area-Tools-ILVerification

Fixes #89693

* Update src/coreclr/tools/ILVerify/README.md

Co-authored-by: Kevin Jones <vcsjones@github.com>
15 months ago[RISCV] Store 2*XLEN ValueType half in Reg and half on stack when only A7 available...
VincentWu [Sun, 6 Aug 2023 11:29:39 +0000 (21:29 +1000)]
[RISCV] Store 2*XLEN ValueType half in Reg and half on stack when only A7 available (#90072)

* update makefile

* add format file

* use mul inst instead of emulate mul
process stack size larger than imm32

* emit get_throw_trampoline

* mono_riscv_throw_exception

* fix error of stack trace

* test case

* output inst idiv
fix mono_riscv_emit_branch_exc

* implement mono_arch_get_throw_corlib_exception

* fix rdiv

* move ArgOnStack arg at prologue
lowering OP_XOR_IMM&OP_IXOR_IMM

* fix emit_imm

* test imm

* update test case

* use swich to process return value

* fix unwind inst def_cfa

* fmt

* lowering OP_LMUL_IMM

* make file for webapiclient

* lowerng&output
- OP_FCONV_TO_I8
- OP_LXOR_IMM
- OP_ISHR

* lowerng&output
- relaxed_nop
- float_cle
- long_shl
- OP_ICONV_TO_R_UN
- OP_LCONV_TO_I2
- OP_FBGE
- OP_IDIV_IMM

* fix this_pointer in vcall with valuetype returned
- The ABI specify that If the reture value would have been passed by reference, the caller will allocates memory for the return value, and passes the address as an implicit first parameter.
- The Mono will treat first parameter as this_pointer reference to `mono_vcall_trampoline()`.  They are conflict a bit.

* process param type: ArgVtypeOnStack & ArgVtypeByRef

* lowering OP_LCONV_TO_I2

* OP_IREM_UN_IMM
OP_ATOMIC_LOAD_U1
OP_IREM_UN_IMM

* fix output of OP_IREM & OP_IREM_UN
OP_IREM -> riscv_remw
OP_IREM_UN -> riscv_remuw

* use `lw` to load u4 value on the stack
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-cc.adoc#integer-calling-convention

* optmise lw+zext -> lwu

* fix patch_full
use mono_riscv_emit_loadu to emit lwu
fix rem

* fix `mono_arch_build_imt_trampoline` when `item->is_equals==false`

* FIXME: reg got crashed wetween `this` and return ref

* fix `mono_arch_build_imt_trampoline`

* float_sub & float_div

* OP_FNEG,OP_LADD_OVF,OP_FBEQ, OP_COND_EXC_OV

* fix mono_arch_emit_outarg_vt

* process ArgVtypeOnStack in emit_move_args

* add sample status

* fix valid imm check of OP_L.*_IMM

* OP_LCONV_TO_R_UN

* update

* fix the param order stored o stack

* fix the param size of MONO_TYPE_I & MONO_TYPE_U when RV64

* add test task for makefile

* update .clang-format

* fmt

* fix merge

* fix

* set cfa for callee saved regs

* fix the position of param passed by stack

* toll-calculator

* fix

* OP_FADD & OP_LCONV_TO_OVF_I

* ArgOnStackR8

* OP_FBLE

* check need needs_emulation for D&F

* mixins-with-interfaces

* OP_LXOR_IMM

* get_delegate_virtual_invoke_impl

* fix OP_ADDCC

* fix get_delegate_virtual_invoke_impl

* endfilter

* update

* update test file

* test ArgVtypeByRef

* fix VT arg of ArgVtypeByRef

* fix return value of valueType

* OP_FBGE & OP_FBLE for OP_RCOMPARE

* update

* lowering OP_FCONV_TO_I2

* lowering OP_RCONV_TO_I2

* OP_ATOMIC_ADD_I8

* OP_COND_EXC_IGT and OP_LCONV_TO_OVF_I4

* update

* fix add_valuetype

* update

* process param types of ArgVtypeInMixed

* update

* atomic_store_i8

* update

* fix divuw

* update

* rcall

* update testcase

* OP_FBNE_UN

* OP_FCONV_TO_I8

* update

* update test

* update

* clean

* remove changes

* fmt

* clean

15 months agoFix mono's Wsingle-bit-bitfield-constant-conversion (#90068)
Adeel Mujahid [Sun, 6 Aug 2023 11:28:08 +0000 (14:28 +0300)]
Fix mono's Wsingle-bit-bitfield-constant-conversion (#90068)

* Fix mono's Wsingle-bit-bitfield-constant-conversion

* Address CR feedback

15 months agoRecover some lost EH performance on Unix amd64 (#90033)
Jan Vorlicek [Sun, 6 Aug 2023 10:07:55 +0000 (12:07 +0200)]
Recover some lost EH performance on Unix amd64 (#90033)

* Improve EH performance on Unix amd64

Few months ago, a change to enable AVX512 on Unix was merged in.
That change has enlarged the CONTEXT structure significantly and
it was found that it has caused 6..17% regressions in exception handling
microbenchmarks.

This change gets some of the lost performance back by adding custom
copy constructor and assignment operator to the CONTEXT structure
and preventing copying of the AVX / AVX512 stuff if the source
context doesn't have it. I have observed 3..9% gain on my machine.

Close #84308

* Fix gcc build and size for non-xstate case

* Fix yet another gcc break

* Fix build break

* Revert the gcc fixes and disable the warning

The zeroing of CONTEXT structure is used at too many places and
it is valid, so rather than trying to modify all the places by
using placement new, just disable the warning for gcc.

15 months ago[wasm] Fix startup without emcc -g option (#89872)
Katelyn Gadd [Sat, 5 Aug 2023 21:09:13 +0000 (14:09 -0700)]
[wasm] Fix startup without emcc -g option (#89872)

When compiling without the emcc -g switch, the "env" module becomes "a", which caused startup to break.
Co-authored-by: Pavel Savara <pavelsavara@microsoft.com>
15 months agoDo not suppress inlining of random threadstatics (#90055)
Vladimir Sadov [Sat, 5 Aug 2023 14:57:33 +0000 (07:57 -0700)]
Do not suppress inlining of random threadstatics (#90055)

15 months agoRe-enable some JIT tests (#89739)
Aman Khalid [Sat, 5 Aug 2023 06:15:42 +0000 (23:15 -0700)]
Re-enable some JIT tests (#89739)

* JIT/opt/ObjectStackAllocation/ObjectStackAllocationTests/ for Crossgen
* JIT/Regression/JitBlue/Runtime_34170/Runtime_34170/ for Crossgen ARM32

15 months agoMove the background marking of UOH objects inside more space lock (#86802)
Andrew Au [Fri, 4 Aug 2023 22:54:06 +0000 (15:54 -0700)]
Move the background marking of UOH objects inside more space lock (#86802)

15 months agoMake sure all new GCDacVars are reported only for v2 (#90043)
Andrew Au [Fri, 4 Aug 2023 22:53:05 +0000 (15:53 -0700)]
Make sure all new GCDacVars are reported only for v2 (#90043)

15 months agoDelete dangling thread session states (#89955)
Tom McDonald [Fri, 4 Aug 2023 22:42:51 +0000 (18:42 -0400)]
Delete dangling thread session states (#89955)

* Delete dangling thread session states

Co-Authored-By: Johan Lorensson <lateralusx.github@gmail.com>
* Update ep-session.c

---------

Co-authored-by: David Mason <davmason@microsoft.com>
Co-authored-by: Johan Lorensson <lateralusx.github@gmail.com>
15 months agoIntroducing TimeZoneInfo.GetSystemTimeZones(bool skipSorting) (#89985)
Tarek Mahmoud Sayed [Fri, 4 Aug 2023 22:27:20 +0000 (15:27 -0700)]
Introducing TimeZoneInfo.GetSystemTimeZones(bool skipSorting) (#89985)

15 months agoImprove reliability of HttpRequestError.NameResolutionError (#89948)
Anton Firszov [Fri, 4 Aug 2023 22:03:01 +0000 (00:03 +0200)]
Improve reliability of HttpRequestError.NameResolutionError (#89948)

* map TryAgain to NameResolutionError

* Quic: always resolve DNS in managed code

* oops

* ignore ScopId when comparing ipv6 endpoints in tests

* do not reuse QuicAddr

* Skip NameResolutionError() test on Windows7

15 months agoFix HttpListener path parsing for trailing % (#90028)
Miha Zupan [Fri, 4 Aug 2023 21:52:04 +0000 (23:52 +0200)]
Fix HttpListener path parsing for trailing % (#90028)

15 months agoSPMI: Restore CORINFO_CALL_INFO stub lookup correctly (#90016)
Jakob Botsch Nielsen [Fri, 4 Aug 2023 21:42:50 +0000 (23:42 +0200)]
SPMI: Restore CORINFO_CALL_INFO stub lookup correctly (#90016)

SPMI was not restoring the runtimeLookupFlags/runtimeLookupArgs of the
embedded CORINFO_LOOKUP_KIND, leaving them set to garbage. This would
cause misses when replaying getReadyToRunHelper where those members are
used as the key.

15 months agoRevert "Disable MonitoringIsEnabled with issue 75302 (#75306)" (#89966)
Mark Plesko [Fri, 4 Aug 2023 21:32:52 +0000 (14:32 -0700)]
Revert "Disable MonitoringIsEnabled with issue 75302 (#75306)" (#89966)

Appears to have been fixed by #74959

Fixes #75302

This reverts commit a174882750130433b03afcf8ac30318c2fbc527f

15 months ago[wasm] CI: Don't trigger non-wasm runtime tests when wasm-test-runner (#89957)
Ankit Jain [Fri, 4 Aug 2023 21:21:07 +0000 (17:21 -0400)]
[wasm] CI: Don't trigger non-wasm runtime tests when wasm-test-runner (#89957)

.. changes. There is a separate subset `wasm_runtimetests` for
triggering wasm runtime tests. So, `runtimetests` subset used by
non-wasm jobs should ignore wasm-test-runner changes.

15 months ago[wasm][wbt] Split WBT classes to speed up CI job execution. (#89926)
Ilona Tomkowicz [Fri, 4 Aug 2023 21:18:47 +0000 (23:18 +0200)]
[wasm][wbt] Split WBT classes to speed up CI job execution. (#89926)

IcuSharding and BuildPublish on Blazor always take the longest. I split them more or less into equal test count per class (~20 in icu, ~10 in build publish).

This PR changes the times on wbt linux CI when we split into BuldPublish and BuildPublishDefaultTemplate:
Build time: ~1,5min -> ~1,5min
Run time: ~53min -> ~45min
Original time values taken from build [20230802.154](https://dev.azure.com/dnceng-public/public/_build/results?buildId=361726) with 495 301 tests.

It's fine but the BuildPublish is the only test that keeps running till the end, around 30th minute all the other wbt are done already, so trying the 3-file split approach:
- BuildPublishTestsFromWasmTemplate,
- BuildPublishTestsFromBlazorTemplate (the same test set as BuildPublishDefaultTemplate, just renamed to better describe the contents) and
- BuildPublish,

each <10 tests.
Build time: ~1,5min -> ~1,5min
Run time: ~53min -> 53 min - it seems 3 files split did not work as expected, @radical, it might be an outliner ~~but in this situation it does not look worthy to merge the changes~~.
[build 20230804.3](https://dev.azure.com/dnceng-public/public/_build/results?buildId=363212&view=logs&jobId=9c08ee28-c5cd-54b8-6ae3-9fcb797291cc&j=0b2e5ab0-105d-5e21-8497-262338385634)
Okay, on the re-run it's already fine, [35 min as expected](https://dev.azure.com/dnceng-public/public/_build/results?buildId=363553&view=logs&jobId=10714551-d8dc-5291-8d0a-07fdfc20529c&j=1fa93050-f528-55d3-a351-f8bf9ce5adbf&t=a9f1a437-3b59-5900-1137-ec6cae9a530c).

On windows it changed ~60min -> 42 min.

15 months agoUse the same tracked contexts for event pipe and ETW in nativeaot (#89902)
Elinor Fung [Fri, 4 Aug 2023 18:48:56 +0000 (11:48 -0700)]
Use the same tracked contexts for event pipe and ETW in nativeaot (#89902)

- Make tracking for event pipe and ETW enabled/status use the same contexts
- Switch to using the .NET ETW provider GUIDs instead of .NET Native
- Implement ep_rt_providers_validate_all_disabled (uses the contexts)

15 months agoAvoid extra console write for clearing on Unix (#89026)
Stephen Toub [Fri, 4 Aug 2023 18:17:04 +0000 (14:17 -0400)]
Avoid extra console write for clearing on Unix (#89026)

* Avoid extra console write for clearing on Unix

* Fix ordering from original PR

* Add test that the data we defined is expected

15 months agoUpdate the event used for the tiered compilation background thread (#89972)
Koundinya Veluri [Fri, 4 Aug 2023 17:53:11 +0000 (10:53 -0700)]
Update the event used for the tiered compilation background thread (#89972)

Updated the event to use `ClrEventStatic` instead of `ClrEvent`, as the former is intended for global variables and does not have a destructor. There may be a possibility for races with the destructor in shutdown scenarios.

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

15 months agouse approved SocketAddress API instead of direct internal access (#89841)
Tomas Weinfurt [Fri, 4 Aug 2023 17:38:29 +0000 (10:38 -0700)]
use approved SocketAddress API instead of direct internal access (#89841)

* use approved SocketAddress API instead of internal access

* feedback

* cleanup

15 months agoFix PermuteVar32x16x2 optimization (#90005)
Egor Bogatov [Fri, 4 Aug 2023 16:09:20 +0000 (18:09 +0200)]
Fix PermuteVar32x16x2 optimization (#90005)

15 months ago[workloads] Use native arm64 aot compilers for iOS, tvOS, maccatalyst, and android...
Steve Pfister [Fri, 4 Aug 2023 16:01:04 +0000 (09:01 -0700)]
[workloads] Use native arm64 aot compilers for iOS, tvOS, maccatalyst, and android where possible (#89961)

As a result of https://github.com/dotnet/runtime/pull/89027 and https://github.com/dotnet/runtime/pull/74715, we can now build native arm64 cross compilers on linux and macos. This change adds the right references to the workload manifest so that they can be installed with maui and the mobile SDK's.

win-arm64 is the only arm64 platform left and that is a work in progress.

Contributes to https://github.com/dotnet/runtime/issues/82495

Fixes https://github.com/dotnet/maui/issues/4476

15 months agoRework on 88919 as suggested by @vitek-karas (#89960)
Thays Grazia [Fri, 4 Aug 2023 15:01:44 +0000 (12:01 -0300)]
Rework on 88919 as suggested by @vitek-karas (#89960)

15 months ago[browser] doc feedback (#89951)
Pavel Savara [Fri, 4 Aug 2023 14:44:27 +0000 (16:44 +0200)]
[browser] doc feedback (#89951)

15 months agoAdd test for TypeIdentifierAttribute (#89882)
Steve Harter [Fri, 4 Aug 2023 14:28:06 +0000 (09:28 -0500)]
Add test for TypeIdentifierAttribute (#89882)

15 months agoMatch IsUnwindable and GetReturnAddressHijackInfo conditions (#89998)
Filip Navara [Fri, 4 Aug 2023 13:41:50 +0000 (15:41 +0200)]
Match IsUnwindable and GetReturnAddressHijackInfo conditions (#89998)

15 months agoRevert "For perf, use the new ConstructorInvoker APIs for ActivatorUtilities.CreateFa...
Jan Kotas [Fri, 4 Aug 2023 13:15:47 +0000 (06:15 -0700)]
Revert "For perf, use the new ConstructorInvoker APIs for ActivatorUtilities.CreateFactory (#89573)" (#89992)

This reverts commit c41696644436d6ba8d7bc6f06b20273d99d8dc70.

15 months ago[mono][ios] Disable failing eventpipe gcdump test on apple mobile platforms (#90002)
Milos Kotlar [Fri, 4 Aug 2023 13:11:20 +0000 (15:11 +0200)]
[mono][ios] Disable failing eventpipe gcdump test on apple mobile platforms (#90002)

* Disable failing eventpipe test on apple mobile platforms

* Add tracking issue

15 months agoLight up for newer arm64 hardware capabilities (#89991)
Jan Kotas [Fri, 4 Aug 2023 12:36:56 +0000 (05:36 -0700)]
Light up for newer arm64 hardware capabilities (#89991)

Fixes #89937

15 months ago[nativeaot][ios] Improve Native AOT test coverage on apple mobile platforms (#89301)
Milos Kotlar [Fri, 4 Aug 2023 11:44:05 +0000 (13:44 +0200)]
[nativeaot][ios] Improve Native AOT test coverage on apple mobile platforms (#89301)

* Enable TestLinqExpressions test

* Test maccatalyst job on Native AOT

* Test other smoke runtime tests on Native AOT

* Add tracking issue for disabled tests

15 months agoMove Microsoft.NET.WebAssembly.WebCil into tasks (#89999)
Viktor Hofer [Fri, 4 Aug 2023 10:42:53 +0000 (12:42 +0200)]
Move Microsoft.NET.WebAssembly.WebCil into tasks (#89999)

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

Repo task projects need to reside under src/tasks as the
TasksConfiguration property applies to these projects. By having a
referenced task project outside of src/tasks, it's easy to get
binclashes because of a project being built for different configurations
(Debug vs Release).

15 months agoRoll Ubuntu 18.04 queue to 22.04 (#89995)
Drew Scoggins [Fri, 4 Aug 2023 09:35:11 +0000 (02:35 -0700)]
Roll Ubuntu 18.04 queue to 22.04 (#89995)

15 months agoExclude NETFramework targets file during source build (#89974)
Eric StJohn [Fri, 4 Aug 2023 06:49:30 +0000 (23:49 -0700)]
Exclude NETFramework targets file during source build (#89974)

15 months agoMake ImplementsInterfaceOfSelf more precise for canonical subtypes (#89969)
Jan Kotas [Fri, 4 Aug 2023 05:50:54 +0000 (22:50 -0700)]
Make ImplementsInterfaceOfSelf more precise for canonical subtypes (#89969)

Fixes #89918

15 months agoMake marshaller types specific to each scenario (#89894)
Jackson Schuster [Fri, 4 Aug 2023 04:08:23 +0000 (21:08 -0700)]
Make marshaller types specific to each scenario (#89894)

Make the marshaller types for the test interfaces only include the necessary methods for each scenario to catch any generated code that uses a method from another scenario

15 months agoTry Vector128 before Vector (#89797)
Larry Ewing [Fri, 4 Aug 2023 03:58:04 +0000 (22:58 -0500)]
Try Vector128 before Vector (#89797)

15 months agoFix trimming issue in the cpuid test (#89989)
Michal Strehovský [Fri, 4 Aug 2023 03:35:57 +0000 (12:35 +0900)]
Fix trimming issue in the cpuid test (#89989)

15 months agoAdd diagnostic when the size of an array that is marshalled to the callee is an ...
Jackson Schuster [Fri, 4 Aug 2023 03:21:24 +0000 (20:21 -0700)]
Add diagnostic when the size of an array that is marshalled to the callee is an 'out' parameter. (#89827)

15 months agoMove ThrowForHR to start of NotifyForSuccessFulInvoke (#89970)
Jackson Schuster [Fri, 4 Aug 2023 03:18:35 +0000 (20:18 -0700)]
Move ThrowForHR to start of NotifyForSuccessFulInvoke (#89970)

15 months agoDon't generate symbols if user doesn't want them (#89840)
Michal Strehovský [Fri, 4 Aug 2023 03:13:21 +0000 (12:13 +0900)]
Don't generate symbols if user doesn't want them (#89840)

This has two changes:

* Stop looking at `DebugSymbols` property. It doesn't look like the SDK actually looks at this (anymore?) either. Setting this to false still produces managed symbols. The only thing that works is setting `DebugType`.
* Don't generate DBG file if debugging symbols are not generated. The user expectation when debugging symbols are disabled is that they don't get the extra file on disk. The DBG file would still have debug information for the native runtime. We may or may not run objcopy to strip symbols.

I considered also running objcopy when StripSymbols is set to false but DebugType is set to none like we discussed in #88780 but maybe that goes too far - I'd expect users would only set StripSymbols to a non-default value in case they e.g. don't want to install objcopy and we'd need yet another property to say "no really don't run objcopy". So I made this orthogonal to that.

15 months agoPrefer vectorized ProbabilisticMap over Latin1CharSearchValues (#89981)
Miha Zupan [Fri, 4 Aug 2023 02:22:50 +0000 (04:22 +0200)]
Prefer vectorized ProbabilisticMap over Latin1CharSearchValues (#89981)

15 months agoforward innerException's error code to retryable HttpRequestException (#89963)
Anton Firszov [Thu, 3 Aug 2023 23:36:41 +0000 (01:36 +0200)]
forward innerException's error code to retryable HttpRequestException (#89963)

If we are doing a retry because of a protocol error, or some other HttpIOException, we should forward the error code to the retryable HttpRequestException

15 months ago[HTTP Metrics] Shorter version tags (#89959)
Anton Firszov [Thu, 3 Aug 2023 23:33:07 +0000 (01:33 +0200)]
[HTTP Metrics] Shorter version tags (#89959)

Addressing https://github.com/dotnet/runtime/pull/89809#discussion_r1283541867

15 months ago[wasm] WBT: Use project ids that are safe for use as identifiers (#89945)
Ankit Jain [Thu, 3 Aug 2023 22:49:59 +0000 (18:49 -0400)]
[wasm] WBT: Use project ids that are safe for use as identifiers (#89945)

* [wasm] WBT: Use project ids that are safe for use as identifiers

For every test project, a random id is used which is
`Path.GetRandomFileName()`. In some cases this `id` gets used in a
generated C/C# source file, and that can cause failures.

For example the following fails with:

```
blz_checkfingerprinting_Release_zqkzgkui.ref/Program.cs(3,48): error CS1001: Identifier expected [/root/helix/work/workitem/e/wbt/blz_checkfingerprinting_Release_zqkzgkui.ref/blz_checkfingerprinting_Release_zqkzgkui.ref.csproj]
blz_checkfingerprinting_Release_zqkzgkui.ref/Program.cs(3,48): error CS1002: ; expected [/root/helix/work/workitem/e/wbt/blz_checkfingerprinting_Release_zqkzgkui.ref/blz_checkfingerprinting_Release_zqkzgkui.ref.csproj]
blz_checkfingerprinting_Release_zqkzgkui.ref/Program.cs(3,51): error CS1031: Type expected [/root/helix/work/workitem/e/wbt/blz_checkfingerprinting_Release_zqkzgkui.ref/blz_checkfingerprinting_Release_zqkzgkui.ref.csproj]
```

because the id, `blz_checkfingerprinting_Release_zqkzgkui.ref`, was used
as a namespace (line 3).

```
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using blz_checkfingerprinting_Release_zqkzgkui.ref;
```

Fix up the generated random ids to make them safer. The code is taken
from `WasmAppBuilder/ManagedToNativeGenerator.cs`.

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

* Apply the same for wasi

15 months ago[wasm] Remove hardcoded references to `net8.0` from WasmApp*targets (#89699)
Ankit Jain [Thu, 3 Aug 2023 22:49:19 +0000 (18:49 -0400)]
[wasm] Remove hardcoded references to `net8.0` from WasmApp*targets (#89699)

Look for `System.Runtime.dll` to find the runtime pack directory with the assemblies, so we don't need to figure out the tfm for the path.
- Cannot use `System.Private.CoreLib.dll` because that is in `native/` instead of `lib/net8.0`
- Cannot use `RuntimePackAsset` because in many places that item isn't available.
  - AOT on helix where we run only the wasm targets on the proxy project.
  - Runtime tests which currently dump all the assemblies, and other bits into a single directory, not following the directory structure of a runtime pack. This also means the `RuntimePackAsset` cannot easily be synthesized.

With lots of feedback from @viktorhofer
Fixes https://github.com/dotnet/runtime/issues/79109 .

15 months agoDynamic events (#89371)
Andrew Au [Thu, 3 Aug 2023 22:39:57 +0000 (15:39 -0700)]
Dynamic events (#89371)

15 months agoFix build race condition in ILLink.Tasks (#89949)
Sven Boemer [Thu, 3 Aug 2023 22:20:16 +0000 (15:20 -0700)]
Fix build race condition in ILLink.Tasks (#89949)

Avoid copying props/targets to the same output
location for different TFMs. Instead copy them to
the build output in a TFM-specific directory, and
import the targets from that directory when needed.

15 months agoRemove Runtime composite package from being built. (#89946)
Manish Godse [Thu, 3 Aug 2023 21:56:33 +0000 (14:56 -0700)]
Remove Runtime composite package from being built. (#89946)

* Remove Runtime composite package from being built.

* delete now unused projects.

15 months agoFix `LocalBuilder.IsPinned` always returning `false` on CoreCLR runtime (#89411)
Hamish Arblaster [Thu, 3 Aug 2023 21:44:07 +0000 (07:44 +1000)]
Fix `LocalBuilder.IsPinned` always returning `false` on CoreCLR runtime (#89411)

15 months agoHide GetTypeInfo
Huo Yaoyuan [Thu, 3 Aug 2023 21:28:25 +0000 (05:28 +0800)]
Hide GetTypeInfo

15 months agoSplit off system libraries into a separate ItemGroup (#89916)
Michal Strehovský [Thu, 3 Aug 2023 21:19:25 +0000 (06:19 +0900)]
Split off system libraries into a separate ItemGroup (#89916)

Should help with https://github.com/dotnet/runtime/pull/88294#issuecomment-1663268829.

15 months agoExpect ThrowForHR to throw Exception on nativeAOT (#89939)
Jackson Schuster [Thu, 3 Aug 2023 20:19:56 +0000 (13:19 -0700)]
Expect ThrowForHR to throw Exception on nativeAOT (#89939)

15 months agoDisable objc_msgSend stubs in clang (#89932)
Alexander Köplinger [Thu, 3 Aug 2023 19:35:59 +0000 (21:35 +0200)]
Disable objc_msgSend stubs in clang (#89932)

Applies the same fix as https://github.com/xamarin/xamarin-macios/pull/16231.

We recently started seeing the same issue in our runtime builds, see https://github.com/dotnet/runtime/issues/89925. This is because the AzDO build machines use Xcode 14 now but the Helix machines are still using Xcode 13 so linking an Xcode-14-built static library fails.

This happens in e.g. libSystem.Native.a or libSystem.Globalization.Native.a (the two libraries where we're using Objective-C).

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

15 months agoPass through ComWrappers based objects to COM type descriptor (#89887)
Jeremy Kuhne [Thu, 3 Aug 2023 19:22:53 +0000 (12:22 -0700)]
Pass through ComWrappers based objects to COM type descriptor (#89887)

WinForms hosts the the COM type descriptor. It has been updated to work with ComWrappers based objects- adding the check for them in TypeDescriptor.

There are hard dependencies on Windows in the current implementation. We can potentially update to conditionalize these. https://github.com/dotnet/winforms/issues/9291 tracks.

There is no automated test as it would require adding a dependency upstream to WinForms.

15 months agoAdjust DNS metrics (#89813)
Anton Firszov [Thu, 3 Aug 2023 19:02:33 +0000 (21:02 +0200)]
Adjust DNS metrics (#89813)

Adjust DNS metrics according to https://github.com/lmolkova/semantic-conventions/blob/dotnet8-metrics/docs/dotnet/dotnet-dns-metrics.md

15 months agoAdd the interop tags to the "add to the AppModel project" automation (#89221)
Jeremy Koritzinsky [Thu, 3 Aug 2023 18:50:08 +0000 (11:50 -0700)]
Add the interop tags to the "add to the AppModel project" automation (#89221)

15 months agoFix isIPAdjusted setting during exception handling (#89930)
Jan Vorlicek [Thu, 3 Aug 2023 18:36:16 +0000 (20:36 +0200)]
Fix isIPAdjusted setting during exception handling (#89930)

* Fix isIPAdjusted setting during exception handling

The CrawlFrame::isIPAdjusted flag is set to true for all frames
when handling software exceptions. That is not correct, as the IP is not
adjusted in those cases.

I've also cleaned up the values the flag is set to at various places to
use the real type of the member, which is `bool`. It was being set to
TRUE / FALSE or even 0 / 1 at some places.

As a related cleanup, I've removed the FRAME_ATTR_OUT_OF_LINE flag as it
was never set anywhere and still was being tested at few places.

* Add regression test