1. 09 8月, 2022 19 次提交
    • P
      More precise writebarrier for regions (#67389) · 063f7b76
      Peter Sollich 提交于
      This introduces a lookup table for regions where we can find the current generation, the planned generation and a couple flags efficiently, i.e. by simple indexing into table.
      
      The table has byte-sized elements where the low 2 bits represent the current generation and the high 2 bits represent the planned generation. The 4 bits in between are available for flags, 2 are used so far, one to show that a region was swept in the plan phase, and one to show that a region was demoted.
      
      The table is used in the mark phase, in the mark_through_cards_helper (which is also called in the relocate_phase), and in the write barriers (for now only the most frequently used ones, Array.Copy has its own way of setting cards that I haven't fixed).
      
      I have changed the write barrier to only set single bits for the case where a pointer to younger generation is stored into an object in an older generation. This costs an interlocked operation in the case the bit is not already set. In the test cases we looked at this is more than compensated by lower cost in card marking. For cases where the cost of the interlocked instruction is too high, an escape hatch has been provided the form of the COMPLUS_GCWriteBarrier setting which can be used to select another flavor of write barrier - either a more precise write barrier for regions, or an imprecise write barrier. Both set whole bytes and thus need no interlocked operations.
      
      The write barrier uses a global ephemeral range to decide quickly whether a stored pointer can be in an ephemeral generation at all. For now, this global ephemeral range is simply set to the address range of the whole heap, to avoid having to update the write barrier on the fly. A slightly more sophisticated approach that takes into account low gen 2 regions is present in the code, but disabled for now.
      063f7b76
    • V
      Avoid additional Pipes msbuild invocation and clean-up project (#73588) · ffd79485
      Viktor Hofer 提交于
      * Avoid additional Pipes invocation and clean-up project
      
      * Update System.IO.Pipes.AccessControl.csproj
      ffd79485
    • M
      Delete some .NET Nativisms (#73553) · f58a7902
      Michal Strehovský 提交于
      * Replace MissingInteropDataException with NotSupportedException
      * Replace MissingRuntimeArtifactException with MissingMetadataException (it was already used as a MME in some spots anyway). I'll try to get rid of MME later.
      * Change the messages to refer to static analysis as the fix, not RD.XML.
      f58a7902
    • I
      [wasm][debugger] Detect `new` keyword in derived members on GetProperties (#73230) · 3c389db9
      Ilona Tomkowicz 提交于
      * Fix of VHO for most test cases.
      
      * Cleanup.
      
      * New testcases with auto-props.
      
      * Adjusted ProtectionLvlTest to new changes.
      3c389db9
    • M
      Delete the "Generating compatible code" message (#73554) · 262f4c2a
      Michal Strehovský 提交于
      We no longer root all assemblies by default and we don't need to advertise the size switches to much. Also, we need to establish what switches we actually want to support (document on docs.microsoft.com) for real.
      262f4c2a
    • H
      Fix ASAN mismatches in DAC (#73549) · b8ffae56
      Hyungju Lee 提交于
      b8ffae56
    • A
    • D
      Refactor input bubble checks to work in non-composite scenarios (#73350) · 760babbd
      David Wrighton 提交于
      * Refactor input bubble checks to work in non-composite scenarios
      - Input bubble checks for making sure that the input bubble is valid are not currently processed for non-composite scenarios
      - Refactor them so that they are not n^2 in cost, and are handled for both composite and non-composite scenarios
      760babbd
    • K
      8a26f96b
    • T
      Unable to bind Dictionary with key type "Enum" when key string case is different (#71926) · 8db080e3
      Tamás Turnyánszki 提交于
      Use ignoreCase=true when parsing enum values.
      
      Fix #71185
      8db080e3
    • A
      `runtime-staging`: Enable failed tests on stable jobs to fail the job (#73400) · 11f162ae
      Ankit Jain 提交于
      * xplat-setup.yml: Add support for setting `shouldContinueOnError` to
      
      .. `false`.
      
      Currently, xplat-setup.yml passes on `shouldContinueOnError` to the
      template with `true` if the parameter was `true`, else it sets the value
      based on whether this is for runtime-staging, on a PR.
      
      Which essentially means that runtime-staging defaults to
      `shouldContinueOnError: true` for PRs, or we can set it explcitly to
      `true` which would affect the rolling builds.
      
      But this does not allow making a runtime-staging job *fail* when *tests
      fail*. To support that this change adds a check for a special value
      `forceFalse`, which causes the param to explicitly set to `false`. Thus
      allowing `runtime-staging` builds to be marked as such.
      
      * [wasm] Add more paths to trigger running tests on CI
      
      * fix comment
      11f162ae
    • N
      Revert "Enable inlining P/Invokes into try blocks with no catch or filter... · 2a142808
      Noah Falk 提交于
      Revert "Enable inlining P/Invokes into try blocks with no catch or filter clauses (#73032)" (#73551)
      
      This reverts commit 4c07f3db. We believe it is causing recent CI failures.
      See #73247
      2a142808
    • S
      [iOS] Enable skipped System.Threading tests (#73498) · 326af2c3
      Steve Pfister 提交于
      * [iOS] Enable skipped System.Threading tests
      
      Fixes https://github.com/dotnet/runtime/issues/51400
      
      * Redisable 60583 and remove added newline
      Co-authored-by: NSteve Pfister <steve.pfister@microsoft.com>
      Co-authored-by: Nmdh1418 <mitchhwang1418@gmail.com>
      326af2c3
    • T
    • P
      [wasm] fix IMPORTS and flat API in createDotnetRuntime callback parameter · b61c6f6f
      Pavel Savara 提交于
      - add flat APIs to createDotnetRuntime callback parameter
      - assign IMPORTS instance (#73565)
      b61c6f6f
    • A
      [wasm-ep] Use DOTNET_DiagnosticPorts to configure Diagnostic Server (#73370) · 89db9c05
      Aleksey Kliger (λgeek) 提交于
      * [wasm-ep] Use DOTNET_DiagnosticPorts to configure Diagnostic Server
      
      Parse it the same way that the C code does:
      
      ```
         <uri>[,<connect|listen>][,<suspend|nosuspend>]
      ```
      
      - uri should be a websocket uri
      - listen is not supported as it doesn't make sense with a WebSocket
      - connect is the default if omitted
      - suspend is the default if omitted
      
      ---
      
      Additionally, move `mono_wasm_diagnostics_init` to later in the
      startup flow.  This gives Blazor a chance to set
      DOTNET_DiagnosticPorts from their `onRuntimeInitialized` callback.
      
      Fixes https://github.com/dotnet/runtime/issues/73011
      
      * Initialize diagnostic server in different places for Blazor and non-Blazor
      
      It has to be after environment variables are set, but before
      mono_wasm_load_runtime is called.
      
      There is no good place that's common to both startup paths. Try it on
      both.  Use a flag to make diagnostics initialization run at most
      once
      
      * update browser-eventpipe sample to use DOTNET_DiagnosticPorts
      
      * remove unused imports
      89db9c05
    • D
      Fix issue where calculation of valuetypeshapecharacteristic on Arm64 does not... · a688d43a
      David Wrighton 提交于
      Fix issue where calculation of valuetypeshapecharacteristic on Arm64 does not match native runtime (#73406)
      
      - We didn't check to make sure that the type of the Vector<T> was a primitive numeric as the runtime does
      - Re-enable test
      
      Fixes #60036
      a688d43a
    • B
      Do not check object references for equality after hot reload (#73009) · 7e0f0b75
      Buyaa Namnan 提交于
      * Compare type instead of module, check MetadataUpdater.IsSupported in HashCode
      
      * Perf tweaks for Equals and GetHashCode
      
      - No need to use GetHashCodeOfPtr when we are wrapping the hashcode using HashCode.Combine that takes care of the randomization
      - Use underlying type handle for type hashcodes. It is faster than the default object hashcode.
      - Delete special casing for MetadataUpdater.IsSupported from RuntimeMethodInfo.GetHashCode. It is actually a de-optimization for RuntimeMethodInfo with the two changes above, and about neutral for the rest.
      - Avoid virtual call for ReflectedType comparison
      - Restore comment for RuntimeMethodInfo
      Co-authored-by: NJan Kotas <jkotas@microsoft.com>
      7e0f0b75
    • J
      Disable GetGCMemoryInfo on arm (#73477) · 9865cc7a
      Juan Hoyos 提交于
      9865cc7a
  2. 08 8月, 2022 16 次提交
  3. 07 8月, 2022 4 次提交
  4. 06 8月, 2022 1 次提交