Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dotnet/runtime
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e3a80f31d0e
Choose a base ref
...
head repository: dotnet/runtime
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3182dfb1e7a
Choose a head ref
  • 16 commits
  • 1,769 files changed
  • 18 contributors

Commits on Apr 14, 2023

  1. Switch mono to use cmake-detected objcopy (#83903)

    We use `configuretools.cmake` in `coreclr`, native `libs` (for both runtimes), `corehost` and `tests` to locate tools most suitable for the selected toolchain. However for `mono`,  we manually specify a hardcoded list of `objcopy` names which require extra step in _each_ cross Dockerfile (e.g. [when distro package provides cross arch binutils](https://github.com/dotnet/dotnet-buildtools-prereqs-docker/blob/b5ebe26fee6823afc3154d3da8e8540321496ca4/src/ubuntu/22.04/cross/arm64/Dockerfile#L4-L7) and [when distro package doesn't provide one](https://github.com/dotnet/dotnet-buildtools-prereqs-docker/blob/b5ebe26fee6823afc3154d3da8e8540321496ca4/src/ubuntu/22.04/cross/ppc64le-alpine/Dockerfile#L3-L20)). This manual work is redundant and adds complexity for someone working on porting runtime to a new platform or creating a docker image with runtime build prereqs.
    
    This PR brings mono to the same plan as rest of the native subsets by re-using `configuretools.cmake` in mono for `objcopy` detection and `install_with_stripped_symbols` function out of `functions.cmake`, which takes care of stripping the binaries without dealing with platform differences at call-sites.
    
    ps - moving mono to fully utilize `configurecompiler.cmake` as rest of the native subsets is ultimate goal, but it is non-trivial to accomplish in a single PR.
    am11 committed Apr 14, 2023
    1 Configuration menu
    Copy the full SHA
    330d46a View commit details
    Browse the repository at this point in the history
  2. [mono][aot] Enable deduplication of runtime invoke wrappers (#84304)

    * Add DedupState enum and remove dedup flags
    kotlarmilos committed Apr 14, 2023
    1 Configuration menu
    Copy the full SHA
    0a204f5 View commit details
    Browse the repository at this point in the history
  3. Initial work to enable native events in EventPipe (#84318)

    * Initial work to enable native events in EventPipe
    
    * Linux build break fix
    
    * Match EtwProvider native runtime events with EventPipe
    
    * Fix gcc build failures
    
    * missed the diabled-lib API change
    
    * Fix test
    LakshanF committed Apr 14, 2023
    1 Configuration menu
    Copy the full SHA
    2d833f4 View commit details
    Browse the repository at this point in the history
  4. 1 Configuration menu
    Copy the full SHA
    3d97f41 View commit details
    Browse the repository at this point in the history
  5. Implement IUtf8SpanFormattable on all the numeric types in corelib (#…

    …84587)
    
    * Implement IUtf8SpanFormattable on all the numeric types in corelib
    
    Augments SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Int128, UInt128, Half, Single, Double, NFloat, and Decimal.
    
    Also fixes corelib TODOs around using IUtf8SpanFormattable.
    
    And removes some duplicate code from Utf8Formatter.
    
    There is still more consolidation to be done between FormattingHelpers and Number.Formatting.
    
    * Address regressions from previous formatting changes
    
    - Use an internal interface implemented by char and byte to have dedicated CastFrom methods that are always inlineable due to very small size.
    - Use pointers in some core formatting routines to avoid needing bulky IL for manipulating refs with spans, making various members more inlineable.
    - Avoid Encoding.UTF8.GetBytes in various code paths by caching more UTF8 sequences on DateTimeFormatInfo and NumberFormatInfo
    - Change FormatCustomizedTimeZone to special-case 2 vs 3+ tokens in order to avoid extra AppendSpan calls
    - Fix growth logic in ValueListBuilder to not forcibly grow more than is needed
    - Inline ValueListBuilder.AppendSpan and remove some bounds checks (at least on 64-bit)
    - Change FormatDigits to special-case lengths of 1/2/4 and to use existing formatting routines rather than a custom one
    - Remove the FormatDigits wrapper overload and just have all calls go to the main workhorse method.
    - Remove the use of "..."u8 in R/O formatting that leads to needing to use additional span-based helpers.  The minimal gain on coreclr isn't worth the extra complication
    - Changed some switches to include half the cases based on lowercasing the ASCII input char
    - Moved Date/TimeOnly charsWritten into Try method to be closer to the source of truth rather than having the value far aware (this isn't for perf and could possibly even be a microregression, so I included it here to ensure it's not measurable).
    
    * Remove mono ifdef in WriteTwo/FourDigits
    stephentoub committed Apr 14, 2023
    1 Configuration menu
    Copy the full SHA
    ed09ae5 View commit details
    Browse the repository at this point in the history
  6. [RISC-V] coreclr-vm and other directories in coreclr (#82381)

    * [RISC-V] coreclr-vm and other directories in coreclr
    
    - Successfully cross-build for RISC-V.
    - Run A simple application "helloworld"
    - Fail a test in clr.paltest
    
    * Remove commented codes
    
    * Fix mistakes
    
    * Update by reviews
    
    * [VM] Fix test
    
    * [VM] Update
    
    Updated by review in #82380
    
    * [VM] Update assert and todo comments
    
    * [VM] Updated
    
    * [VM] Fix a bug
    
    * [VM] Add getRISCV64PassStructInRegisterFlags
    
    * Revert "[VM] Add getRISCV64PassStructInRegisterFlags"
    
    This reverts commit cd1ea45.
    
    * [VM] Restore getLoongArch64PassStructInRegisterFlags
    
    In coreclr-jit patch, it makes getRISCV64PassStructInRegisterFlags for
    RISCV64. So restore getLoongArch64PassStructInRegisterFlags
    
    * [VM] FIX TEST ERRORS
    
    * [VM] Update Stubs
    
    * Fix exceptionhandling, stack smashing detected
    
    * [VM] Fix vm/riscv64
    
    ---------
    
    Co-authored-by: Timur Mustafin <t.mustafin@partner.samsung.com>
    clamp03 and t-mustafin committed Apr 14, 2023
    1 Configuration menu
    Copy the full SHA
    f66c469 View commit details
    Browse the repository at this point in the history
  7. 1 Configuration menu
    Copy the full SHA
    932efb5 View commit details
    Browse the repository at this point in the history
  8. 1 Configuration menu
    Copy the full SHA
    1079a04 View commit details
    Browse the repository at this point in the history
  9. Fix double writes for M.Extensions xml docs (#84839)

    We don't need the binplace item anymore as the intellisense.targets file
    already takes care of copying / setting docs xml files.
    
    Also stop generating an xml file for shim assemblies under
    src/libraries/shims as such don't contain any source code.
    
    Fixes #84762
    ViktorHofer committed Apr 14, 2023
    Configuration menu
    Copy the full SHA
    a0e23f4 View commit details
    Browse the repository at this point in the history
  10. [mono][jit] Adding support for Vector128::ExtractMostSignificantBits …

    …intrinsic on ARM64 with miniJIT (#84345)
    
    Contributes to #76025
    ivanpovazan committed Apr 14, 2023
    Configuration menu
    Copy the full SHA
    ad994e5 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    9c02b25 View commit details
    Browse the repository at this point in the history
  12. Convert jit\jit64 to merged test groups (#83151)

    This is done with a collection of automated ILTransform changes with [this version of the tool](markples/utils@cefdaff) and manual fixes. Below is an order of steps. This also restores b16102 in jit\Regression as a completely empty test, which was lost in automatic changes during that conversion.
    
    - Standardizing ilprojs suffixes
    - Removing test entrypoint args
    - Running ILTransform -p
    - Running ILTransform -n
    - Running ILTransform -m
    - Running ILTransform -a
    - Running ILTransform -prociso
    - Running ILTransform -collapse-main-sig
    - Running ILTransform -public
    - Running ILTransform -ilfact
    - Adding JIT/Directed merge tests wrapper
    - Removing il_do ilproj extensions
    - Balancing test groups
    - Removing invalid token $ from iltest entrypoint name
    - Patching merge wrapper generator code
    - Fixing incompatible accesibility after exposing test entrypoint
    - Fixing accesibility problems after wrapper generator updates
    - Updating issue.targets after renaming ilprojs
    - Ignoring on jit64/regress/vsw/373472/test_il linux wasm
    - Apply recent msbuild changes. Disable some analyzer warnings.
    - Fix xUnit1013 in pri1 tests
    - Restore b16102 as an empty-Main executable test
    - Extend IL project renaming to handle _il_do and _il_ro
    - Change 102754 to return 100 so exit code isn't necessary. Add comments to IL.
    - Unconditionally set CLRTestExpectedExitCode to allow its usage in tests in merged groups
    
    Co-authored-by: Mark Plesko <markples@microsoft.com>
    BrianBohe and markples committed Apr 14, 2023
    Configuration menu
    Copy the full SHA
    4f7375c View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    bed0ec0 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    d97b17b View commit details
    Browse the repository at this point in the history
  15. Opt-out of default target framework filtering in source-build infra (#…

    …84811)
    
    * Opt-out of default target framework filtering in source-build infra
    
    * Move the property to cover all scenarios
    NikolaMilosavljevic committed Apr 14, 2023
    Configuration menu
    Copy the full SHA
    87ba6ea View commit details
    Browse the repository at this point in the history
  16. JIT: fix exit edge likelihood computation for capped loops (#84817)

    The initial version of this only really worked for very simple cases.
    Generalize to handle loops with multiple exits better.
    
    The rough idea is to compute how much additional profile flow needs
    to come out of the loop to match the capped probability, and then
    try and find one exit block where we can adjust likelhoods to cause
    exactly this amount of extra flow to leave the loop.
    
    Closes #84789.
    AndyAyersMS committed Apr 14, 2023
    Configuration menu
    Copy the full SHA
    3182dfb View commit details
    Browse the repository at this point in the history
Loading