-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[API Implementation]: SafeFileHandle overloads for SetCreationTime, SetLastAccessTime, SetLastWriteTime #60507
Commits on Dec 16, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 80246ea - Browse repository at this point
Copy the full SHA 80246eaView commit details -
Configuration menu - View commit details
-
Copy full SHA for eb56003 - Browse repository at this point
Copy the full SHA eb56003View commit details -
Configuration menu - View commit details
-
Copy full SHA for f2b6e90 - Browse repository at this point
Copy the full SHA f2b6e90View commit details -
Configuration menu - View commit details
-
Copy full SHA for c1c0161 - Browse repository at this point
Copy the full SHA c1c0161View commit details -
Configuration menu - View commit details
-
Copy full SHA for d250908 - Browse repository at this point
Copy the full SHA d250908View commit details -
Configuration menu - View commit details
-
Copy full SHA for d711b3d - Browse repository at this point
Copy the full SHA d711b3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ef0ee4 - Browse repository at this point
Copy the full SHA 3ef0ee4View commit details -
Configuration menu - View commit details
-
Copy full SHA for ea88c03 - Browse repository at this point
Copy the full SHA ea88c03View commit details -
Configuration menu - View commit details
-
Copy full SHA for ec7d870 - Browse repository at this point
Copy the full SHA ec7d870View commit details -
Implement usage of Kernel32 Method GetFileInformationByHandle and str…
…uct BY_HANDLE_FILE_INFORMATION
Configuration menu - View commit details
-
Copy full SHA for b656f06 - Browse repository at this point
Copy the full SHA b656f06View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4299f3d - Browse repository at this point
Copy the full SHA 4299f3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 318167e - Browse repository at this point
Copy the full SHA 318167eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 53f5d93 - Browse repository at this point
Copy the full SHA 53f5d93View commit details -
Configuration menu - View commit details
-
Copy full SHA for a928024 - Browse repository at this point
Copy the full SHA a928024View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf7d67f - Browse repository at this point
Copy the full SHA bf7d67fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9dc972d - Browse repository at this point
Copy the full SHA 9dc972dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 03fa5d1 - Browse repository at this point
Copy the full SHA 03fa5d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ad32c2 - Browse repository at this point
Copy the full SHA 1ad32c2View commit details -
Configuration menu - View commit details
-
Copy full SHA for f424ec2 - Browse repository at this point
Copy the full SHA f424ec2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 007e068 - Browse repository at this point
Copy the full SHA 007e068View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a88e68 - Browse repository at this point
Copy the full SHA 6a88e68View commit details -
Configuration menu - View commit details
-
Copy full SHA for 092b32a - Browse repository at this point
Copy the full SHA 092b32aView commit details -
Configuration menu - View commit details
-
Copy full SHA for eb27249 - Browse repository at this point
Copy the full SHA eb27249View commit details -
Configuration menu - View commit details
-
Copy full SHA for b67d6a0 - Browse repository at this point
Copy the full SHA b67d6a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for a1ce489 - Browse repository at this point
Copy the full SHA a1ce489View commit details -
Configuration menu - View commit details
-
Copy full SHA for 39febf3 - Browse repository at this point
Copy the full SHA 39febf3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 25ffa08 - Browse repository at this point
Copy the full SHA 25ffa08View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba42e76 - Browse repository at this point
Copy the full SHA ba42e76View commit details -
Implement GetLastWin32Error proposal / @jozkee
Co-authored-by: David Cantú <dacantu@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 5824743 - Browse repository at this point
Copy the full SHA 5824743View commit details -
Configuration menu - View commit details
-
Copy full SHA for 01c405c - Browse repository at this point
Copy the full SHA 01c405cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3484035 - Browse repository at this point
Copy the full SHA 3484035View commit details -
Configuration menu - View commit details
-
Copy full SHA for 273ce50 - Browse repository at this point
Copy the full SHA 273ce50View commit details
Commits on Dec 17, 2021
-
Configuration menu - View commit details
-
Copy full SHA for af3955b - Browse repository at this point
Copy the full SHA af3955bView commit details
Commits on Dec 19, 2021
-
Configuration menu - View commit details
-
Copy full SHA for af923e1 - Browse repository at this point
Copy the full SHA af923e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 001f45c - Browse repository at this point
Copy the full SHA 001f45cView commit details -
Unix Implementation of GetAttributes, SetAttributes, GetCreationTime,…
… GetLastAccessTime and GetLastWriteTime
Configuration menu - View commit details
-
Copy full SHA for 1f41f14 - Browse repository at this point
Copy the full SHA 1f41f14View commit details -
Configuration menu - View commit details
-
Copy full SHA for bce7faa - Browse repository at this point
Copy the full SHA bce7faaView commit details -
Configuration menu - View commit details
-
Copy full SHA for b7d7b4a - Browse repository at this point
Copy the full SHA b7d7b4aView commit details -
Revert "Unix Implementation SetLastAccessTime and SetLastWriteTime"
This reverts commit bce7faa.
Configuration menu - View commit details
-
Copy full SHA for c48c855 - Browse repository at this point
Copy the full SHA c48c855View commit details -
Configuration menu - View commit details
-
Copy full SHA for 51e462e - Browse repository at this point
Copy the full SHA 51e462eView commit details
Commits on Jan 17, 2022
-
Configuration menu - View commit details
-
Copy full SHA for d1752d4 - Browse repository at this point
Copy the full SHA d1752d4View commit details
Commits on Jan 31, 2022
-
Configuration menu - View commit details
-
Copy full SHA for e7b5b15 - Browse repository at this point
Copy the full SHA e7b5b15View commit details
Commits on Feb 1, 2022
-
Configuration menu - View commit details
-
Copy full SHA for b2eec67 - Browse repository at this point
Copy the full SHA b2eec67View commit details -
SafeFileHandle
FileStatus
(#4)* [RateLimiting] Dequeue items when queuing with NewestFirst (#63377) * Don't reuse registers in Debug mode (#63698) Co-authored-by: Bruce Forstall <brucefo@microsoft.com> * Add IsKnownConstant jit helper and optimize 'str == ""' with str.StartsWith('c') (#63734) Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com> Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com> * - mono_wasm_new_external_root for roots on stack (#63997) - temp_malloc helper via linear buffer in js - small refactorings Co-authored-by: Katelyn Gadd <kg@luminance.org> * [Arm64] Don't use D-copies in CopyBlock (#63588) * Increase the maximum number of internal registers allowd per node in src/coreclr/jit/lsra.h * Based on discussion in https://github.com/dotnet/runtime/issues/63453 don't allocate a SIMD register pair if the JIT won't be able to use Q-copies in src/coreclr/jit/lsraarmarch.cpp * Update CodeGen to reflect that Q-copies should be used only when size >= 2 * FP_REGSIZE_BYTES and using of them makes the instruction sequence shorter in src/coreclr/jit/codegenarmarch.cpp * Update comment - we don't use D-copies after that change in src/coreclr/jit/codegenarmarch.cpp * Disable hot reload tests for AOT configurations (#64006) * Bump Explicit-layout value types with no fields to at minimum 1 byte size. (#63975) * Add runtime-extra-platforms pipeline to have matching runtime PR and Rolling builds (#62564) * Add runtime-extended-platforms pipeline to have matching runtime PR and Rolling builds * Fix evaluate changed paths condition for the extra pipeline * PR Feedback and fix condition * Move MacCatalyst back to staging, disable tvOS tests * Disable browser wasm windows legs * Make ILStubGenerated event log ModuleID corresponding to that on other events (#63974) * Retries for flaky WMI test (#64008) * [arm64] JIT: Redundant zero/sign extensions after ldrX/ldrsX (#62630) * JIT: fix up switch map for out-of-loop predecessor (#64014) If we have a loop where some of the non-loop predecessors are switchs, and we add pre-header to the loop, we need to update the switch map for those predecessors. Fixes #63982. * Update StructMarshalling design now that DisableRuntimeMarshallingAttribute is approved (#63765) Co-authored-by: Elinor Fung <elfung@microsoft.com> * Fix Crossgen2 bug #61104 and add regression test (#63956) The issue tracks the runtime regression failure where Crossgen2-compiled app is unable to locate a type with non-ASCII characters in its name. The failure was caused by the fact that Crossgen2 was incorrectly zero-extending the individual UTF8 characters when calculating the hash whereas runtime is sign-extending them. Thanks Tomas * Fix invalid threading of nodes in rationalization (#64012) The code in question assumes that the ASG will be reversed and thus threads "simdTree" before "location" in the linear order. That dependency, while valid, because "gtSetEvalOrder" will always reverse ASGs with locals on the LHS, is unnecessary and incorrect from the IR validity point of view. Fix this by using "InsertAfter" instead of manual node threading. * Check if the child object is in the heap range before get_region_plan_gen_num (#63828) * Check if the child object is in the heap range before object_gennum (#63970) * 'cmeq' and 'fcmeq' Vector64<T>.Zero/Vector128<T>.Zero ARM64 containment optimizations (#62933) * Initial work * Added a comma to display * Cleanup * Fixing build * More cleanup * Update comment * Update comment * Added CompareEqual Vector64/128 with Zero tests * Do not contain op1 for now * Wrong intrinsic id used * Removing generated tests * Removing generated tests * Added CompareEqual tests * Supporting containment for first operand * Fix test build * Passing correct register * Check IsVectorZero before not allocing a register * Update comment * Fixing test * Minor format change * Fixed formatting * Renamed test * Adding AdvSimd_Arm64 tests: * Adding support for rest of 'cmeq' and 'fcmeq' instructions * Removing github csproj * Minor test fix * Fixed tests * Fix print * Minor format change * Fixing test * Added some emitter tests * Feedback * Update emitarm64.cpp * Feedback * [Arm64] Keep unrolling InitBlock and CopyBlock up to 128 bytes (#63422) * Add INITBLK_LCL_UNROLL_LIMIT and CPBLK_LCL_UNROLL_LIMIT of 128 bytes in src/coreclr/jit/targetarm64.h * Keep unrolling InitBlock up to INITBLK_LCL_UNROLL_LIMIT bytes when dstAddr points to the stack in src/coreclr/jit/lowerarmarch.cpp * Keep unrolling CopyBlock up to CPBLK_LCL_UNROLL_LIMIT bytes when both srcAddr and dstAddr point to the stack in src/coreclr/jit/lowerarmarch.cpp * Add ProcessLinkerXmlBase to NativeAOT (#63666) Add Xml Parsing linker files as a reference source to NativeAOT Rename NativeAOT ProcessLinkerXmlBase version to ProcessXmlBase (uses XmlReader) Add ProcessLinkerXmlBase from linker and fix it so it can be used in NativeAOT (uses XPath) * Fix gc_heap::remove_ro_segment (#63473) * Fix OpenSSL version check in GetAlpnSupport The previous check failed 3.0.0 because the Minor was 0 and Build was 0. It could probably be rewritten to be `>= new Version(1, 0, 2)`, but that'd require more thinking. * Fix issues with verify_regions, clear_batch_mark_array_bits. (#63798) Details: - we cannot verify the tail of the region list from background GC, as it may be updated by threads allocating. - fix case in clear_batch_mark_array_bits where end is equal to the very end of a segment and we write into uncommitted memory in the mark_array. - bgc_clear_batch_mark_array_bits did some checks and then called clear_batch_mark_array_bits which repeated the exact same checks. Renamed clear_batch_mark_array_bits to bgc_batch_mark_array_bits and removed the old copy, removed the declaration for clear_batch_mark_array_bits. * [debugger][wasm] Added support for non user code attribute (#63876) * Hidden methods and step through methods behave the same way. * Perpared flow for setting JustMyCode in the future. * Tests for JustMyCode setting before debug launch. * Transformed into dynamic JustMyCode change flow. * JustMyCode disabled, first 3 cases solved. * Finished behavior for JMC disabled (with 1 difference). * JMC enabled: stepIn np bp + stepIn bp + resume bp. * Functional version (with minor deviations from expected behavior). * Refactoring. * All tests for NonUserCode work. * Fix line number after adding code above. * Fix error in merge. * Removing duplicated tests. * [wasm][debugger] Added support for stepper boundary attribute (#63991) * Hidden methods and step through methods behave the same way. * Perpared flow for setting JustMyCode in the future. * Tests for JustMyCode setting before debug launch. * Transformed into dynamic JustMyCode change flow. * JustMyCode disabled, first 3 cases solved. * Finished behavior for JMC disabled (with 1 difference). * JMC enabled: stepIn np bp + stepIn bp + resume bp. * Functional version (with minor deviations from expected behavior). * Refactoring. * All tests for NonUserCode work. * Fix line number after adding code above. * Stepper boundary with tests. * Save information about multiple decorators. * Fix error in merge. * Polish the PR build doc (#64036) * [wasm] WebSocket tests on NodeJS (#63441) - NPM package with WS. - Restore npm during build. - Load npm modules in test-main.js. Co-authored-by: Pavel Savara <pavel.savara@gmail.com> * Fix dependency in runtime-official.yml (#64040) After https://github.com/dotnet/runtime/pull/62564 the `hostedOs` value is included in the job name. * [API Implementation]: System.Diagnostics.CodeAnalysis.StringSyntaxAttribute (#62995) * Add StringSyntaxAttribute * Fix attribute declaration and add usage * Address PR feedback Co-authored-by: Stephen Toub <stoub@microsoft.com> * Reduce the memory footprint of HttpHeaders (#62981) * Change HttpHeaders backing store to an array * Reduce the size of HeaderDescriptor to 1 object * Update UnitTests, fix GetOrCreateHeaderInfo * Switch to a dictionary after ArrayThreshold headers * Add unit tests * Use storeValueRef naming consistently * Workaround field layout regression (#63005) * Mark _descriptor on HeaderDescriptor as nullable * Remove HeaderDescriptor.Descriptor and add HasValue, IsKnownHeader, Equals * Simplify HttpHeaderParser.Separator logic * Add comments on HasValue checks * Lazily group headers by name * Add a header ordering+grouping test * Make use of the _count field * Revert all HeaderDescriptor changes from PR * Switch back to always grouping by name * Assert that the collection is not empty in GetEnumeratorCore * Optimize AddHeaders for empty collections * Reference the Roslyn bug issue * Assert that multiValues are never empty * Don't preserve a Dictionary across Clear * Add comment about why a custom HeaderEntry type is used * Disable DirectoryLongerThanMaxLongPathWithExtendedSyntax_ThrowsException (#64044) * Add test coverage for frozen objects and GC interaction (#64030) * Test coverage for frozen objects and GC interaction * Update Preinitialization.cs * Remove Type.MakeGenericType dependency from source generation (#64004) * Remove Type.MakeGenericType dependency from srcgen * address feedback * add trimmer warning suppression * address feedback * Add ns2.0 support to System.Formats.Cbor (#62872) * Add ns2.0 support to System.Formats.Cbor * Add NetFrameworkMinimum to tfms * Add ReadHalf and WriteHalf to compatibility suppressions * Remove unwanted comment * Exception sets: debug checker & fixes (#63539) * Add a simple exception sets checker * Add asserts to catch missing nodes * Fix normal VN printing * Fix JTRUE VNs * Fix PHI VNs * Update VNs for "this" ARGPLACE node * Tolerate missing VNs on PHI_ARGs We do not update them after numbering the loops. (Though perhaps we should) * Tolerate unreachable blocks * Fix exception sets for VNF_PtrTo VNFuncs * Add VNUniqueWithExc * Add VNPUniqueWithExc * Fix arrays * Consistently give location nodes VNForVoid And always add exception sets for them. This will simplify the exception set propagation code for assignments. * Fix CSE * Fix GT_RETURN * Fix LCLHEAP * Fix GT_ARR_ELEM * Fix unique HWI * Fix unique SIMD * Fix GT_SWITCH * Fix CKFINITE * Fix HWI loads * Fix fgValueNumberAddExceptionSetForIndirection The method does not need to add the exception set for the base address. Additionally, the way it did add the sets, by unioning with normal value numbers, lost all exceptions not coming from the base address. This was fine for the unary loads, but broke the HWI loads that could have exceptions coming from not just the address. * Fix GT_RETFILT * Fix INIT_VAL * Fix DYN_BLK * Fix FIELD_LIST * De-pessimize CkFinite * Add a test for HWIs * Add a test for LCLHEAP * Change test to check for store block operators (#60878) * Update XUnit to 2.4.2-pre.22 (#63948) * Update to Xunit build 2.4.2-pre.13 Also pick up latest pre-release of analyzers * Disambiguate calls to Assert.Equals(double,double,int) Xunit added a new Assert overload that caused a lot of ambiguous calls. https://github.com/xunit/xunit/issues/2393 Workaround by casting to double. * Fix new instances of xUnit2000 diagnostic * Workaround xUnit2002 issue with implicit cast Works around https://github.com/xunit/xunit/issues/2395 * Disable xUnit2014 diagnostic This diagnostic forces the use of Assert.ThrowsAsync for any async method, however in our case we may want to test that a method will throw synchronously to avoid regressing that behavior by moving to the async portion of the method. * Use AssertExtensions to test for null ArgumentException.ParamName Workaround https://github.com/xunit/xunit/issues/2396 * Update to Xunit 2.4.2-pre.22 * Fix another ArugmentException.ParamName == null assert * Preserve OBJ/BLK on the RHS of ASG (#63268) One of my upcoming changes will need this information to accurately detect type mismatch in "fgValueNumberBlockAssignment". * Revert "Temporarily disable coredumps during library testing on macOS (#63742)" (#64057) This reverts commit 2c28e63f9360280011a3b03c1ca6dc0edce1fae4. Fixes #63761 * Performance: Fix Browser Wasm job not being found for dependent jobs (#64058) * Figure out the name that browser wasm now uses. * linux to the Browser wasm depends on name. Update the browser wasm dependson name to match the new one found in the pipeline. * Fix exception propagation over HW exception frame on macOS arm64 (#63596) * Fix exception propagation over HW exception frame on macOS arm64 There is a problem unwinding over the PAL_DispatchExceptionWrapper to the actual hardware exception location. The unwinder is unable to get distinct LR and PC in that frame and sets both of them to the same value. This is caused by the fact that the PAL_DispatchExceptionWrapper is just an injected fake frame and there was no real call. Calls always return with LR and PC set to the same value. The fix unifies the hardware exception frame unwinding with Linux where we had problems unwinding over signal handler trampoline, so PAL_VirtualUnwind skips the trampoline and now also the PAL_DispatchExceptionWrapper frame by copying the context of the exception as the unwound context. * Reenable DllImportGenerator.Unit.Tests * Add StringSyntax attribute to Regex.pattern field (#64063) I missed adding this one in my initial audit. It'll be exceedingly rare for a developer to manually write code that assigns a string to this protected field, but every source-generated regex does so, and thus any colorization VS provides will benefit looking at the source-generated code. * Sync shared code from aspnetcore (#64059) Co-authored-by: JamesNK <JamesNK@users.noreply.github.com> * Read the System.GC.CpuGroup settings in runtimeconfig.json (#64067) * Log message of unexpected exception in ThrowsAny (#64064) * Log message of unexpected exception in ThrowsAny * Update AssertExtensions.cs * Enable some browser legs on the extra-platforms pipeline (#64065) * Enable some browser legs on the extra-platforms pipeline * Flow platform parameter from helix queues templates * Fix another condition * Allow CreateScalarUnsafe to be directly contained by hwintrinsics that support scalar loads (#62407) * Ensure that floating-point constants can be contained by hardware intrinsics * Allow CreateScalarUnsafe to be directly contained by hwintrinsics that support scalar loads * Rename IsContainableHWIntrinsicOp to TryGetContainableHWIntrinsicOp and improve handling * Ensure that NI_AVX2_BroadcastScalarToVector128/256 are properly tracked as MaybeMemoryLoad * Applying formatting patch * Ensure a few other "maybe memory" and special memory operand size cases are handled * Applying formatting patch * Remove commented code (#63869) * Add pmi_path argument to superpmi.py script and use it in the superpmi-collect pipeline. (#63983) * Add -pmi_path argument to superpmi.py collect command and use it to set PMIPATH environment variable in src/coreclr/scripts/superpmi.py * Set pmi_path to $(SuperPMIDirectory)\crossgen2 * Print a warning if -pmi_path or -pmi_location is specified while --pmi is not in src/coreclr/scripts/superpmi.py * Move setting of PMIPATH environment variable under `if self.coreclr_args.pmi is True:` in src/coreclr/scripts/superpmi.py * Move pmi argument validation to setup_args() in src/coreclr/scripts/superpmi.py * Clone root_env if we are going to set PMIPATH environment variable in src/coreclr/scripts/superpmi.py * Update the macOS CoreCLR building documentation. (#63932) This updates the documentation to refer to the up-to-date location of requirements and prerequisites. * Introduce RandomAccess.SetLength (#63992) * don't Flush readonly MemoryMappedViewAccessor on disposal (#63794) * don't Flush if it's impossible to write * address code review feedback: apply same optimization to MemoryMappedViewStream * Implement System.Runtime.CompilerServices.DisabledRuntimeMarshallingAttribute on CoreCLR-family of runtimes/type systems (#63320) * Add the DisableRuntimeMarshallingAttribute to the build. * Add initial test suite * Implement support in IL stubs for the "disabled runtime marshalling" feature. * Add testing for inlining IL stubs. * Block SetLastError and LCID support when DisableRuntimeMarshallingAttribute is applied. * Bump NativeAOT-only R2R version header (missed previously) * Implement support in crossgen2 and NativeAOT * Clean up the test tree and update the tests to fail more reliably when bugs are present. Fix a bug that was uncovered when the tests were refactored. * Fix NativeAOT and clean up crossgen2 * Add a test for NoPreserveSig with DisableRuntimeMarshalling * Assign hr in SUCCEEDED macro. * PR feedback. * Block varargs in disabled marshalling mode. * Fix typo * Block types that have a field that is auto-layout somewhere in their layout. * Fix typo * Revert the AutoLayoutOrHasAutoLayoutFIeld check in the "marshalling enabled" case * Only set scope when it isn't null (it's null for some cases). * Fix narrowing conversion failure. * First pass simple implementation in Mono * Fix assert to still work for the built-in marshalling system * S_FALSE is a thing * Fix type load failures caused by eager type handle loading. * Get MethodILScope from the calling method when available (this covers all cases where we need it) * Add const modifier. * Try 2 to fix const modifiers * Fix compilation of NativeAOT jitinterface * Fix type lookup in Mono * Use try_get model for getting the attribute type in the case of failure. Fix mono implementation for looking up the attribute. * Handle void and generic instantiations * Update auto-layout check to check recursively in layout. * Enhance test suite with more tests for UnmanagedCallersOnly, generics, and the like. Fix AutoLayout test. * Fix IL and a few typos * Set a value in the padding for easier debugging. * Create sig->marshalling_disabled to track when marshalling is disabled, which is separate from the concept of "is this signature a P/Invoke" * Fix running test suite on Mono + Mini JIT * Fix recursive type load failure by only checking the "has auto-layout or field with auto-layout" for value types. * Fix mono windows build. * Feedback from Michal. * Fix bug in EcmaAssembly.HasAssemblyCustomAttribute * Make the runtime flavor check in the wrapper generator case-invariant * Use helper method since various different platforms/configurations throw different exceptions for these scenarios. * Fix AutoLayout test refactor and use a dummy value for the padding field in both enabled and disabled scenarios. * Add an explicit test for using enums as they're a little weird and needed some special-casing. * Fix build-time test filtering in xunit wrapper generator. * Fix some x86-specific issues * Add a nice big comment block. * Fix x86 * Refactor tests so we can skip one on Mono since Char->char lossy conversion is not supported. * Disable test in issues.targets until an alternative solution is reached. * Add another SkipOnMono attribute in the "Enabled" test suite. * Apply UnmangedFunctionPointerAttribute to help hint to the Mono LLVM AOT compiler to compile the managed->native thunks at aot-time * Unify on "runtime marshalling" terminology * Clean up unused usings. * Address Jan's feedback except for applying the attribute to CoreLib. * PR feedback. * Mono throws an InvalidProgramException for varargs * Fix copy-paste issue. * Make sure we use the P/Invoke's Module and not the caller's module when deciding if runtime marshalling is enabled for a varargs P/Invoke call. * Handle how LLVM AOT reports the failure to handle varargs (EEE) * Make ILLink validation steps in libs incrementally buildable (#64041) * Make ILLink validation steps in libs incrementally buildable Both the illink-oob and the illink-sharedframework targets don't define Inputs and Outputs which makes them run during no-op incremental builds. This change defines Inputs and Outputs based on what's used during the target's execution so that if the input assemblies or the illink assembly itself haven't changed, the step will be skipped. Also renaming properties and items to make them more readable and consistent. As these target files are "extensions" of the src.proj file and aren't shared anywhere, they can be treated like logic inside a project file and hence prefixing properties and items with an underscore "_" isn't necessary. * Fix broken callstacks in interpreter on MonoVM. (#60338) * Fix some broken callstacks in interpreter. * Fix build error. * Initial WASI support prototype (#63890) * Add StringSyntaxAttribute.Json (#64081) * [main] Update dependencies from 5 repositories (#64002) Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Přemek Vysoký <premek.vysoky@microsoft.com> * Fix crash when VS4Mac is debugging VS4Mac arm64 (#64085) Fix crash when VS4Mac is debugging VS4Mac arm64 Issue: https://github.com/dotnet/runtime/issues/64011 * ILVerify: Handle readonly references in ldfld (#64077) * ILVerify: Handle readonly references in ldfld Fixes #63953 * Fix test name Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com> * Avoid additional local created for delegate invocations (#63796) Very often 'this' is already a local and we can avoid creating another local. * [wasm][debugger] Apply changes on wasm using sdb protocol. (#63705) * Apply changes on wasm using sdb protocol. * conflict * Merge conflict. * Fix merge * Fix compilation error. * Fixed IsFloatPositiveZero from returning 'true' on non-constant double operands (#64083) * Fixed IsFloatPositiveZero from returning 'true' on non-constant double operands * Update src/coreclr/jit/gentree.h Co-authored-by: Egor Bogatov <egorbo@gmail.com> Co-authored-by: Egor Bogatov <egorbo@gmail.com> * Ensure several helper intrinsics are correctly imported and handled (#63972) * Ensure several helper intrinsics are correctly imported and handled * Ensure that Sum for TYP_INT/UINT on Arm64 is correctly handled * Respond to PR feedback and ensure ExtractMostSignificantBits for Vector64<int/uint> on Arm64 also uses AddPairwise * Applying formatting patch * Ensure the clsHnd is correct * Fix the remaining musl failures * Ensure that we aren't sign-extending TYP_BYTE (System.SByte) for ExtractMostSignificantBits * Ensure an assert is correct on x64 * Ensure Vector64<int/uint>.Dot on Arm64 uses AddPairwise, not AddAcross * Apply formatting patch * RegexNode cleanup (#64074) No functional changes, just code cleanup: - Move node types into a RegexNodeKind enum - Rename some of the kinds to make them more descriptive - Rename node.Next to node.Parent to better describe its purpose - Add a bunch of comments about node kinds * Refactor optimizing morph for commutative operations (#63251) * Create "fgOptimizeCommutativeArithmetic" And just move code from "fgMorphSmpOp" to it. Just one diff: better comma throw propagation in an ILGEN method. * Refactor the function Split it into specialized variants for each operator, delete redundant code, fix up one case of wrong typing for a constant in the MUL -> SHIFT optimization. One CSE diff due to different VNs because of the typing change for the constant (int -> long). Many text diffs: "mov x3, 5" => "mov w3, 5". * Do not set GTF_NO_CSE for sources of block copies (#63462) It is not necessary, the compiler fully supports locals on the RHS of a struct assignment. Not marking these results in a CQ improvement, from struct (including SIMD) CSEs and global constant propagation into promoted fields. * Handle embedded assignments in copy propagation (#63447) * Clean things up a little Delete redundant conditions, use "LclVarDsc*", rename locals for clarity. * Delete a redundant condition For actual def nodes, GTF_VAR_CAST will never be set, it is only set in "optNarrowTree" for uses. For "def nodes" that are actually uses (parameters), the VNs will never match anyway. * Handle embedded assignments in copy propagation Previously, as the comments in copy propagation tell us, it did not handle "intervening", or not-top-level definitions of locals, instead opting to maintain a dedicated kill set of them. This is obviously a CQ problem, but also a TP one, as it meant there had to be a second pass over the statement's IR, where the definitions would be pushed on the stack. This change does away with that, instead pushing new definitions as they are encountered in execution order, and simultaneously propagating on uses. Notably, this means the code now needs to look at the real definition nodes, i. e. ASGs, not the LHS locals, as those are encountered first in canonical execution order, i. e. for a tree like: ``` ASG LCL_VAR V00 "def" ADD LCL_VAR V00 LCL_VAR V00 ``` Were we to use the "def" as the definition point, we would wrongly push it as the definition on the stack, even as the assignments itself hasn't happened yet at that point. There are nice diffs with this change, all resulting from unblocked propagations, and mostly coming from setup arguments under calls. * Simplify optIsSsaLocal * Update format script permissions so it can be called on Unix systems directly. (#64107) * Revert "Enable System.Text.Json tests on netfx (#63803)" (#64108) This reverts commit 34794bc5f2bcdbaa9057bb07b8764e2bb6a411a2. * Make ApiCompat.proj incrementally buildable (#64037) * Make ApiCompat.proj incrementally buildable In https://github.com/dotnet/runtime/pull/64000, I noticed that ApiCompat.proj never builds incrementally. Even though the RunApiCompat target has Inputs and Outputs, those aren't defined too late inside the target to have any effect. Moving them out and declare the generated response file as an output. Also simplifying some msbuild logic and renaming some properties as underscore prefixes in project files don't make sense if the property isn't reserved in any way. * Update ApiCompat.proj * Remove enable drawing on unix switch (#64084) * Remove enable drawing on unix switch * Update some tests and not run tests that need Drawing on non Windows * PR Feedback, just turn off the switch * Address-expose locals under complex local addresses in block morphing (#63100) * Handle complex local addresses in block morphing In block morphing, "addrSpill" is used when the destination or source represent indirections of "complex" addresses. Unfortunately, some trees in the form of "IND(ADDR(LCL))" fall into this category. If such an "ADDR(LCL)" is used as an "addrSpill", the underlying local *must* be marked as address-exposed. Block morphing was using a very simplistic test for when that needs to happen, essentially only recognizing "ADDR(LCL_VAR/FLD)". But it is possible to have a more complicated pattern as "PrepareDst/Src" uses "IsLocalAddrExpr" to recognize indirect stores to locals. Currently it appears impossible to get a mismatch here as morph transforms "IND(ADD(ADDR(LCL_VAR), OFFSET))" into "LCL_FLD" (including for TYP_STRUCT indirections), but this is a very fragile invariant. Transforming TYP_STRUCT GT_FIELDs into GT_OBJs instead of GT_INDs breaks it, for example. Fix this by address-exposing the local obtained via "IsLocalAddrExpr". * Add a TODO-CQ for LCL_FLD usage * [Group 2] Enable nullable annotations for `Microsoft.Extensions.DependencyInjection` (#63836) * Annotate src * Update ResolverBuilder.Build * Update RunOnEmptyStackCore * ILEmitResolverBuilderContext constructor * Remove setter * Add assert * Enable nullable annotations for Microsoft.Extensions.Configuration.UserSecrets (#63700) * [mono] Cleanup trailing whitespace. (#64112) * Delete `GT_DYN_BLK` (#63026) * Import GT_STORE_DYN_BLK directly * Delete GT_DYN_BLK * DynBlk -> StoreDynBlk * Add some tests * Mark tests Pri-1 * Rebase and fix build * Bring back the odd early return * Ignore conversion exceptions during dictionary construction (#63792) * Extract SuperPMI into a separate component (#64035) Allows building the runtime without SPMI. `build.cmd clr` will still build SPMI. `build.cmd clr.native` will still build SPMI. `build.cmd clr.runtime` will no longer build SPMI. This is mostly motivated by NativeAOT subset builds where SPMI contributes to 10% of the native build time (nativeaot CorecLR subset builds pretty quickly compared to full CoreCLR). * Add COMWrappers to crossgen (#63969) * pipelines: Add wasm jobs (#64109) * Fixing update issue with multivalued properties #34267 (#56696) * Add custom attribute test * Adding test demonstrating issue #34267 * Solution for issue #34267 Replacing all values in property with the new collection, instead of just appending new values, leaving old values in place. * Incorporate review feedback Changing the variable name * Relax assert in ApplyEditAndContinue (#64132) Fixes #64070 * Disable NJulianRuleTest test crashing in CI (#64142) * Updating unit tests for DirectoryServices.AccountManagement (#56670) Removing old, redundant unit tests that were actually never executed Migrating old tests to new test infrastructure with configurable LDAP/AD connections * Fix MultiByteToWideChar call in pal (#64146) * Extra tests for assembly name parser. (#64022) * Dead code in native assembly name parsing * disallow `\u` escaping in assembly names * misc cleanup * forward slash is illegal escaped or not * ignore "language" attribute in assembly name ("culture" must be used) * duplicate attributes are ok if unrecognized (just add tests) * drop support for "custom" blob attribute * drop support for publickey[token]=neutral ("null" must be used) * ignore unknown assembly name attributes in mono (compat) * disallow \0 anywhere in the assembly name * disallow \0 in assembly names on mono (compat) * only check for embedded nulls when parsing * fix mono build * make GCC happy * couple test scenarios for publickey vs. publickeytoken (CoreRT parser might trip on these) * produce errors on duplicate known attributes in mono * Dispose LdapConnections used by ValidateCredentials (#62036) Ensure that cached LdapConnection instances created by PrincipalContext.ValidateCredentials are disposed when the corresponding PrincipalContext is disposed. Fix #62035 * Add runtime support for `ref` fields (#63985) * Add mono and coreclr runtime support for ref fields * Update Reflection.Emit tests to validate ref fields. Add test for TypedReference as a ref field. * Spmi replay asmdiffs mac os arm64 (#64119) * Split unix-arm64 into linux-arm64 and osx-arm64 in src/coreclr/scripts/superpmi-replay.proj * Split unix-arm64 into linux-arm64 and osx-arm64 in src/coreclr/scripts/superpmi-asmdiffs.proj * Add all subdirectories of $(SuperPMIDirectory) as PMIPATH in src/coreclr/scripts/superpmi-collect.proj * Update NativeAOT codegen and Crossgen2 for CreateSpan (#63977) - Make sure FieldRVA pointers remain aligned as required by the code generator - Use the same Packing Size approach as the IL Linker will use (See jbevain/cecil#817 for details) - Compilers that generate CreateSpan will need to follow that trick to be compatible with rewriters. - Provide ECMA spec augment describing packing size detail * Add alignment to mapped field stream (#63305) * Align MappeFieldDataStream at 8 byte boundary * Add test to verify that the mapped field rva data blob is aligned to ManagedPEBuilder.MappedFieldDataAlignment * Only align when the mapped field data is of size not equal to 0 * Implement hash and HMAC stream one shots This implements hashing and HMAC statics for streams. Additionally, "LiteHmac" and "LiteHash" were introduced. The existing HMAC and hash provider functionality do some bookkeeping we don't need for resetting. Since we do not need to use these hash handles after the digest has been finalized, resetting is unnecessary work. For HMAC, that also means keeping a copy of the key around for some implementations which we don't need to do. The LiteHash and LiteHmac types are implemented as structs with a common interface. To avoid boxing, generics are used and constrained to the interface where possible. The Browser implementation just defers to the existing HashDispenser rather than do anything novel. The HashProviderCng is somewhat specialized in its ability to reset. It did up-front check to determine if the platform supported reusable hash providers, and further had a single implementation for HMAC and Digests. The current Lite hash design requires that they remain separate types. * Title and message resources should be enforced to exist to prevent printing empty messages (#64151) Sync ILLink.Shared folder with the latest version in dotnet/linker main branch List of changes include: - Enforce title and message resources to exist to prevent printing empty messages - All diagnostics produced by linker now have a DiagnosticId, a title and a message - Schema for xml link attributes file - Added a readme file to the ILLink.Shared project to keep track of the commit is being used from dotnet/linker * Allow generating Dwarf version 5 (#63988) Contributes to https://github.com/dotnet/runtimelab/issues/1738. * Re-enable failing long path test (#64113) * Port MD4 managed implementation from mono/mono (#62074) Porting MD4 managed implementation from mono/mono (MD4.cs and MD4Managed.cs). It adds: - an internal class in the System.Net.Security with a single HashData method for now; - a set of related MD 4 unit tests to System.Net.Security.Unit.Tests project. * Fix one source of perf regression in GCHeap::Alloc. This impacts the System.Collections.CtorFromCollectionNonGeneric<Int32> family of benchmarks. (#64091) These benchmarks manage to make GCHeap::Alloc into a hotspot, so the call to IsHeapPointer() at the end matters for performance. * Add blsr (#63545) * Fix FileSystemAclExtensions.Create when passing a null FileSecurity (#61297) * Make FileSecurity parameter nullable. * Add missing ArgumentException message for FileMode.Append. * Refactor tests to ensure FileSecurity is tested with all FileMode and FileSystemRights combinations. Separate special cases. * Remove exception that throws when FileSecurity is null. Ensure we have logic that can create a FileHandle when FileSecurity is null. Fix bug where FileShare.Inheritable causes IOException because it is being unexpectedly passed to the P/Invoke (it should just be saved in the SECURITY_ATTRIBUTES struct). Add documentation to mention this parameter as optional. Ensure all exceptions match exactly what we have in .NET Framework, with simpler logic. * Address suggestions Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com> * Tune FP CSEs live across a call better (#63903) The problem was that the comparison of a weighted refcount, which usually has the order of hundreds or tens, with a small digit like "4" was too weak and missed some cases where we were still trying to CSE cheaps floats across calls and ending up with lots of stack shuffling. Fix this by using different tuning parameters, namely the costs estimated for the uses and defs (increase them to account for the spills and reloads). * [main] Update dependencies from dotnet/arcade dotnet/icu dotnet/xharness dotnet/emsdk (#64098) Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Update zip extraction to never throw any exceptions when the LastWriteTime update fails (#63912) * Use kebab-case in FB automation labels (#64048) * Onboard new Triage & PR Boards (#64198) * Exclusively use GitHub teams for Libraries area mentions (#64199) * Reduce buffer size used in XmlReader when using Async mode (#63459) The current choice of AsyncBufferSize resulted in the character buffer in the XmlTextReader being allocated on the Large Object Heap (LOH) Fixes https://github.com/dotnet/runtime/issues/61459 * Ignoring leading dot when comparing cookie domains (#64038) * ignoring leading dot when comparin cookie domain * Simplify cookie comparing logic to equality and moving it to CookieComparer to fix the build * Domain comparing optimizarion and more unit tests * small check optimization * Renaming method * Add missing handle function enter/return macros (#64061) The mono_field_static_get_value method uses a handle, but did not set up enter/exit macros properly, so this handle was leaked. Some code in Unity calls this embedding API method pretty often, which can lead to the mark stack overflowing in the GC code. * Drop support for .NET 5 SDK (#64186) We had to duplicate a lot of Microsoft.NET.ILLink.targets logic. * Implement IEquatable<T> on value types overriding Equals (and enable CA1066/1077) (#63690) * [mono] Temporarily disable two tests that fail on arm64 LLVM FullAOT. (#64180) * Delete stale reference in System.Drawing.Primitives (#64202) * Respond to feedback in GenerateMultiTargetRoslynComponentTargetsFile (#63943) * Respond to feedback in GenerateMultiTargetRoslynComponentTargetsFile Two small follow up changes from #58446 - Fix a type-o that breaks incremental build. Forgot to use MSBuild property syntax - Instead of having the infrastructure hard-code removing 'Abstractions', packages can set their own Disable source gen property name. * PR feedback * Use the static HashData(Stream) method in more places * Add executable bit to tizen sh files (#64216) * Bump Intellisensense package version to latest from `dotnet7-transport` (#63352) * Ensure that we aren't accidentally generating instructions for unsupported ISAs (#64140) * Assert that the ISA of the set intrinsic ID is supported * Ensure gtNewSimdCmpOpAllNode and gtNewSimdCmpOpAnyNode don't generate AVX2 instructions when not supported * Ensure codegen for Vector128.Dot when SSSE3 is disabled is correct * Update src/coreclr/jit/hwintrinsiccodegenarm64.cpp Co-authored-by: Jan Kotas <jkotas@microsoft.com> * Ensure Vector256.Sum has a check for AVX2 Co-authored-by: Jan Kotas <jkotas@microsoft.com> * Don't reference .NETFramework shims in libraries product or test composition (#64193) * Don't reference .NETFramework shims Stop referencing .NETFramework shims in libraries ref or source projects as those are supplementary and shouldn't impact the product composition. * [Android][libs] Enable Internal.Console.Write in System.Private.CoreLib (#63949) * [Android][libs] Enable Internal.Console.Write in System.Private.CoreLib * [docs] Add debugging System.Private.CoreLib Internal.Console.Write * Elaborate on debugging corelib log * Address feedback * Install v8 and Prebuild wasm (#64100) * Port Mono to Raspberry Pi, ship as new linux-armv6 RID (#62594) * Initial ARMv6 arch addition. Builds mono runtime, not CoreCLR (Mono already supports the CPU arch subset used by Raspberry Pi, whilst porting CoreCLR to e.g. VFPv2 would be major work) * Build small clr subset on ARMv6, it's needed for SDK and we want to check it works * Fix remote unwind (#64220) The _OOP_find_proc_info was setting only a couple of members of the unw_dyn_info_t instance on stack. So the remaining ones had random values. The load_offset was a recently added member to the struct. When we have updated libunwind, this change came in. The load_offset was random and that has broken unwindign as this offset is subtracted from the IP when looking up unwind info. The fix clears the whole struct. I have verified that the issue we had no longer happens with the fix. * Put back FindCaseSensitivePrefix regex alternation support (#64204) * Put back FindCaseSensitivePrefix alternation support * Fix the bug from the initial version, and add more comments * Update tests to expect RemoteExecutor to check exit code (#64133) * update generation_allocation_size correctly for SIP regions (#64176) SIP regions need to update the corresponding generation's generation_allocation_size and since this can be more than 1 gen older than the region's gen, we need to make all generation's alloc size get updated. * Android remove backward timezones (#64028) Fixes #63693 It was discovered that Android produces duplicate TimeZone DisplayNames among all timezone IDs in GetSystemTimeZones. These duplicate DisplayNames occur across TimeZone IDs that are aliases, where all except one are backward timezone IDs. If a name is changed, put its old spelling in the 'backward' file From the Android TimeZone data file tzdata, it isn't obvious which TimeZone IDs are backward (I find it strange that they're included in the first place), however we discovered that on some versions of Android, there is an adjacent file tzlookup.xml that can aid us in determining which TimeZone IDs are "current" (not backward). This PR aims to utilize tzlookup.xml when it exists and post-filter's the Populated TimeZone IDs in the AndroidTzData instance by removing IDs and their associated information (byteoffset and length) from the AndroidTzData instance if it is not found in tzlookup.xml. This is using the assumption that all non-backward TimeZone IDs make it to the tzlookup.xml file. This PR also adds a new TimeZoneInfo Test to check whether or not there are duplicate DisplayNames in GetSystemTimeZones * Update main branding to preview2 (#64219) * Catch UnicodeEncodeErrors (#64251) * Make XmlSerializer.Generator targets incremental (#64191) * Make XmlSerializer.Generator targets incremental Adding inputs and outputs to make XmlSerializer.Generator incremental * Make sure that shared memory object name meets the length requirements (#64099) Co-authored-by: Stephen Toub <stoub@microsoft.com> * Fix PAL_wprintf for wide characters (#64181) * [main] Update dependencies from dotnet/runtime dotnet/llvm-project (#64205) * Update dependencies from https://github.com/dotnet/runtime build 20220123.5 Microsoft.NETCore.ILAsm , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.App.Runtime.win-x64 , System.Runtime.CompilerServices.Unsafe , runtime.native.System.IO.Ports , Microsoft.NET.Sdk.IL , System.Text.Json From Version 7.0.0-alpha.1.22066.4 -> To Version 7.0.0-alpha.1.22073.5 * Update dependencies from https://github.com/dotnet/llvm-project build 20220123.1 runtime.win-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.win-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.osx.11.0-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-x64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-musl-arm64.Microsoft.NETCore.Runtime.ObjWriter , runtime.linux-arm64.Microsoft.NETCore.Runtime.ObjWriter From Version 1.0.0-alpha.1.22070.1 -> To Version 1.0.0-alpha.1.22073.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Delete unused ApiCompat baseline files (#64190) * Delete unused ApiCompat baseline files * Delete ApiCompatBaseline.netfx.netstandardOnly.txt * Remove manual .NETFramework baseline validation * Delete ApiCompatBaseline.netcoreapp.netfx461.ignore.txt * Delete ApiCompatBaseline.netcoreapp.netfx461.txt * Improve Regex handling of anchors (#64177) * Improve Regex handling of anchors - Extend search for leading anchor to support alternations. This means that an expression like `^abc|^def` will now observe the leading `^` whereas previously it didn't. - Add a FindFirstChar optimization that jumps to the right position for a pattern that matches a computeable max length and ends with an end anchor. * Address PR feedback * Add the exception set for `ObjGetType` (#64106) * Model NRE for ObjGetType * Add tests * [ILVerify] Fix casting check for arrays of generic parameters with class constraints (#64259) Fixes #63999 * Use lower call count threshold for tiering in debug builds (#60945) * Use lower call count threshold for tiering in debug builds To exercise more paths during tests, see https://github.com/dotnet/runtime/pull/60886 * Skip tests using AsyncIO in FileSystemAclExtensionsTests where it's not supported (#64212) The mono runtime does not yet support AsyncIO on Windows and there were some tests failing on CI because of it. Fixes #64221 * Correct JsonNode.Root doc (#64238) * Take ARMv6 out of PlatformGroup All (#64267) * Take ARMv6 out of PlatformGroup All, CoreCLR assumes this means full support Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com> * Only send to Helix for rolling build, due to small Helix queue (#64274) * Add ref field runtime feature indication (#64167) * Add ref field runtime feature indication Co-authored-by: Stephen Toub <stoub@microsoft.com> * Faster IndexOf for substrings (#63285) * Improve "lastChar == firstChar" case, also, use IndexOf directly if value.Length == 1 * Try plain IndexOf first, to optimize cases where even first char of value is never met * add 1-byte implementation * copyrights * fix copy-paste mistake * Initial LastIndexOf impl * More efficient LastIndexOf * fix bug in Char version (we need two clear two lowest bits in the mask) & temporarily remove AdvSimd impl * use ResetLowestSetBit * Fix bug * Add two-byte LastIndexOf * Fix build * Minor optimizations * optimize cases with two-byte/two-char values * Remove gotos, fix build * fix bug in LastIndexOf * Make sure String.LastIndexOf is optimized * Use xplat simd helpers - implicit ARM support * fix arm * Delete \ * Use Vector128.IsHardwareAccelerated * Fix build * Use IsAllZero * Address feedback * Address feedback * micro-optimization, do-while is better here since mask is guaranteed to be non-zero * Address feedabc * Use clever trick I borrowed from IndexOfAny for trailing elements * give up on +1 bump for SequenceCompare * Clean up * Clean up * fix build * Add debug asserts * Clean up: give up on the unrolled trick - too little value from code bloat * Add a test * Fix build * Add byte-specific test * Fix build * Update IndexOfSequence.byte.cs * [main] Update dependencies from dotnet/arcade dotnet/xharness dotnet/icu dotnet/hotreload-utils dotnet/llvm-project (#64265) * Update dependencies from https://github.com/dotnet/arcade build 20220124.13 Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk From Version 2.5.1-beta.22071.6 -> To Version 2.5.1-beta.22074.13 * Update dependencies from https://github.com/dotnet/xharness build 20220124.1 Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 1.0.0-prerelease.22071.1 -> To Version 1.0.0-prerelease.22074.1 * Update dependencies from https://github.com/dotnet/icu build 20220124.5 Microsoft.NETCore.Runtime.ICU.Transport From Version 7.0.0-preview.2.22071.2 -> To Version 7.0.0-preview.2.22074.5 * Update dependencies from https://github.com/dotnet/hotreload-utils build 20220124.1 Microsoft.DotNet.HotReload.Utils.Generator.BuildTool From Version 1.0.2-alpha.0.22069.1 -> To Version 1.0.2-alpha.0.22074.1 * Update dependencies from https://github.com/dotnet/llvm-project build 20220124.2 runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.linux-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx.10.12-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools From Version 11.1.0-alpha.1.22067.2 -> To Version 11.1.0-alpha.1.22074.2 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Add CancellationToken to TextReader.ReadXAsync (#61898) Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> Co-authored-by: Stephen Toub <stoub@microsoft.com> * Restrict parallelism in LLVM FullAOT compile, to prevent OOM (#63800) * Restrict parallelism in FullAOT compile, to prevent OOM * Reduce parallelism further, due to more OOM * Moved AssemblyName helpers to managed (#62866) * Moved ComputePublicKeyToken to managed * Managed assembly name parsing (adapted from nativeaot) * Fix for HostActivation failures. * PR feedback (RuntimeAssemblyName is back to CoreRT + other comments) * remove AssemblyNameNative::Init form the .hpp * remove AppX compat ifdef * renamed instance fields to convention used in C# * `Argument_InvalidAssemblyName` should be `InvalidAssemblyName`. Majority of use is `FileLoadException`. * remove `this.` * PR feedback (assign to fileds, bypass properties) * missed this change in the rebase * "low-hanging fruit" perf tweaks. * move one-user helpers to where they are used. * removed ActiveIssue for #45032 * remove AssemblyNameHelpers.cs form corelib * Remove the List when detecting duplicates. Support PublicKey. * whitespace * Fix managed implementation to match the new tests. * Some minor cleanup. * Do not validate culture too early * PR feedback * use SR.InvalidAssemblyName * Report the input string when throwing FileLoadException * tweaked couple comments * Disable RegexReductionTests tests on browser * Fix formatting of resource string where excess arguments are passed (#63824) * Fix formatting of resource string where excess arguments are passed. #63607 * Fix BuildCharExceptionArgs and ECCurve.Validate * Fix CA2208 * Fix CA2208. Remove paramName becaus it is in error message * Code review fixes * Code review fixes * Add Regex.Count string overloads (#64289) * Clarify purpose of PDB Document hashing (#64306) Fixes #63505 * Fix arm64/PInvoke so that NESTED_ENTRY/NESTED_END labels match. (#64296) This was exposed by building on arm64 with gcc-12, wherein the assembler complained about not being able to evaluate the constant expression for .size for the symbol on NESTED_END. Since the symbol on NESTED_END is not referenced anywhere else in the code base, I concluded that it was wrong, and NESTED_ENTRY was right. I have not tested this on anything but arm64 + gcc-12 * When decommitting, leaving one instead of two pages in regions case. (#64243) * Ensure that canceled Task.Delays invoke continuations asynchronously from Cancel (#64217) * Add gen folder moving gen projects from src folder (#64231) * Fix minor typos in GC documentation. (#64298) * Explicitly specify four subdirectories to use as part of the paths for -pmi_path arguments and expand the paths on a remote machine in src/coreclr/scripts/superpmi-collect.proj (#64308) * Disable RegexReductionTests on browser (#64312) * Add UnreachableException (#63922) * [mono] Recognize new names for Xamarin.iOS etc assemblies (#64278) They are being renamed in https://github.com/xamarin/xamarin-macios/pull/13847 * Remove usage of codecvt from corerun (#64157) * Remove usage of codecvt from corerun * Update src/coreclr/hosts/corerun/corerun.cpp Co-authored-by: Aaron Robinson <arobins@microsoft.com> Co-authored-by: Aaron Robinson <arobins@microsoft.com> * Refactor FileStatus.Unix. (#62721) * Refactor FileStatus.Unix. - Moves InitiallyDirectory out of FileStatus into FileSystemInfo. In FileSystemInfo it can be a readonly field making its usage clearer. And FileStatus can then directly be used to implement some FileSystem methods without allocating an intermediate FileInfo/DirectoryInfo. - Treat not exists/exist as initialized states to avoid wrongly assuming initialized means the file cache is valid, which isn't so when the file does not exist. - Use 0 for tracking uninitialized to make default(FileStatus) uninitialized. * Fix unique VNs for `ADDR`s (#64230) * Add the test * Fix unique VNs for ADDRs They need to keep the exception sets. * Implemented hierarchy of attributes. (#64201) * Implemented hierarchy of attributes. * Shortened. * Fixed overlooked test naming and simplified. * Partial refactor. * Update the managed type system to more gracefully fail when calling a varargs method. (#64286) * Update the managed type system to more gracefully fail when calling a varargs method. * Use ThrowHelper instead of manually throwing the exception. * Update src/coreclr/tools/Common/TypeSystem/Ecma/EcmaSignatureParser.cs Co-authored-by: Jan Kotas <jkotas@microsoft.com> * [mono] Add some missing Internal.Runtime.CompilerServices.Unsafe intrinsics. (#64314) * Remove usage of FEATURE_CORESYSTEM (#63850) * Remove usage of FEATURE_CORESYSTEM from coreclr. * [main] Update dependencies from dotnet/arcade dotnet/runtime-assets (#64331) * Update dependencies from https://github.com/dotnet/arcade build 20220125.6 Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.ApiCompat , Microsoft.DotNet.XUnitExtensions , Microsoft.DotNet.GenAPI , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.GenFacades , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.Helix.Sdk From Version 2.5.1-beta.22074.13 -> To Version 2.5.1-beta.22075.6 * Update dependencies from https://github.com/dotnet/runtime-assets build 20220125.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 7.0.0-beta.22060.1 -> To Version 7.0.0-beta.22075.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Fixes bad log method generation in certain cases. (#64311) In certain cases when developer by mistake places ILogger, Exception, or LogLevel in the message template, the code generator will produce the expected warning and makes sure the code will indeed compile and run correctly. Prior to this fix, the code generator would fail to compile with when either of ILogger, Exception or LogLevel were placed in message template incorrectly. Fixes #64310 * Fix IsMutuallyAuthenticated on Linux and OSX (#63945) * WIP - prepared a failing test * Fix IsMutuallyAuthenticated on Linux * Fix failing unit tests * Minor cleanup * Port changes to OSX * Fix comment * Invoke cert selection inline, don't allocate new credentials on Linux/OSX * Fix tests on OSX * Code review feedback * Move tests to separate file * Fix build * Fix Failing tests * Support {Last}IndexOfAny with sets after {lazy} loops (#64254) When emitting backtracking loops, the loop consumes as much and then backtracks through the consumed input. Rather than doing this one character by one character, we previously added use of LastIndexOf to search for the next place the literal after the loop matches. We can also augment that to use IndexOfAny to search for a small set that comes after a loop instead of a literal. Similarly when emitting backtracking lazy loops, rather than consuming one character and trying the rest of the expression and then consuming another character and trying the rest of the expression, we previously added an optimization to use IndexOf{Any} to find the next possible location of a match based on the literal that comes after the lazy loop. And we can similarly augment that to support a small set after the lazy loop. This is particularly helpful for IgnoreCase, as we're on a path to replacing literals with sets that contain all equivalent casings of that character. * Fix race conditions in SystemEvents shutdown logic (#62773) * Fix race conditions in SystemEvents shutdown logic When the application is terminated through Restart Manager the event broadcasting window will get the `WM_CLOSE` message. The message gets handled by passing it to `DefWndProc` which calls `DestroyWindow` on the window itself thus making the window handle invalid. The `Shutdown` method expects the window handle to be valid to post `WM_QUIT` message to terminate the thread running the message loop but that's no longer possible under these conditions. Additionally there's second race condition with the `s_eventThreadTerminated` event that is created during shutdown and set conditionally. A race condition between the threads could cause it to be created when the window message thread is already shutting down and thus it would never be set. Waiting for it in the `Shutdown` method would be cause a deadlock. This thread is also completely unnecessary since a `Join` is performed on the thread itself. The fix has several changes that act together: - `s_eventThreadTerminated` event is removed completely in favor of only relying on `Thread.Join` - `WM_DESTROY` message is detected (which happens as a result of WM_CLOSE calling `DefWndProc` which in turn calls `DestroyWindow`) and handled by shutting down the message loop thread - The message loop itself is rewritten to use standard `GetMessageW` loop. The reasoning on why it was not used seems not to be valid anymore since AppDomain shutdowns are performed differently * Add unit test. * Add braces * Add marshaller for TypeLoad failure cases (#64317) This is marshaller used when there incorrect configuration of marshaller applied to fields mostly * Add additional loop table asserts (#64126) 1. Assert that top-level loops are basic block disjoint 2. Assert LPFLG_ITER related flags are legal In addition: 1. Create a `optClearLoopIterInfo` phase to clear various bits in the loop table that are known to no longer be valid, to prevent bad asserts or JitDump output on their values. 2. Move the EndPhase call in Phase::PostPhase happens early, not late. This causes any subsequent asserts due to post-phase checking to be marked with the correct phase, in cases where there was a nested phase executed (such as liveness re-computation). 3. Convert PHASE_INSERT_GC_POLLS to use EndPhase checking 4. Convert fgDetermineFirstCodeBlock to return a PhaseStatus 5. Some minor cleanup in optUpdateLoopsBeforeRemoveBlock() (this was extracted from some bigger changes) * Moved AssemblyName helpers to managed (part 2) (#63915) * implement GetAssemblyName via dynamic call to MetadataReader * A few more file-locking tests. * fix #28153 * no need for version when getting MetadataReader * rename the argument to match AssemblyName * perf tweaks * use memory-mapped file to read metadata * adjust tests for the new implementation * use "bufferSize: 1" when stream is going to be mapped. * null-conditional operator. * do Dispose before re-throwing * get rid of the platform-specific/native stuff * remove assemblyname.hpp * remove `VerifyIsAssembly()` * PR feedback * put back gStdMngIEnumerableFuncs and the others * Fix several bugs in NullabilityInfoContext. (#64143) * Fix several bugs in NullabilityInfoContext. * Reverse ASG(CLS_VAR, ...) (#63957) This helps with register allocation. Consider: ``` ***** BB01 STMT00001 ( 0x000[E-] ... ??? ) N003 ( 18, 10) [000003] -ACXG------- * ASG ref $c0 N001 ( 3, 4) [000002] ----G--N---- +--* CLS_VAR ref Hnd=0x8fec230 Fseq[hackishFieldName] N002 ( 14, 5) [000000] --CXG------- \--* CALL ref CscBench.GetMscorlibPathCore $c0 ``` The rationalizer will rewrite it to what is effectively: ``` ***** BB01 STMT00001 ( 0x000[E-] ... ??? ) N004 ( 18, 12) [000003] -ACXG---R--- * ASG ref N003 ( 3, 6) [000002] n---G--N---- +--* IND ref N002 ( 1, 4) [000006] H----------- | \--* CLS_VAR_ADDR byref Hnd=0x8fec230 N001 ( 14, 5) [000000] --CXG------- \--* CALL ref CscBench.GetMscorlibPathCore ``` And the final LIR will look like: ``` [000006] ------------ IL_OFFSET void INLRT @ 0x000[E-] N001 ( 3, 4) [000002] ----G--N---- t2 = CLS_VAR_ADDR byref Hnd=0x8fec230 N002 ( 14, 5) [000000] --CXG------- t0 = CALL ref CscBench.GetMscorlibPathCore $c0 /--* t2 byref +--* t0 ref N003 ( 18, 10) [000003] -A-XG------- * STOREIND ref [000007] ------------ IL_OFFSET void INLRT @ 0x00A[E-] N001 ( 0, 0) [000004] ------------ RETURN void $180 ``` Since this store must use a barrier, `CLS_VAR_ADDR` won't be contained and will have to be evaludated separately. Because its value is live across a call, it'll get spilled and reloaded. Reversing the ASG fixes the problem: ``` ------------ BB01 [000..00B) (return), preds={} succs={} [000006] ------------ IL_OFFSET void INLRT @ 0x000[E-] N001 ( 14, 5) [000000] --CXG------- t0 = CALL ref CscBench.GetMscorlibPathCore $c0 N002 ( 3, 4) [000002] ----G--N---- t2 = CLS_VAR_ADDR byref Hnd=0x8fec230 /--* t2 byref +--* t0 ref N003 ( 18, 10) [000003] -A-XG------- * STOREIND ref [000007] ------------ IL_OFFSET void INLRT @ 0x00A[E-] N001 ( 0, 0) [000004] ------------ RETURN void $180 ``` * Fixes a few issues for dprintf on OSX (#64076) * [Codespaces] Make it possible to run wasm samples in the browser (#64277) With these changes, running the following in the Codespace will open the local browser to a page served from the codespace hosting the WASM sample: ```console cd src/mono/sample/wasm/browser make make run-browser ``` * Set EMSDK_PATH in .devcontainer.json We provision Emscripten as part of the devcontainer prebuild. Set EMSDK_PATH to allow rebuilding the wasm runtime to work without any additional ceremony * Install dotnet-serve into .dotnet-tools-global * [wasm] Don't try to open browser if running in Codespaces * .devcontainer: add global tools dir to PATH * .devcontainer: forward port 8000 This enables running the mono wasm samples in the local browser: * [wasm] samples: also check for dotnet-serve on the path On Codespaces we install dotnet-se…
Configuration menu - View commit details
-
Copy full SHA for 6a3e131 - Browse repository at this point
Copy the full SHA 6a3e131View commit details -
Revert "
SafeFileHandle
FileStatus
(#4)" (#5)This reverts commit 6a3e131.
Configuration menu - View commit details
-
Copy full SHA for 8de7a3c - Browse repository at this point
Copy the full SHA 8de7a3cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d5bb271 - Browse repository at this point
Copy the full SHA d5bb271View commit details -
Merge branch 'safehandle_filestatus' of https://github.com/tmds/runtime…
… into tmds-safehandle_filestatus
Configuration menu - View commit details
-
Copy full SHA for 3e2e401 - Browse repository at this point
Copy the full SHA 3e2e401View commit details -
Configuration menu - View commit details
-
Copy full SHA for b8b85cb - Browse repository at this point
Copy the full SHA b8b85cbView commit details
Commits on Feb 2, 2022
-
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 34d11e9 - Browse repository at this point
Copy the full SHA 34d11e9View commit details -
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 02dbad3 - Browse repository at this point
Copy the full SHA 02dbad3View commit details -
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for ef86395 - Browse repository at this point
Copy the full SHA ef86395View commit details -
Configuration menu - View commit details
-
Copy full SHA for dcfd29a - Browse repository at this point
Copy the full SHA dcfd29aView commit details
Commits on Feb 5, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 3e08682 - Browse repository at this point
Copy the full SHA 3e08682View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a65bf0 - Browse repository at this point
Copy the full SHA 1a65bf0View commit details
Commits on Feb 11, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 485d516 - Browse repository at this point
Copy the full SHA 485d516View commit details -
Configuration menu - View commit details
-
Copy full SHA for 797c8f0 - Browse repository at this point
Copy the full SHA 797c8f0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 72c2156 - Browse repository at this point
Copy the full SHA 72c2156View commit details
Commits on Feb 12, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 7a31c6c - Browse repository at this point
Copy the full SHA 7a31c6cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 68e4bde - Browse repository at this point
Copy the full SHA 68e4bdeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 12823fe - Browse repository at this point
Copy the full SHA 12823feView commit details -
Configuration menu - View commit details
-
Copy full SHA for 31e374e - Browse repository at this point
Copy the full SHA 31e374eView commit details
Commits on Feb 13, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 384d8af - Browse repository at this point
Copy the full SHA 384d8afView commit details
Commits on Feb 14, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 4984e30 - Browse repository at this point
Copy the full SHA 4984e30View commit details -
Configuration menu - View commit details
-
Copy full SHA for 708b8b0 - Browse repository at this point
Copy the full SHA 708b8b0View commit details -
Co-Authored-By: Dan Moseley <danmose@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 6510050 - Browse repository at this point
Copy the full SHA 6510050View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a336b7 - Browse repository at this point
Copy the full SHA 3a336b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 38e27bf - Browse repository at this point
Copy the full SHA 38e27bfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ca813c - Browse repository at this point
Copy the full SHA 1ca813cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ab9f08 - Browse repository at this point
Copy the full SHA 1ab9f08View commit details
Commits on Feb 16, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 84c19d8 - Browse repository at this point
Copy the full SHA 84c19d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for e81aa89 - Browse repository at this point
Copy the full SHA e81aa89View commit details -
Configuration menu - View commit details
-
Copy full SHA for 136b78f - Browse repository at this point
Copy the full SHA 136b78fView commit details
Commits on Feb 17, 2022
-
Configuration menu - View commit details
-
Copy full SHA for f4bab25 - Browse repository at this point
Copy the full SHA f4bab25View commit details
Commits on Feb 24, 2022
-
Configuration menu - View commit details
-
Copy full SHA for d32db10 - Browse repository at this point
Copy the full SHA d32db10View commit details -
Configuration menu - View commit details
-
Copy full SHA for b97d6e7 - Browse repository at this point
Copy the full SHA b97d6e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c27da1 - Browse repository at this point
Copy the full SHA 6c27da1View commit details
Commits on Mar 10, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 9da4cba - Browse repository at this point
Copy the full SHA 9da4cbaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4ad6973 - Browse repository at this point
Copy the full SHA 4ad6973View commit details
Commits on Mar 11, 2022
-
Co-Authored-By: Stephen Toub <2642209+stephentoub@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 1e85d14 - Browse repository at this point
Copy the full SHA 1e85d14View commit details -
Configuration menu - View commit details
-
Copy full SHA for 985347e - Browse repository at this point
Copy the full SHA 985347eView commit details
Commits on Mar 12, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 214a00f - Browse repository at this point
Copy the full SHA 214a00fView commit details
Commits on Mar 15, 2022
-
Co-Authored-By: Stephen Toub <2642209+stephentoub@users.noreply.github.com> Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for bae3af1 - Browse repository at this point
Copy the full SHA bae3af1View commit details -
Co-Authored-By: Stephen Toub <2642209+stephentoub@users.noreply.github.com> Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for dc9ecb5 - Browse repository at this point
Copy the full SHA dc9ecb5View commit details
Commits on Mar 26, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 99d6dd9 - Browse repository at this point
Copy the full SHA 99d6dd9View commit details
Commits on Mar 28, 2022
-
Apply suggestions & try to avoid reordering
Co-Authored-By: Dan Moseley <danmose@microsoft.com> Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 1d177a4 - Browse repository at this point
Copy the full SHA 1d177a4View commit details
Commits on Apr 6, 2022
-
Configuration menu - View commit details
-
Copy full SHA for fc06d5b - Browse repository at this point
Copy the full SHA fc06d5bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1bdec8f - Browse repository at this point
Copy the full SHA 1bdec8fView commit details
Commits on Apr 7, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5b7691f - Browse repository at this point
Copy the full SHA 5b7691fView commit details
Commits on Apr 19, 2022
-
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 56bdc14 - Browse repository at this point
Copy the full SHA 56bdc14View commit details
Commits on May 2, 2022
-
Configuration menu - View commit details
-
Copy full SHA for d43e8c2 - Browse repository at this point
Copy the full SHA d43e8c2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64641ce - Browse repository at this point
Copy the full SHA 64641ceView commit details -
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 9362956 - Browse repository at this point
Copy the full SHA 9362956View commit details
Commits on May 3, 2022
-
Configuration menu - View commit details
-
Copy full SHA for f9687ac - Browse repository at this point
Copy the full SHA f9687acView commit details
Commits on May 4, 2022
-
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 695070e - Browse repository at this point
Copy the full SHA 695070eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9fe781b - Browse repository at this point
Copy the full SHA 9fe781bView commit details -
Configuration menu - View commit details
-
Copy full SHA for b56a5ff - Browse repository at this point
Copy the full SHA b56a5ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for d763b4d - Browse repository at this point
Copy the full SHA d763b4dView commit details -
Co-Authored-By: Dan Moseley <danmose@microsoft.com>
Configuration menu - View commit details
-
Copy full SHA for 78bf14a - Browse repository at this point
Copy the full SHA 78bf14aView commit details
Commits on May 8, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 0e8e25d - Browse repository at this point
Copy the full SHA 0e8e25dView commit details -
Co-Authored-By: David Cantú <jozkyy@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 12a6e8a - Browse repository at this point
Copy the full SHA 12a6e8aView commit details -
Co-Authored-By: David Cantú <jozkyy@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 95114b3 - Browse repository at this point
Copy the full SHA 95114b3View commit details
Commits on May 9, 2022
-
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 1f3886e - Browse repository at this point
Copy the full SHA 1f3886eView commit details -
Configuration menu - View commit details
-
Copy full SHA for b9a310b - Browse repository at this point
Copy the full SHA b9a310bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9886bbb - Browse repository at this point
Copy the full SHA 9886bbbView commit details
Commits on May 12, 2022
-
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 2388c49 - Browse repository at this point
Copy the full SHA 2388c49View commit details -
Configuration menu - View commit details
-
Copy full SHA for 34e4c24 - Browse repository at this point
Copy the full SHA 34e4c24View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b5d54a - Browse repository at this point
Copy the full SHA 2b5d54aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 175d0a4 - Browse repository at this point
Copy the full SHA 175d0a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 053842b - Browse repository at this point
Copy the full SHA 053842bView commit details
Commits on May 13, 2022
-
Configuration menu - View commit details
-
Copy full SHA for db1ff57 - Browse repository at this point
Copy the full SHA db1ff57View commit details
Commits on May 16, 2022
-
Co-Authored-By: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for fdd0b9c - Browse repository at this point
Copy the full SHA fdd0b9cView commit details
Commits on May 17, 2022
-
Apply suggestions (using GitHub UI)
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 1700cdd - Browse repository at this point
Copy the full SHA 1700cddView commit details -
Apply suggestions (using GitHub UI)
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 83e7017 - Browse repository at this point
Copy the full SHA 83e7017View commit details
Commits on Jun 4, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 377b3ad - Browse repository at this point
Copy the full SHA 377b3adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6542494 - Browse repository at this point
Copy the full SHA 6542494View commit details -
Configuration menu - View commit details
-
Copy full SHA for 92b75e3 - Browse repository at this point
Copy the full SHA 92b75e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fc1b4f - Browse repository at this point
Copy the full SHA 4fc1b4fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fd5f7b - Browse repository at this point
Copy the full SHA 4fd5f7bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 67aab4e - Browse repository at this point
Copy the full SHA 67aab4eView commit details
Commits on Jun 7, 2022
-
Co-Authored-By: David Cantú <jozkyy@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for b0d5a73 - Browse repository at this point
Copy the full SHA b0d5a73View commit details
Commits on Jun 8, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 1fe2043 - Browse repository at this point
Copy the full SHA 1fe2043View commit details
Commits on Jun 9, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 168626d - Browse repository at this point
Copy the full SHA 168626dView commit details -
Configuration menu - View commit details
-
Copy full SHA for afe8cfe - Browse repository at this point
Copy the full SHA afe8cfeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b59c8f - Browse repository at this point
Copy the full SHA 5b59c8fView commit details
Commits on Jun 10, 2022
-
Update src/libraries/System.Private.CoreLib/src/System/IO/FileStatus.…
…Unix.cs Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 88efa3b - Browse repository at this point
Copy the full SHA 88efa3bView commit details
Commits on Jun 23, 2022
-
Configuration menu - View commit details
-
Copy full SHA for af9b7e7 - Browse repository at this point
Copy the full SHA af9b7e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for edf948e - Browse repository at this point
Copy the full SHA edf948eView commit details -
* Use the signature types when building ABI info (#70635) * Use signature types when building the ABI info This will allow us to let "mismatched" struct types as call arguments, which in turn is expected to simplify and de-pessimize much of the code working around the need to keep precise handles on struct nodes. Credit to @jakobbotsch for being able to make this change. * Work around the "InferOpSizeAlign" problem Handling it generally requires solving a larger problem of "eeGetArgSizeAlignment" not working well on ARM. (See also the use of "eeGetArgSizeAlignment" in "lvaInitUserArgs") * [wasm] Build WasmAppHost with UseAppHost=false (#70606) * [wasm] Build WasmAppHost with UseAppHost=false - WasmAppHost is included in the WebAssembly.Sdk pack, and doesn't have a platform specific package. - Since, this is being built for x64, the build defaults to using the app host, which means that we get a single binary file that can be run directly. - But this also means that the binary included in the WebAssembly.Sdk platform-agnostic package will target the platform where it was built. - Instead, build with UseAppHost=false, and update the wasm host to use the managed assembly instead. And update the RunCommand to use `dotnet exec WasmAppHost.dll`. * fix * JIT: Optimize expansion of indir cell addresses for CFG (#70491) On ARM64 it is expensive to materialize the address of an indirection cell since that requires multiple instructions. This is particular a problem when CFG is enabled where validation + call uses the indir cell twice. This changes the CFG logic to create a local in this case. We also were forcing the indir cell argument node into the register. This is not ideal for this particular case, so remove this logic and let LSRA deal with it. ARM still needs this logic. Fix #65076 * Handle mis-sized structs in XARCH `PUTARG_STK` codegen (#68611) * Handle "mis-sized" structs in XARCH PUTARG_STK codegen Previously, for structs which were not a multiple of TARGET_POINTER_SIZE in size: 1) On x86, we copied them to a local in morph. This was a small CQ issue. 2) On Unix x64, we didn't handle them at all and could read out of bounds in "genStructPutArgUnroll". This change fixes both issues by properly detecting cases where we need to be careful and updating codegen to use correct load sizes. * Add a test * Improve distribution of CoseHeaderLabel hash codes (#70695) * Implement digest one shots for browser implementation * [wasm] Don't use a fixed listening port for the proxy (#70681) Fixes https://github.com/dotnet/runtime/issues/70670 . * Fix SOS tests on 7.0 (#70677) The wcscpy_s in ClrDataAccess::GetRegisterName was failing with an invalid parameter exception because the prefixLen and regLen didn't include the terminating null wchar. * [wasm] Enable some previously failing WBT/AOT tests on windows (#70595) * [wasm] Enable some previously failing WBT/AOT tests on windows Fixes https://github.com/dotnet/runtime/issues/61725 . * [wasm] WBT: Fix a failing satellite assembly test The test fails because it is trying to find the string `got: こんにちは` in the app output, but it sees `?????`. This is due to xharness not setting the console output to UTF8, and then the tests not doing the same. Instead of that, we can move the check to be in the app itself, thus removing the need for any of this. Fixes https://github.com/dotnet/runtime/issues/58709 . * List other architectures and DOTNET_ROOT environment variables in dotnet --info (#70403) * [mono] Remove dead code. (#70671) A variable initialized to false and never modified means we can remove the variable and any code that depends on that variable not being false. This is a consequence of 15ab9f985ed45feaa619df70d288fbd0acd5c45f, where code that assigned the variable was removed. * Avoid throwing Win32Exception from HTTP authentication (#70474) * Avoid throwing Win32Exception from HTTP authentication When server sends malformed NTLM challenge the NT authentication processing would throw an unexpected Win32Exception from HttpClientHandler.Send[Async] calls. This aligns the behavior to WinHTTP handler where the Unauthorized reply with challenge token is returned back to the client. Similarly, failure to validate the last MIC token in Negotiate scheme could result in Win32Exception. Handle it by throwing HttpRequestException instead. * Make the unit test more resilient * Add trace to Negotiate authentication * Dispose connection instead of draining the response * Remove outdated ActiveIssue * Fix usage of GSS_KRB5_CRED_NO_CI_FLAGS_X (#70447) * Fix build detection of GSS_KRB5_CRED_NO_CI_FLAGS_X * Don't use GSS_KRB5_CRED_NO_CI_FLAGS_X on NTLM * Handle GSS_S_UNAVAILABLE error from gss_set_cred_option (NTLM wrapped in Negotiate) * Make the GSSAPI shim work with krb5 1.13 * Preserve the gss_acquire_cred minor status * Use IndexOf in WebUtility (#70700) The IndexOfHtmlDecodingChars method was iterating character by character looking for either a `&` or a surrogate, but then the slow path if one of those is found doesn't special-case surrogates. So, we can just collapse this to a vectorized `IndexOf('&')`, which makes the fast path of detecting whether there's anything to decode much faster if there's any meaningful amount of input prior to a `&`. (I experimented with also using `IndexOf('&')` in the main routine, but it made cases with lots of entities slower, and so I'm not including that here.) * Hoist the invariants out of multi-level nested loops (#68061) * first working version * Skip check of VN hoisting * Account for duplicate blocks * clean up * wip * isCommaTree && hasExcep * revert lsra changes * Update hoisting condition - Only update if node to be hoisted has side-effects and the sibling that is before that throws exception * Change to BasicBlockList * organize preheaders * update hoistedInCurLoop and hoistedInSiblingLoop * Reverse the loop order * cleanup and jit-format * Revert "Minor fix to display IG01 weight correctly" This reverts commit 757120e863b2da188db2593da1b7142fd1ecf191. * simplify code * Remove m_hoistedVNInSiblingLoop * Add back ResetHoistedInCurLoop Fix igWeight * Remove reversal of loop processing order * jit format * Experimental: Also generate PerfScore: * review feedback * fix the superpmi script * Revert superpmi asmdiffs change * Rename method * Add a comment * Delete GTF_ASSERTION_PROP_LONG (#70521) * Convert exception help context parsing to managed (#70251) * Move help link parsing to managed * Cleanup wtoi and nativeIsDigit * Fix metasig declaration * Guard GetHelpContext under FEATURE_COMINTEROP * Remove definition of GetHelpLink and guard more methods under cominterop * DWORD should be uint * Add help context marshaling test * Adjust marshaling test * Fix #ifdef with ILLink * Fix method signature mismatch * Specify string marshaling * Throwing test should not test successful HRESULT * Implement ISupportErrorInfo * Test interface in InterfaceSupportsErrorInfo * Delete tests for .NET Framework Xsltc.exe tool (#70706) * Use regex matching for Xsltc test baseline files * Delete xsltc.exe tests entirely * Reenable C4244 in repo (#70026) * Reenable 4244 warning for Mono. * Enable compiler errors for gcc/clang. * Fix issues enabling -Werror=implicit-int-conversion * Revert turning on implicit-int-conversion as error. This check was triggering failures on parts of the PAL that require additional scrutiny beyond the scope of this work. * Add SlidingWindow and FixedWindow to RateLimitPartition (#68782) * align GC memory load calculation on Linux with Docker and Kubernetes (#64128) * align memory load calculation in GC with Docker and Kubernetes * pass inactive file field name as a parameter * [wasm] Fix Debug configuration builds (#70683) * Fix cmake error ``` Manually-specified variables were not used by the project: CONFIGURATION_WASM_OPT_FLAGS ``` * Build the interpreter with -O1 on Wasm in Debug configs Otherwise `interp_exec_method` and `generate_code` can easily overflow the stack in some browsers with even a few recursive calls (for example during .cctor initializaiton) * [wasm] Make runtime_is_initialized promise callbacks one-shot (#70694) * [wasm] Make runtime_is_initialized promise callbacks one-shot Throw if runtime_is_initialized_resolve or runtime_is_initialized_reject is called more than once * Add a slightly generalized GuardedPromise<T> object Protects against multiple-resolve, multiple-reject, reject after resolve and resolve after reject. Does not protect against the executor throwing. * Do not use ExecutableMemoryAllocator on 64 bit platforms if default base address usage is requested (#70563) * [wasm][debugger] Implement get bytes from loaded_files using debugger protocol. (#69072) * Implement get bytes from loaded_files using debugger protocol. * fix pdb size == nul * Adressing @radical comments. * Fix build. * fix compilation * Addressing @radical comments. Co-authored-by: Ankit Jain <radical@gmail.com> * Add doc on Unix temporary file security practice (#70585) * Add doc on Unix temporary file security practice * Update unix-tmp.md * Update unix-tmp.md * Add example permissions encoding * Update docs/design/security/unix-tmp.md Co-authored-by: Dan Moseley <danmose@microsoft.com> * Update unix-tmp.md Co-authored-by: Dan Moseley <danmose@microsoft.com> * ConfigurationBinder.Bind on virtual properties duplicates elements (#70592) * ConfigurationBinder.Bind on virtual properties duplicates elements * simplify GetAllProperties * return array instead of list * Obsolete AssemblyName.CodeBase, AssemblyName.EscapedCodeBase (#70534) * JIT: Enable JitConsumeProfileForCasts by default (#69869) * Fix AttributePresence in composite mode (#70737) According to my comparative perf measurements composite framework spends about 5M more instructions in the method coreclr.dll!CMiniMdTemplate<CMiniMd>::SearchTableForMultipleRows(CMiniColDef sColumn) I tracked this down to the R2R table AttributePresence which is used to speed up attribute queries against the ECMA metadata model. In composite mode we were putting the table in the image header, not component header, and so the runtime was unable to locate it. This change fixes generation of the table in Crossgen2; I have verified that with this change I no longer see the 5M outlier. Thanks Tomas * Handle mis-sized structs in ARM/64 `PUTARG_SPLIT` codegen (#70249) * Add a test * Fix out-of-bounds loads in ARM/64's "genPutArgSplit" * Split the test out * Refactor how implicit byrefs are morphed (#70243) * Refactor implicit by-refs morphing Move it to "fgMorphLocal". Enabled folding in "LocalAddressVisitor". * Add FEATURE_IMPLICIT_BYREFS And use it in all the necessary places. Resolves the TP regression on Unix x64, turning it into a TP improvement. * Add a zero-diff quirk * Do not change `gtRetClsHnd` in `impNormStructVal` (#70699) * Do not change "gtRetClsHdl" in "impNormStructVal" Doing so leads breaking the proper ABI handling for the call. * Add a test * Support `PUTARG_STK(STRUCT LCL_VAR/LCL_FLD)` on ARM/64 (#70256) * Separate out LowerPutArgStk Call it from "LowerArg" instead of "ContainCheckCallOperands", as it does more than just containment analysis. * Support "PUTARG_STK(STRUCT LCL_VAR/LCL_FLD)" on ARM/64 To test this, transform "OBJ(LCL_VAR|FLD_ADDR)" to "LCL_FLD" on lowering. This additionally simplified the codegen code as it doesn't have to support two representations of the same thing. * Support `PUTARG_STK(STRUCT LCL_VAR/LCL_FLD)` on x86/Unix x64 (#70702) * Add GenTree::GetLayout * x86/Unix x64: lowering * x86/Unix x64: "genConsumePutStructArgStk" * x86/Unix x64: "genStructPutArgUnroll" * x86/Unix x64: codegen asserts * x86: "genStructPutArgPush" * Unix x64: "genStructPutArgPartialRepMovs" * Allow `TYP_STRUCT` `LCL_FLD` on the RHS of block copies (#70633) * Delete the unused "GTF_USE_FLAGS" It used to indicate that a branch operation didn't need to materialize its operand and could just "use flags" instead, but that purpose has long been lost now that we have explicit SETCC nodes in lowering. * Make GTF_DONT_EXTEND a shared flag So that it can be used for "LCL_FLD" as well as "GT_IND". No diffs. * Enable TYP_STRUCT on the RHS * fgMorphBlockOperand * Tweak TYP_STRUCT LCL_FLD costs Model it as two load, like OBJ. Note we could be more precise here, by using the register type of the layout. For now, we defer. * Block CSE Preserve previous behavior to avoid diffs. * Revert "Fix usage of GSS_KRB5_CRED_NO_CI_FLAGS_X (#70447)" (#70747) This reverts commit 84f7cad00ad834c365b5cd1297e1166525146b50. * Add note about backward branch constraints to ECMA-335 augments (#70760) * [NativeAOT] Enabling return address hijacking on ARM64 Windows (#70740) * Enabling return address hijacking on ARM64 Windows * pass right flags to the GcInfoDecoder * Fix value numbering of HWI loads (#70621) * Fix numbering of HWI loads Take into account all operands and describe the exception sets precisely. * Add a test * Recast the check * Small MsQuicStream refactorings (#70433) * Inline state transition helpers Fixes #55437 * Add high level comments for HandleEventReceive and ReadAsync * Updating HWIntrinsicInfo::lookupId to not accelerate Vector256 APIs when AVX2 is unsupported (#70686) * Updating HWIntrinsicINfo::lookupId to not accelerate Vector256 APIs when AVX2 is unsupported * Fixing a check in lookupId to properly negate the condition * Ensure the special-cased EA_32BYTE constants only happen when AVX/AVX2 are supported * Fixing a bad assert in morph * Dsiable CertificateValidationRemoteServer.ConnectWithRevocation_WithCallback on Android (#70768) * NativeAOT Unlock assignability comparison in reflection-free (#70726) * NativeAOT Unlock assignability comparison in reflection-free Closes #69960 * Document support for `IsAssignableFrom` * Document support for `IsInstanceOfType` * Document `IsAssignableTo` * Add suggestion from Michal * Update src/coreclr/nativeaot/System.Private.DisabledReflection/src/Internal/Reflection/RuntimeTypeInfo.cs Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com> * Remove whitespaces Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com> * [Mono] Fix C4018 round I (#70417) * First round of change of fixing C4018 * Address part of review feedback * Change the type of idx to unsigned for `effective_table_slow` * Add idx range check after the type was changed * Address review feedback for `class-init.c` * Change the return type of `*table_num_rows*` to `guint32`. Deal with the consequence of return type change of `table_info_get_rows`. Correct the type of a few local variables which store the return of `mono_metadata_token_index`. * Update return type * Address review feedbacks of metadata.c * Fix native crash * Make counter private to for-loop * Address review feedbacks * Address review feedbacks * Fix race condition in LoaderAllocator::CompareExchangeValueInHandle (#70765) The method was not actually using interlocked operation. It made it possible for multiple different values to win. Fixes #70742 * Enable redirection on arm64 (#70769) * Handle HW exceptions on Windows without redirection (#70428) This change modifies the way hardware exceptions are propagated from the vectored exception handler. Until now, runtime was returning from the vectored exception handler with instruction pointer in the context set to an asm helper. That redirected the thread to that helper and we have raised an exception from its call chain. While working on CET support, it was found that propagating exceptions from the vectored exception handler directly works just fine. So this change makes it work that way for all Windows targets. * Predicate for valid Tracker Reference is inverted (#70709) * Predicate for valid Tracker Reference is inverted * Fix test to not inline wrapper creation function. * JIT: Enable addressing modes for gc types (#70749) * JIT: Faster long->int overflow checks (#69865) * Update .net version for asp.net spmi collection script (#70778) * Enable IlcTrimMetadata by default (#70201) Enables more aggressive metadata stripping by default. In this mode, the AOT compiler only generates reflection metadata for artifacts that were deemed reflection-visible by either dataflow analysis, or user inputs. Previously we would consider everything that got generated reflection-visible. * Change the defaults within the compiler (making the conservative mode opt-in). * Add tests for scenarios in https://github.com/dotnet/runtimelab/issues/656 (resolves dotnet/runtimelab#656). * Update tests * Do more marking where it was necessary * Remove GSS_KRB5_CRED_NO_CI_FLAGS_X code (#70772) The support for building with GSS_KRB5_CRED_NO_CI_FLAGS_X was broken for quite some time. Attempts to reenable it failed due to bug in the krb5 GSSAPI implementation resulting in invalid memory accesses. * Make ConnectWithRevocation_StapledOcsp more resilient to being slow * Upgrade SDK to Preview 5 (#70117) Upgrade to released Preview 5 build * Find&replace FastInterlock* with Interlocked* (#70784) FastInterlock* operations were #defined as aliases to regular Interlock* operations. Deleted the FastInterlock* aliases and replaced usage with Interlocked* operations. * JIT: rework optCanonicalizeLoop (#70792) Rework loop canonicalization in anticipation of extending it to handle non-loop edges like those seen in #70802 (details in #70569). The code to fix up flow out of `h` was not needed and has been removed. We now assert upstream that no such fix up will be needed. * Avoid infinite loop in case of heap corruption (#70759) Co-authored-by: Juan Hoyos <juan.hoyos@microsoft.com> Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com> * [wasm][debugger] Remove workaround to get pauseOnExceptions setting (#70748) * Add SubstitutionParser that uses XPath Navigator into NativeAOT (#64671) * Add end-to-end test for NTLM/Negotiate authentication against fake server (#70630) * Add end-to-end test for NTLM/Negotiate authentication against fake server * Simplify the test since HttpClientHandler is always SocketsHttpHandler for the test environment * Fix test condition * Remove extra comment * Enable ThreadAbort with CET enabled via the QueueUserAPC2 (#70803) This change makes ThreadAbort work when CET is enabled. Instead of thread redirection, it uses the new user mode APC mechanism to get a thread to a handler and then throws the ThreadAbortException from there if the thread was interrupted at a safe location. I have verified it works using mdbg tests and also by manual testing in the Visual Studio 2022 using a test app that creates an instance of classes with properties containing infinite loop, wait on a lock, wait on a handle, infinite loop inside of a lock and infinite loop in finally. For the testing, I've enabled this separately from the CET so that the missing support for CET in the debugger code doesn't cause troubles. So we could enable this without CET enabled too, but I'd prefer doing that separately. * Test additional NativeAOT Lib testing (#70212) * Test additional NativeAOT Lib testing * more libraries to un nativeaot rolling build * FB * FB2 * only write results file if specified in args * excluding failing tests * oops, missed pull before a forced push * excluding some recently added tests that fail * fix typo with end element * FB * Fix emitDispJumpList for Arm64 (#70542) * fix jitdump * Fix arm build * Another format * Fix regression in runtime-jit-experimental (#70797) The newly-introduced `emitRemoveJumpToNextInst` optimization caused a regression when hot/cold-splitting, where jumps from the last hot instruction to the first cold instruction were erroneously removed. This is fixed by disabling the `isRemovableJmpCandidate` flag for branches between hot/cold sections. On an unrelated note, a JIT dump message has been added to indicate stress-splitting is occurring. * JIT: relax fwd sub restriction on changing class handle (#70587) For HW SIMD types, at least. Fixes #64879. * Use LastIndexOf in ZipArchiveEntry.GetFileName_Unix (#70701) There's not particularly good reason to open-code the loop here. * Update dogfooding instructions (#70833) - Delete note about multilevel lookup. It is not relevant anymore. - Fix nightly feed url to net7 - Replace .NET Core with just .NET * Add icon to dotnet.exe on Windows (#70578) * Add two new stages to prepare for our new custom type marshalling design. (#70598) * Simplify `Environment.IsWindows8OrAbove`. (#70818) * Simplify Environment.IsWindows8OrAbove. Since .NET 5, the regular Windows version detecton code always returns the correct version. * Remove two unused interop files. * Delete redundant aliases for primitive types (#70805) * Add limited support for LocalCertificateSelectionCallback for QUIC (#70716) * Inline state transition helpers Fixes #55437 * Add high level comments for HandleEventReceive and ReadAsync * [QUIC] Call `LocalCertificateSelectionCallback` to get client certificate * Code review feedback * JIT: Optimize range checks for X >> CNS and for short/byte indices (#67141) Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com> * Tighten checks in `areArgumentsContiguous` (#70829) * Tighten checks in "areArgumentsContiguous" * Add a test * Narrow cast fix (#70518) * Added genActualTypeSize. Remove narrow cast if the actual type sizes are the same * Trying to fix build * Fixing build * Removed genActualTypeSize. Using genActualType instead * Added helper function * Comments * Moving back to morph * Removing part of the test * Added fgOptimizeCastOnAssignment * Fixing build * Removing extra bits * Removed fgIsSafeToRemoveIntToIntCastOnAssignment, inlining the implementation, adding extra logic when actual types are not the same * [wasm] Disable WBT test failing on windows (#70808) Issue: https://github.com/dotnet/runtime/issues/70675 * Enable IDE1005 (Delegate invocation can be simplified) (#70522) * Disable long running test (#70843) * [wasm] Enabled WriteToReadOnly tests - emscripten bug got fixed (#70814) Fixes #53021. Enabled tests from #53021 - they are passing now because issue reported by @radekdoulik got fixed: https://github.com/emscripten-core/emscripten/issues/14299. * Use IndexOf{Any} in a few more places (#70176) * Use IndexOf{Any} in a few more places * Address PR feedback * Fix corerun for assemblies with mismatched filename (#70800) corerun gracefully handled filename not matching the assembly name. Handling of this case regressed in #68186. This change is fixing the regression. Fixes #68455 * Fix a few Stream-related issues in System.Net.Http (#70731) * Fix a few Stream-related issues in System.Net.Http * Put back WriteTimeout * Fix tests * Catch (more) mismatched args in `fgMorphArgs` (#70846) * Catch (more) mismatched args in "fgMorphArgs" * Add a test * [coop] fix coop suspend timeout cue card (#70828) the BLOCKING_SUSPEND_REQUESTED state is treated as suspend in full coop mode (the thread keeps running, but by definition it's not allowed to access managed resources and it will self-suspend if it tries to enter GC Unsafe mode by calling a runtime API or managed code). It is bad in hybrid suspend mode (the thread should be preemptively suspended, but we timed out before the signal handler had a chance to run). The corresponding suspension logic in the code is: https://github.com/dotnet/runtime/blob/3fc61ebb562afc327a8fc6de5c82d76e86bf6f5d/src/mono/mono/utils/mono-threads.c#L1149-L1158 * Fixing the handling of Positive NaN in Math.Min for float/double (#70795) * Adding tests validating Positive NaN for Max, MaxMagnitude, Min, and MinMagnitude * Fixing the handling of Positive NaN in Math.Min for float/double * Fixing the Max/Min code comments to use greater and lesser * Adding a code comment clarifying the sign toggling behavior * JIT: break loop canonicalization into two stages (#70809) For a given loop, we need to separate out the true backedge, any non-loop backedges, and any inner loop backedges so that they all target distinct blocks. Otherwise, we may violate assumptions that the loop entry dominates all blocks in the loop and that all backedges that reach top come from within the loop. This seems simplest to do with two rounds of canonicalization, one that moves the non-loop edges, and another that moves the true backedge. Fixes #70802. * Use `Array.Empty()` in `System.Reflection.Metadata`. (#70862) It is now available in all frameworks it targets. * Delete StaticallyLinked property from Microsoft.NETCore.Native.Unix.props (#70854) This option has many issues. Anybody trying to experiment with static linking can add `<LinkerArg Include="-static" />` into the local file. * Restore ArchivingUtils.AttemptSetLastWriteTime (#70617) * Fix GC stress failure in LoaderAllocator::CompareExchangeValueInHandle (#70832) InterlockedCompareExchangeT has to be called on a raw Object* to make the GC stress infrastructure happy. * Small performance cleanups in S.S.Cryptography * ARM64 - Optimize `i % 2` (#70599) * Assign proper VNs to "shared constant" CSE defs (#70852) * Assign proper VNs to shared CSE defs They must be those of the original expression, not the "base" constant CSE creates. * Add a test * Enable IDE0054 (Use compound assignment) (#70564) * Enable IDE0054 (Use compound assignment) * Update src/libraries/System.Data.Common/src/System/Data/Common/StringStorage.cs Co-authored-by: Tanner Gooding <tagoo@outlook.com> Co-authored-by: Tanner Gooding <tagoo@outlook.com> * Use new byte[] span optimization in a few more places (#70665) * Use new byte[] span optimization in a few more places Separated out of larger change to use CreateSpan (these don't rely on that). * Address PR feedback * Improve TLS1.3 detection in registry for QUIC (#70730) * Improve TLS1.3 detection in registry for QUIC * Split client and server detection * Code review feedback * Generate method bodies for delegate Invoke methods (#70883) There is a dataflow warning suppression in System.Linq.Expressions that assumes we'll always have an invocable method body for delegate Invoke method. We need one in IL. We don't in native code. Emulate what IL Linker does and generate a method body. This is a size regression. Suppression: https://github.com/dotnet/runtime/blob/3b2883b097a773715ca84056885e0ca1488da36e/src/libraries/System.Linq.Expressions/src/System/Dynamic/Utils/TypeUtils.cs#L906-L912 Fixes #70880. * Avoid crashing on unresolved dependencies (#70871) Fixes #70815. * Enable IDE0020 (Use pattern matching) (#70523) * Enable IDE0020 (Use pattern matching) * Update src/libraries/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriter.cs Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com> * Update variable naming Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com> * Fix failure building two libraries tests (#70881) Microsoft.CSharp was hitting an issue due to a vararg constructor. We don't support varargs. They shouldn't make it into the dependency graph. We are already checking in many places. We were erroneously thinking a vararg constructor with no mandatory arguments is a default constructor. Runtime.InteropServices were crashing because we got a MulticastDelegate type into a codepath that expects a MulticastDelegate descendant. * Use hash/hmac one shots in NTLM (#70857) Co-authored-by: Stephen Toub <stoub@microsoft.com> * Unpin locals, attempt 2 (#70655) Contributes to #40553 * Replace a few instances of PtrToStructure with more efficient marshalling (#70866) * Fix for timer scheduling happening on the incorrect thread when wasm threading is enabled (#70863) * Add event to capture min/max threads (#70063) Event ThreadPoolMinMaxThreads added. Parameters are: ushort MinWorkerThreads ushort MaxWorkerThreads ushort MinIOCompletionThreads ushort MaxIOCompletionThreads ushort ClrInstanceID It is fired in the ThreadPool constructor and in the SetMinThreads/SetMaxThreads functions. * [wasm] Add support for per-project customization of helix work items (#70461) * [wasm] Add support for per-project customization of helix work items Currently, for sending tests to helix: 1. the project binaries are zipped, as part of the project build 2. then separate helix targets files build that adds helix items for those zip files. - for wasm, we test with multiple 'scenarios' - like v8, browser, and nodejs. - so, 3 helix work items are submitted per zip file - If a test project needs to have any customizations, for example, for testing crypto with a managed implementation, and subtlecrypto, which would require: - passing different arguments to xharness, in case of managed, and subtlecrypto - and this should be done only for the browser case - Currently, this would need this would need to be done in `sendtohelix-wasm.targets` special casing for the test project, and scenario. - We add support for importing `$(ProjectName).helix.targets`, and calling a special target in that to add helix items, as needed. - This targets file can be set in the test project like: ```xml <HelixTargetsFile Condition="'$(TargetOS)' == 'Browser'">wasm.helix.targets</HelixTargetsFile> ``` - it will get deployed next to the zip file, and picked up automatically ```xml <Project> <PropertyGroup> <_CryptoProjectName>System.Security.Cryptography.Tests</_CryptoProjectName> <System_Security_Cryptography_Tests_TargetName Condition="'$(Scenario))' == 'WasmTestOnBrowser'">System_Security_Cryptography_Tests_Targ et</System_Security_Cryptography_Tests_TargetName> </PropertyGroup> <Target Name="System_Security_Cryptography_Tests_Target"> <ItemGroup> <HelixWorkItem Include="$(Scenario)-managed-$(_CryptoProjectName)"> <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive> <Command>$(HelixCommand)</Command> <Timeout>$(_workItemTimeout)</Timeout> </HelixWorkItem> <HelixWorkItem Include="$(Scenario)-subtlecrypto-System.Security.Cryptography.Tests"> <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive> <Command>$(HelixCommand)</Command> <Timeout>$(_workItemTimeout)</Timeout> <PreCommands Condition="'$(OS)' == 'Windows_NT'">set "WasmXHarnessArgs=--web-server-use-cors"</PreCommands> <PreCommands Condition="'$(OS)' != 'Windows_NT'">export "WasmXHarnessArgs=--web-server-use-cors"</PreCommands> </HelixWorkItem> </ItemGroup> </Target> ``` - The targets file *must* have these: - a property named like `System_Security_Cryptography_Tests_TargetName`, for a test project named `System.Security.Cryptography.Tests` - if this property is not set, then the default behavior of adding work items will run - The target should add any items it needs to to `@(HelixWorkItem)`. - Examples of adding these can be seen in `sendtohelix*` project files - Remember that all these properties, and targets get imported into the msbuild *global* namespace, so make sure to use unique names to avoid conflicts with other test projects. Future work: this commit only enables it for wasm/library tests, but it should be easy to extract it out, but needs some testing. * [wasm] Helix: test with, and without subtle crypto * disable non-wasm builds * address review feedback * Address review feedback * Fix typo * Revert "disable non-wasm builds" This reverts commit 7ef99e81f82200189dd3f61eeaf00d6ca4ced6d4. * Update src/libraries/System.Security.Cryptography/tests/wasm.helix.targets Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> * Address review feedback * remove debug spew * Change the way helix extension targets are discovered. The new approach: To run a custom project specific target for adding/editing @(HelixWorkItem): - In the project add: `<HelixTargetsFile Condition="'$(TargetOS)' == 'Browser'">wasm.helix.targets</HelixTargetsFile>` - This file gets copied next to the test archive as $(MSBuildProjectName).helix.targets - In this `wasm.helix.targets` file, add to $(HelixExtensionTargets) to run your custom target ```xml <PropertyGroup Condition="'$(IsRunningLibraryTests)' == 'true' and '$(Scenario)' == 'WasmTestOnBrowser'"> <HelixExtensionTargets>$(HelixExtensionTargets);_AddHelixCrypoItems</HelixExtensionTargets> ``` - The extension target will be called after the default items are added to `@(HelixWorkItem)`. - Useful properties to condition on: $(Scenario), $(IsRunningLibraryTests) - And add to, change, or remove from @(HelixWorkItem) Example: ```xml <Target Name="_AddHelixCrypoItems"> <ItemGroup> <!-- remove the existing item --> <HelixWorkItem Remove="@(HelixWorkItem)" Condition="'%(OriginalFileName)' == '$(_CryptoProjectName)'" /> <!-- add two new ones - managed, and subtylecrypto --> <HelixWorkItem Include="$(WorkItemPrefix)managed-$(_CryptoProjectName)"> <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive> <Command>$(HelixCommand)</Command> <Timeout>$(_workItemTimeout)</Timeout> <OriginalFileName>$(_CryptoProjectName)</OriginalFileName> </HelixWorkItem> <HelixWorkItem Include="$(WorkItemPrefix)subtlecrypto-$(_CryptoProjectName)"> <PayloadArchive>$(TestArchiveTestsDir)$(_CryptoProjectName).zip</PayloadArchive> <Command>$(HelixCommand)</Command> <Timeout>$(_workItemTimeout)</Timeout> <OriginalFileName>$(_CryptoProjectName)</OriginalFileName> <PreCommands Condition="'$(OS)' == 'Windows_NT'">set "WasmXHarnessArgs=%WasmXHarnessArgs% --web-server-use-cop"</PreCommands> <PreCommands Condition="'$(OS)' != 'Windows_NT'">export "WasmXHarnessArgs=$WasmXHarnessArgs --web-server-use-cop"</PreCommands> </HelixWorkItem> <_CryptoHelixItem Include="@(HelixWorkItem)" Condition="$([System.String]::new('%(HelixWorkItem.Identity)').EndsWith('-$(_CryptoProjectName)'))" /> </ItemGroup> <Error Text="Something went wrong. Expected to have only two work items for $(_CryptoProjectName). But got @(_CryptoHelixItem)" Condition="@(_CryptoHelixItem->Count()) != 2" /> </Target> ``` * cleanup * Move WBT specific stuff into the target too. This will make it simpler to move it off into a targets file later * fix build * fix libtests * fix wbt * [wasm] Bump helix timeout to 90mins for debugger tests on windows Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> * Fix bug in Tar preventing extraction of hardlinks or entries starting with `.\` (#70853) * Add PlatformDetection.SupportsHardLinkCreation property. * Fix how paths are combined/joined and sanitized on extraction, to ensure paths with redundant segments get properly handled. * Add tests that verify archives with entries whose paths start with .\, including the root folder itself. * Re-enable the hardlink test, condition it to not run if platform does not support extraction of hardlinks. * Remove unnecessary test - This same code is already being tested by TarReader_ExtractToFile_Tests.ExtractEntriesWithSlashDotPrefix * Reuse test code that retrieves memory stream. * Bump test data package version * Add missing typeof(PlatformDetection) in ConditionalFact Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com> * Remove #define Sleep (#70868) * Remove #define Sleep * Fix ICorDebugFunction2::GetVersionNumber for arm32. (#69901) * Replace the remaining uses of Marshal.PtrToStructure in core networking (#70900) * Rename ICMP interop to match Windows SDK names * Add support for delegate GDV and method-based vtable GDV (#68703) Add support for instrumenting delegate calls and vtable calls into method handle histograms. Use these histograms to do GDV for delegate calls and also support method-based GDV for vtable calls. For instrumentation we now support class probes at interface call sites, method probes at delegate call sites and both class probes and method probes at vtable call sites. For vtable calls, when turned on, instrumentation produces both histograms as PGO data so that the JIT can later make the choice about what is the best form of guard to use at that site. For guarding, there are some things to take into account. Delegate calls currently (practically) always point to precode, so this PR is just guarding on getFunctionFixedEntryPoint which returns the precode address, and this is generally quite cheap (same cost as class-based GDV). That's the case for delegates pointing to instance methods anyway, this PR does not support static methods yet -- those will be more expensive. For vtable calls the runtime will backpatch the slots when tiering, so the JIT guards the address retrieved from the vtable against an indirection of the slot, which is slightly more expensive than a class-based guard. Currently the instrumentation is enabled conditionally with COMPlus_JitDelegateProfiling=1 (for delegates) and COMPlus_JitVTableProfiling=1 (for vtable calls). Currently delegate profiling is turned on by default while vtable profiling is off by default. * Use ArgumentNullException.ThrowIfNull in a few more places (#70897) * Append the function pointer type (#70923) The issue here was the recursion into PrettyPrintSigWorkerInternal that would reset the buffer. Now, we pass in a new buffer and append it when we return. * [main] Update dependencies from dotnet/runtime dotnet/icu dotnet/xharness dotnet/runtime-assets dotnet/emsdk dotnet/roslyn-analyzers (#70476) * Update dependencies from https://github.com/dotnet/runtime-assets build 20220608.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22308.1 * Update dependencies from https://github.com/dotnet/emsdk build 20220608.2 Microsoft.NET.Workload.Emscripten.Manifest-7.0.100 From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22308.2 * Update dependencies from https://github.com/dotnet/xharness build 20220610.1 Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 1.0.0-prerelease.22305.1 -> To Version 1.0.0-prerelease.22310.1 * Revert "Update dependencies from https://github.com/dotnet/emsdk build 20220608.2" This reverts commit bbb4e156ddbad8a2cb7b604246214272085b6622. * Update dependencies from https://github.com/dotnet/icu build 20220609.1 Microsoft.NETCore.Runtime.ICU.Transport From Version 7.0.0-preview.6.22306.1 -> To Version 7.0.0-preview.6.22309.1 * Update dependencies from https://github.com/dotnet/emsdk build 20220608.2 Microsoft.NET.Workload.Emscripten.Manifest-7.0.100 From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22308.2 * Update dependencies from https://github.com/dotnet/runtime-assets build 20220610.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22310.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20220610.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 7.0.0-preview1.22302.1 -> To Version 7.0.0-preview1.22310.1 * Update dependencies from https://github.com/dotnet/runtime build 20220612.5 Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json From Version 7.0.0-preview.6.22305.4 -> To Version 7.0.0-preview.6.22312.5 * Update dependencies from https://github.com/dotnet/icu build 20220613.1 Microsoft.NETCore.Runtime.ICU.Transport From Version 7.0.0-preview.6.22306.1 -> To Version 7.0.0-preview.6.22313.1 * Update dependencies from https://github.com/dotnet/xharness build 20220613.1 Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 1.0.0-prerelease.22310.1 -> To Version 1.0.0-prerelease.22313.1 * Update dependencies from https://github.com/dotnet/runtime-assets build 20220613.1 Microsoft.DotNet.CilStrip.Sources , System.ComponentModel.TypeConverter.TestData , System.Drawing.Common.TestData , System.Formats.Tar.TestData , System.IO.Compression.TestData , System.IO.Packaging.TestData , System.Net.TestData , System.Private.Runtime.UnicodeData , System.Runtime.Numerics.TestData , System.Runtime.TimeZoneData , System.Security.Cryptography.X509Certificates.TestData , System.Text.RegularExpressions.TestData , System.Windows.Extensions.TestData From Version 7.0.0-beta.22281.1 -> To Version 7.0.0-beta.22313.1 * Update dependencies from https://github.com/dotnet/emsdk build 20220613.1 Microsoft.NET.Workload.Emscripten.Manifest-7.0.100 From Version 7.0.0-preview.6.22281.1 -> To Version 7.0.0-preview.6.22313.1 * [wasm] Wasm.Build.Tests: Disable strict version checks for emcc Due to the way we have to update `dotnet/emsdk`, and get the update PRs in `runtime`, the emsdk version can be mismatched. For example, if `dotnet/emsdk` has already updated to `3.1.12`, but `dotnet/runtime` is still on `3.1.7`. This is an expected scenario while working on updating to a newer emscripten. The version mismatch will still show up, but as a warning now. * Update dependencies from https://github.com/dotnet/xharness build 20220614.1 Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 1.0.0-prerelease.22310.1 -> To Version 1.0.0-prerelease.22314.1 * [wasm] Wasm.Build.Tests: Update Skiasharp reference The skiasharp dependent tests fail with: `error : undefined symbol: _ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv`. Update the reference to the latest package which added a binary compiled for `3.1.7`. * [wasm] Workaround a test failure in WBT Currently, there is a mismatch between emsdk versions with the workload emscripten packs using `3.1.12`, and the runtime being built with `3.1.7`. And that is causing `Wasm.Build.Tests.NativeLibraryTests.ProjectUsingSkiaSharp` to fail with: ``` EXEC : error : undefined symbol: _ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv (referenced by top-level compiled C/C++ code) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] EXEC : warning : Link with `-sLLD_REPORT_UNDEFINED` to get more information on undefined symbols [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] EXEC : warning : To disable errors for undefined symbols use `-sERROR_ON_UNDEFINED_SYMBOLS=0` [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] EXEC : warning : __ZNKSt3__220__vector_base_commonILb1EE20__throw_length_errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] EXEC : error : undefined symbol: _ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv (referenced by top-level compiled C/C++ code) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] EXEC : warning : __ZNKSt3__221__basic_string_commonILb1EE20__throw_length_errorEv may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] EXEC : error : Aborting compilation due to previous errors [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] emcc : error : '/datadisks/disk1/work/B1420981/w/ACC90933/e/dotnet-workload/packs/Microsoft.NET.Runtime.Emscripten.3.1.12.Node.linux-x64/7.0.0-preview.6.22313.1/tools/bin/node /datadisks/disk1/work/B1420981/w/ACC90933/e/dotnet-workload/packs/Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.linux-x64/7.0.0-preview.6.22313.1/tools/emscripten/src/compiler.js /datadisks/disk1/work/B1420981/t/tmp44tn7y2d.json' failed (returned 1) [/datadisks/disk1/work/B1420981/w/ACC90933/e/blz_nativeref_aot_Debug/blz_nativeref_aot_Debug.csproj] ``` This commit adds a temporary workaround to ignore the undefined symbols for this specific test. And this should be removed when runtime is updated to `3.1.12` . Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com> Co-authored-by: Larry Ewing <lewing@microsoft.com> Co-authored-by: Ankit Jain <radical@gmail.com> * Harden for null byrefs (#70317) * Remove enum_flag_Unrestored usage in boxing stubs. * Add AND instruction (21h) to x86 decoder. * Update mono for null ref in interpreter paths. * Disable test on llvmfullaot and wasm * Handle null destination for intrinsics. * Use u8 in a few more places (#70894) * Use u8 in a few more places * A few more u8s * Enable lib tests that used to fail with GC issues (#70831) * enable lib tests that used to fail with GC issues * excluding linq parallel test since that doesn't build * Threading.Thread tests have issues * Excluding new test failures * Remove some dead code / branches (#70146) * Remove some dead code / branches Some signal amidst the noise in an lgtm.com report. * Address PR feedback * superpmi.py: Add `-jitoption` for asmdiffs (#70939) The new `-jitoption` option passes the argument options to both baseline and diff compilers. This is a convenience option: there already is `-base_jit_option` and `-diff_jit_option` to specify passing options to either baseline or diff. The name of the option is the same as that used for `replay`. * EventLogException is missing the original win32 error code (#70629) * Enable IDE0071 (Simplify interpolation) (#70918) * Enable IDE0100 (Remove redundant equality) (#70896) * Enable IDE0065 (Misplaced using directive) (#70919) * Optimization for full range checks (#70145) (#70222) * Update C# compiler (#70947) Brings in support for required members * Allow ValueListBuilder to work with empty scratch spans (#70917) * Enable IDE0030 (Use coalesce expression) (#70948) * Do not reuse implicit byrefs for by-value args (#70955) * Do not reuse implicit byrefs for by-value args * Add a test * Enable `TYP_STRUCT` `LCL_VAR/LCL_FLD` call args on Windows x64 (#70777) * Fix forward sub * Enable folding in local morph * Morph: TYP_STRUCT LCL_FLD * Make SuperPMI more explicit about JIT in error messages (#70938) This makes it easier to figure out which JIT failed in asmdiffs scenarios. e.g., ``` [10:40:50] ERROR: Method 3673 of size 3107 failed to load and compile correctly by JIT2 (C:\gh\runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\clrjit_universal_arm64_x64.dll). [10:40:50] ERROR: Method 3673 of size 3107 failed to load and compile correctly by JIT1 (C:\gh\runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\clrjit_universal_arm64_x64.dll). ``` * Fix illumos-x64 build (#70956) * Disable W^X on macOS under Rosetta emulation (#70912) * Disable W^X on macOS under Rosetta emulation Apple has informed us that double mapping doesn't work properly on Rosetta emulation. This change disables W^X if Rosetta is detected. * Reflect PR feedback * Add support for randomized guard stack cookies (#70806) The compiler was generating GS cookies, but the cookie was always an ASCII encoding of "Hi, mom!". Make the cookie properly per-process randomized. The randomization algorithm is same as in the CoreCLR VM. Fixes #70071. * Fixes #64159 - JsonSerializerContext source generation fails with keyword identifiers (#66876) * Fixes #64159 - initial implementation * Tidy up, and add test for ignored reserved-keyword-named property * PR feedback - use same approach as logging generator * PR feedback * Update src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com> * PR feedback - rename ExactNameSpecifiedInSourceCode * PR feedback - use extracted (and renamed) local variable * Remove commented code * Added `IsVerbatimName` as extension method * Support fields with verbatim names (@) * Use alternative method for checking for verbatim names * Uses `SyntaxFacts` to determine if escaping is needed * Remove extension method * Modified source generator test to include a verbatim field * Minor typo Co-authored-by: Adeel Mujahid <3840695+am11@users.noreply.github.com> * [main] Update dependencies from dotnet/arcade (#70662) Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Enable IDE0031 (Use null propagation) (#70965) * Fix nullable annotations on MailAddress.TryCreate (#70943) * [QUIC] Removes abstract providers and mock from S.N.Quic (#70421) * Removed abstract providers and mock from S.N.Quic * Removed provider and replaced with statics on Listener and Connection * Added assert * Stop wrapping SIMD nodes in OBJs (#70888) * Upstream coreclr and pal changes to support powerpc (ppc64le) architecture (#69105) * coreclr pal layer chanegs. * Updated the system arch for power architecture. * Fixed the failing PAL SXS exception_handling test case * replaced gint with gint64 to avoid overflow and this has fixed the segmentation fault issue. * coreclr pal layer chanegs. * Fixed the failing PAL SXS exception_handling test case * coreclr pal layer chanegs. * Updated the system arch for power architecture. * Fixed the failing PAL SXS exception_handling test case * replaced gint with gint64 to avoid overflow and this has fixed the segmentation fault issue. * coreclr pal layer chanegs. * Fixed the failing PAL SXS exception_handling test case * Removing intsafe.h file as main does not have this file now.(Already removed in commit 27195f670937c7e21ab68a806396f9d17c57231a) Co-authored-by: Alhad Deshpande <Alhad.Deshpande1@ibm.com> * Collections contain stale object IDs (#70924) It looks like the collections contain stale ObjectID values. These collection should be purged between GCs. * Minor refactoring for `UpgradeToRegexGeneratorAnalyzer` (#70767) * Fix arm64 funclet frame type 5 (#70922) * Fix arm64 funclet frame type 5 * Add code to stress arm64 funclet frame type 5 This can be forced using `COMPlus_JitSaveFpLrWithCalleeSavedRegisters=3`, or will be enabled under stress. * Add a regression test * Fix funclet frame type 5 alignment calculation * Fix a couple bugs; improve documentation 1. Improve the frame shape pictures, especially for arm64 funclet frames. Include the MonitorAcquired element and OSR pad. 2. Fix bug for `SP_to_PSP_slot_delta` for funclet frame type 4 for OSR: don't include osrPad. 3. Fix bug with funclet frame type 5 for `SP_to_FPLR_save_delta` using wrong aligned func size; would be incorrect if one and two SP adjustment full frame aligned sizes are different (e.g., if two SP adjustment required two alignment slots and one SP adjustment thus required none). * Fix default log color behavior when console is redirected (#70504) * JIT: Model string literal objects as invariant and non-GLOB_REF (#70986) * Model string literals as invariant/non GLOB_REF * String literals are never null * Add support for cross module inlining and cross module generic compilation to Crossgen2 (#68919) * Add support for cross module inlining and cross module generic compilation to Crossgen2 - Refactor Module into ModuleBase and Module - The goal is to have allow a subset version of Module which can only hold refs, this is to be used by the manifest module in an R2R image to allow for version resilient cross module references. - Update handling of ModuleBase so that its used everywhere that tokens are parsed from R2R - Remove ENCODE_MODULE_ID_FOR_STATICS and ENCODE_ACTIVE_DEPENDENCY - These were only used for NGEN, and conflict with easy impelmentation for the ModuleBase concept - Remove locking in ENCODE_STRING_HANDLE processing, and tweak comments. Comments applied to the removed ngen based code, and the lock was only necessary for the old ngen thing. - Adjust ComputeLoaderModuleWorker for locating loader module - Follow comment more accurately, to avoid putting every generic into its definition module. This will make R2R function lookup able to find compiled instantiations in some cases. This may be what we want long term, it may not. - Remove MemberRefToDesc map and replace with LookupMap like the other token types. We no longer make use of the hot table, so this is more efficient - Also reduces complexity of implementation of ModuleBase - Build fixup to describe a single method as a standalone blob of data - There are parallel implementations in Crossgen2 and in the runtime - They produce binary identical output - Basic R2RDump support for new fixup - Adjust module indices used within the R2R format to support a module index which refers to the R2R manifest metadata. This requires bumping the R2R version to 6.2 - Add a module index between the set of assembly refs in the index 0 module and the set of assembly refs in the R2R manifest metadata - Adjust compilation dependency rules to include a few critical AsyncStateMachineBox methods - Remove PEImage handling of native metadata which was duplicative - Do not enable any more devirtualization than was already in use, even in the cross module compilation scenario. In particular, do not enable devirtualization of methods where the decl method isn't within the version bubble, even if the decl method could be represented with a cross-module reference token. (This could be fixed, but is out of scope for this initial investigation) Make the compilation deterministic in this new model, even though we are generating new tokens on demand - Implement this by detecting when we need new tokens during a compile, and recompiling with new tokens when necessary - This may result in compiling the same code as much as twice Compile the right set of methods with cross module inlining enabled - Add support for compiling the called virtual methods on generic types - This catches the List<T> and Dictionary<TKey,TValue> scenarios - Add command line switches to enable/disable the new behavior - By default the new behavior is not enabled * Implement Vector128 version of System.Buffers.Text.Base64 DecodeFromUtf8 and EncodeToUtf8 (#70654) * Implement Vector128 version of System.Buffers.Text.Base64.DecodeFromUtf8 Rework the SS3 into a Vector128 version, and add Arm64 support. * SSE3 improvements * Remove superfluous bitwise And * Add comment to SimdShuffle * Inline SimdShuffle * Implement Vector128 version of System.Buffers.Text.Base64.EncodeToUtf8 * Ensure masking on SSE3 Change-Id: I319f94cfc51d0542ae4eb11a8d48b3eb8180553f CustomizedGitHooks: yes * Restore asserts and move zero inside the loop * Neater C# code Change-Id: I2cbe14f4228f8035e7d213b5b58815c4eee35563 CustomizedGitHooks: yes * Make SimdShuffle consistent across X64 and Arm64 * Better looking multiply * Use `gtEffectiveVal` for `GT_ADD` op1 in `optCreateAssertion` (#70228) * Initial work for comma hoisting in cse * Formatting * Adding more ops to comma hoisting * Set regnum * Update optcse.cpp * Using effectiveval instead * Convert fallback path of GetCommandLineArgs to managed (#70608) * P/Invoke definition * Use P/Invoke in managed code * Update managed call site * Add test using private reflection * Native command line should be superset of managed Co-authored-by: Jan Kotas <jkotas@microsoft.com> * [wasm] Enabled WasmTestOnBrowser run on Windows for Browser. (#70890) * Enabled tests - no timeout with new ems. Keeping disabled tests failing from other reasons. * Added @radical's suggestion. * Test CI- enable test that are throwing in Debug. * [wasm][debugger] Fix side effect on Firefox of getting bytes from loaded_files using debugger protocol (#70990) * Fix 70983 * fix typo * Fix compilation * Add AddSystemd() and AddWindowsService() IServiceCollection extension methods (#68580) * Add AddSystemd() IServiceCollection extension method * Add AddWindowsService() IServiceCollection extension method * Don't default to CWD if in C:\Windows\system32 - instead, when CWD is C:\Windows\system32 Hosting will use AppContext.BaseDirectory. This way Windows apps and services that are launched will work by default. HostApplicationBuilder.ContentRootPath can't be changed after construction, so setting it to a workable default for Windows apps. Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> Co-authored-by: Martin Costello <martin@martincostello.com> * Use RemoteExecutor * Update src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostTests.cs * Skip test on Windows nano server * Respond to PR feedback Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> Co-authored-by: Martin Costello <martin@martincostello.com> * [main] Update dependencies from dotnet/runtime dotnet/xharness dotnet/icu dotnet/emsdk (#70991) * Update dependencies from https://github.com/dotnet/runtime build 20220619.5 Microsoft.NET.Sdk.IL , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.DotNetHost , Microsoft.NETCore.DotNetHostPolicy , Microsoft.NETCore.ILAsm , runtime.native.System.IO.Ports , System.Text.Json From Version 7.0.0-preview.6.22312.5 -> To Version 7.0.0-preview.6.22319.5 * Update dependencies from https://github.com/dotnet/xharness build 20220620.1 Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 1.0.0-prerelease.22314.1 -> To Version 1.0.0-prerelease.22320.1 * Update dependencies from https://github.com/dotnet/icu build 20220620.2 Microsoft.NETCore.Runtime.ICU.Transport From Version 7.0.0-preview.6.22313.1 -> To Version 7.0.0-preview.6.22320.2 * Update dependencies from https://github.com/dotnet/emsdk build 20220620.1 Microsoft.NET.Workload.Emscripten.Manifest-7.0.100 From Version 7.0.0-preview.6.22313.1 -> To Version 7.0.0-preview.6.22320.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Windows/Arm64: Use 8.1 atomic instructions if they are available (#70921) * Use Fast compareexchange, acquire/release * working windows version * remove printf * some more #ifdef * fix some #ifdef * optimize EnterObjMonitorHelperSpin * Remove FastInterlockedCompareExchange64 for now * Add ZipArchiveEntry.IsEncrypted for password-protection detection (#70036) * Add ZipArchiveEntry.IsEncrypted for password-protection detection * Apply suggestions from code review Co-authored-by: David Cantú <dacantu@microsoft.com> * Run GenerateReferenceAssemblySource for System.IO.Compression * Revert WriteAsync default parameter value removal * Update DeflateStream.WriteAsync to include the default param value * Revert unrelated change from GenerateReferenceAssemblySource * Revert unrelated change after syncing with GenerateReferenceAssemblySource Co-authored-by: David Cantú <dacantu@microsoft.com> * Exposing IRootFunctions.Hypot and IRootFunctions.Root (#71010) * Exposing IRootFunctions.Hypot and IRootFunctions.Root * Adding tests for IRootFunctions.Hypot and IRootFunctions.Root * Add TarEntry conversion constructors (#70325) * ref: Conversion constructors * src: Conversion constructors * tests: Conversion constructors * [wasm] Wasm.Build.Tests: disable tests failing on CI (#71020) * [wasm] Wasm.Build.Tests: disable tests failing on CI .. due to being oomkill'ed. * [wasm] Don't fail the job when firefox tests fail, as they are known to be unstable * Remove allocation in ImmutableArray Builder Sort (#70850) * Remove allocation in ImmutableArray Builder Sort `ImmutableArray<T>.Builder.Sort(Comparison<T> comparison)` allocates a new instance of `Comparer<T>` using `comparison`. Then `ArraySort` allocates a new delegate from `comparer.Compare`. Both allocations can be eliminated by calling `Array.Sort<T>(T[] array, Comparison<T> comparison)` directly. * Sort only valid range of array * Use MemoryExtensions.Sort where available. * Update src/libraries/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Builder.cs Fix spelling mistake. Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com> Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com> * [Android] Make sure AdditionalTimeZoneChecks trait is added to xunit-excludes (#70974) The trait is supposed to be included in System.Runtime tests by default, but wasn't because the _withoutCategories property was in tests.props. As a result, the property was resolved before the .csproj properties. This fix moves the property definition to tests.targets. Fixes #70482 * Use LastIndexOfAny in GetFileName_Windows (#71032) * Avoid unnecessary allocations in SanitizeEntryFilePath (#71034) * Fix Ordinal Ignore Case string compare (#71022) * Move allocation of command line argument array to C# (#71021) Also, avoid redundant allocation of managed string for each command line argument. * Add markdown readme for System.Reflection.MetadataLoadContext (#70610) * Create README.md * set red zone size 512 for powerpc64. (#70885) * Ensure consistent reflectability for generic methods (#70977) If we have a method body for `SomeMethod<Foo>` and `SomeMethod<T>` was decided to be reflection-visible, ensure `SomeMethod<Foo>` is also reflection-visible. * Implement NegotiateAuthentication API (#70720) * WIP: Add implementation of NegotiateAuthentication Switch System.Net.Http to use NegotiateAuthentication Fix IsCompleted in managed NTLM implementation * WIP: Update error code mapping * Spanify input of GetOutgoingBlob * Update comments * Move NegotiateStreamPal.Encrypt/Decrypt to shared sources. Unix implementation already had them and they get trimmed anyway. * Revert accidental change * Build fixes. * Fix error handling condition * Update error mapping based on HttpListener usage. * WIP: HttpListener test * Move workaround from HttpListener to low-level SSPI code * Fix build * Clean up * Revert "WIP: HttpListener test" This…
Configuration menu - View commit details
-
Copy full SHA for 5776aad - Browse repository at this point
Copy the full SHA 5776aadView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3cc1261 - Browse repository at this point
Copy the full SHA 3cc1261View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4378d0b - Browse repository at this point
Copy the full SHA 4378d0bView commit details
Commits on Jun 30, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 3e8b4ba - Browse repository at this point
Copy the full SHA 3e8b4baView commit details -
Configuration menu - View commit details
-
Copy full SHA for a9321a8 - Browse repository at this point
Copy the full SHA a9321a8View commit details
Commits on Jul 4, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 2dbd741 - Browse repository at this point
Copy the full SHA 2dbd741View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3a1dc2e - Browse repository at this point
Copy the full SHA 3a1dc2eView commit details
Commits on Jul 11, 2022
-
Configuration menu - View commit details
-
Copy full SHA for f0697b5 - Browse repository at this point
Copy the full SHA f0697b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 231c838 - Browse repository at this point
Copy the full SHA 231c838View commit details -
Move population into private helper method
See comment by @stephentoub
Configuration menu - View commit details
-
Copy full SHA for c63501b - Browse repository at this point
Copy the full SHA c63501bView commit details -
Configuration menu - View commit details
-
Copy full SHA for f865a87 - Browse repository at this point
Copy the full SHA f865a87View commit details -
Co-Authored-By: David Cantú <jozkyy@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 880011b - Browse repository at this point
Copy the full SHA 880011bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 312b199 - Browse repository at this point
Copy the full SHA 312b199View commit details
Commits on Jul 12, 2022
-
Address documentation feedback
Co-Authored-By: David Cantú <jozkyy@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 0d405b4 - Browse repository at this point
Copy the full SHA 0d405b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7cfc7e1 - Browse repository at this point
Copy the full SHA 7cfc7e1View commit details