Skip to content

NativeAOT-LLVM: WIP Merge apr26 - #3261

Draft
yowl wants to merge 2828 commits into
dotnet:feature/NativeAOT-LLVMfrom
yowl:merge-apr26
Draft

NativeAOT-LLVM: WIP Merge apr26#3261
yowl wants to merge 2828 commits into
dotnet:feature/NativeAOT-LLVMfrom
yowl:merge-apr26

Conversation

@yowl

@yowl yowl commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

Remove Microsoft.NET.Workload.Mono.Toolchain.*Manifest-*.nupkg from publishing.
Revert SDL swtich as it causes problems for LLVM (https://stackoverflow.com/questions/34892732/error-when-call-createphi-in-llvm)

MichalPetryka and others added 30 commits April 20, 2026 01:36
Makes the assert use the full message used by the exception.
AsyncHelpers_ResumeInterpreterContinuationWorker receives an interior
pointer that was not reported to the GC. It seems like this issue was
happening only in InterpMode=1. It is likely that in full interpreter
mode, the continuation object was conservatively pinned by chance from
the interpreter stack.

Fixes random crashes in objects-captured runtime test.
…im targets (#126380)

`PublishTrimmed` crashes with `NotSupportedException: TypeDefinition
cannot be resolved from 'Mono.Cecil.ArrayType'` when a `TypeMap`
attribute specifies an array type as its trim target (e.g.,
`typeof(Foo[])`).

Root cause (ILLink): `LinkContext.Resolve` throws for any
`TypeSpecification` that isn't a `GenericInstanceType`. Array types,
pointer types, and byref types all fall into this category.

Root cause (ILCompiler):
`ExternalTypeMapNode.GetConditionalStaticDependencies` used
`context.NecessaryTypeSymbol(trimmingTargetType)` as the condition node.
When the trim target is `Foo[]`, the TypeMap entry should be present
whenever `Foo` (the element type) is reachable — but
`NecessaryTypeSymbol(Foo[])` is a different node from
`NecessaryTypeSymbol(Foo)` and is only transitively marked when `Foo[]`
itself is used. If code only uses `Foo` (e.g., `new Foo()`), the
condition never fires and the entry is silently dropped.

# Description

**ILLink (`TypeMapHandler.cs`):**
- **`TypeMapHandler.AddExternalTypeMapEntry`**: Strip non-resolvable
`TypeSpecification` wrappers (array, pointer, byref, etc.) from the trim
target before passing to `RecordTypeMapEntry`, using the element type
instead.
- **`TypeMapHandler.AddProxyTypeMapEntry`**: Same fix applied
symmetrically to the source type parameter. Corrected the comment to
accurately state that `TypeMapAssociationAttribute` has two constructor
type arguments (source and proxy).
- **`TypeMapHandler.MarkTypeMapAttribute`**: Same
`TypeSpecification`-stripping fix applied before calling
`_context.Resolve(targetType)`.
- **`TypeMapHandler.UnwrapToResolvableType`**: The three previously
duplicate stripping loops have been extracted into a single `private
static TypeReference UnwrapToResolvableType(TypeReference)` helper, so
future fixes only need to be made in one place. All call sites use
idiomatic C# property pattern matching (`TypeSpecification {
ElementType: var elementType }`) to avoid explicit casts.

**ILCompiler (`ExternalTypeMapNode.cs`):**
- **`ExternalTypeMapNode.GetEffectiveTrimTargetType`**: New private
static helper that strips `ParameterizedType` wrappers (arrays,
pointers, byrefs) to reach the element type. `InstantiatedType`
(generics like `List<T>`) does not extend `ParameterizedType` and is
correctly left alone.
- **`ExternalTypeMapNode.GetConditionalStaticDependencies`** and
**`GetMarkedEntries`**: Updated to strip the trim target type via
`GetEffectiveTrimTargetType` and use `NecessaryTypeSymbol` on the
resulting element type. This matches ILLink's stripping behavior: the
TypeMap entry is included whenever the element type is reachable (via
`new Foo()`, `is Foo` casts, array construction `new Foo[n]`, etc.),
regardless of whether `Foo[]` itself is explicitly used.

```csharp
// Before fix: crashes (ILLink) or silently drops entry (ILCompiler)
[assembly: TypeMap<TestTypeMap>("Key", typeof(SomeTarget), typeof(Foo[]))]

// After fix (ILLink): strips Foo[] → Foo, uses Foo as the trim dependency
// After fix (ILCompiler): strips Foo[] → Foo, uses NecessaryTypeSymbol(Foo) as the condition
// The TypeMap entry is included iff Foo (the element type) is trimmer-reachable
```

Both fixes handle nested arrays (`Foo[][]` → `Foo`), pointer types
(`Foo*[]` → `Foo`), multi-dimensional arrays (`Foo[,]` → `Foo`), and
mixed cases like `List<Foo>[]` (strips to `List<Foo>`, which is not a
`ParameterizedType`).

# Customer Impact

`PublishTrimmed` builds fail with an unhandled `NotSupportedException` /
fatal ILLink error when any assembly attribute uses an array type as a
`TypeMap` trim target. In ILCompiler (`PublishAot`), the TypeMap entry
for an array trim target whose element type is reachable is silently
dropped. No workaround short of removing the array type.

# Regression

No — this is a new feature (`TypeMap`) that never handled array trim
targets correctly in either ILLink or ILCompiler.

# Testing

Added test cases to `TypeMap.cs` (ILLink / ILCompiler trimming tests):
- `TrimTargetIsUsedArrayType`: array trim target whose element type is
reachable (via `new ArrayTypeTrimTargetClass()`) — attribute must be
preserved; verified with `KeptAttributeAttribute`.
- `TrimTargetIsUnusedArrayType`: array trim target whose element type is
unreachable — attribute and target types are removed; verified with
explicit `RemovedTypeInAssembly("test", ...)` assertions on both
`ArrayTypeTrimTargetUnusedClass` and `ArrayTypeTrimTargetUnusedTarget`.

Added `TestInteropMapArrayTrimming` to
`src/tests/nativeaot/SmokeTests/TrimmingBehaviors/DeadCodeElimination.cs`
(NativeAOT smoke test):
- 7 `TypeMap` entries (A–G) with array trim targets covering `T[]`,
`T[,]`, and `T*[]` variants.
- `MakeGenerics<T>()` is a generic method that constructs `TrimTarget1
[1]`, `TrimTarget2 [1,1]`, `TrimTarget3 *[1]`, and `TrimTarget6[1]`,
invoked via
`typeof(TestInteropMapArrayTrimming).GetMethod(nameof(MakeGenerics)).MakeGenericMethod([GetAtom()]).Invoke(null,
[])`. Entry G is rooted via an `is TrimTarget7[]` cast.
- `Atom` class and `GetAtom()` method are present to provide the generic
type argument for the reflection-based call.
- Struct declarations `TrimTarget1` through `TrimTarget4` use trailing
spaces before the semicolon (e.g., `TrimTarget1 ;`) to visually
distinguish the array-targeted trim types from the non-array ones.
- Verifies entries A, B, C, F, G are present in the map using
`TryGetValue`; verifies entries D, E are absent (element type
unreachable) also using `TryGetValue` — `ContainsKey` is not used
because `TypeMapLazyDictionary` throws `NotSupportedException` for that
method.

Both existing `Reflection.TypeMap` and `Reflection.TypeMapEntryAssembly`
tests pass.

# Risk

Low. The ILLink change is localized to `TypeMapHandler` — three call
sites and one new private static helper. The ILCompiler change is
localized to `ExternalTypeMapNode` — two methods updated and one new
private static helper. The NativeAOT smoke test addition is additive
only. No behavior change for existing valid (non-array) trim targets.

# Package authoring no longer needed in .NET 9

IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet
package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older
versions.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkoritzinsky <1571408+jkoritzinsky@users.noreply.github.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
…seekable file (#126844)

Reverts all System.Console source changes from PR #125512 (which
introduced `RandomAccess.Read`/`Write` based I/O) back to the original
`Interop.Sys.Read`/`Write` implementation. The `FileStream`-based
approach will be revisited separately.

Adds regression tests that verify `Console.OpenStandardInput().CopyTo()`
and `Console.OpenStandardOutput().Write()` work correctly when
stdin/stdout is redirected to a seekable file.

fixes #126843

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: adamsitnik <6011991+adamsitnik@users.noreply.github.com>
…126559)

This PR replace inline `throw new FormatException()` statements in
`JsonElement.GetSByte`, `GetByte`, `GetInt16`, and `GetUInt16` with
`ThrowHelper.ThrowFormatException` calls, consistent with the pattern
established in #61746.
…ported on Apple mobile (#127057)

## Description

Move `System.ComponentModel.Composition.Tests` in `tests.proj` from the
`#124344` group to `Not supported on Apple mobile`, matching mono and
browser. Additional trimming changes are needed and MEF extension
scenarios aren't different on Apple mobile compared to desktop.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Summary

Replaces four `Enum.HasFlag` calls in `System.Net.WebSockets` with the
bitwise `(value & flag) != 0` idiom used
  throughout the rest of the repo.

This follows the explicit guidance from @stephentoub in a prior review
on this same file (#107662):

> We generally prefer to avoid using HasFlag, even though the JIT does
optimize away the boxing in tier 1.

See the [original review
comment](dotnet/runtime#107662 (comment)).

That PR removed one `HasFlag` usage in `WebSocketStateHelper.cs`; this
PR finishes the job by replacing the remaining
  occurrences across the library.

  It also brings internal consistency to `WebSocketStateHelper.cs`.
`ThrowIfInvalidState` already uses the bitwise form `(state &
validStates) == 0` a few lines below the previous `IsValidSendState`
implementation.

  No behavior changes.

  ## Changes

  | File | Change |
  |---|---|
| `WebSocketStateHelper.cs` | `IsValidSendState`, now matches the
bitwise form already used by `ThrowIfInvalidState`
  in the same file |
| `ManagedWebSocket.cs` | `endOfMessage` / `disableCompression` checks
in `SendAsync` |
| `WebSocket.cs` | `SendAsync` virtual overload's `endOfMessage` check |
- [x] Inspect `_DbgBreakCheck` call sites and confirm JIT usage scope
- [x] Run mandatory baseline build (`./build.sh clr+libs+host`)
successfully before edits
- [x] Remove `_DbgBreakCheck` call(s) from `src/coreclr/jit` with
minimal code changes
- [x] Build and run relevant JIT/CoreCLR validation for the modified
area
- [x] Run final review/security validation and create/open the PR

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jakobbotsch <7887810+jakobbotsch@users.noreply.github.com>
## Summary
This PR specify `Count` as the initial capacity of `List<T>` to avoid
unnecessary heap reallocations while collecting items via
`BreadthFirstTreeWalk`, and replace the `while` loop that called
`RemoveAt(Count - 1)` after each removal with a simple reverse `for`
loop over the list by index.

## Benchmark Results
 
| Method | Job | Toolchain | Count | Mean | Error | StdDev | Median |
Min | Max | Ratio | RatioSD | Code Size | Allocated | Alloc Ratio |
|----------------- |----------- |------------------ |------
|-------------:|-----------:|-----------:|-------------:|-------------:|------------:|------:|--------:|----------:|----------:|------------:|
| TreeSubSet_Clear | Job-WYLMTD | \main\corerun.exe | 10 | 10.650 us |
1.1232 us | 1.2935 us | 10.350 us | 9.100 us | 13.20 us | 1.00 | 0.00 |
267 B | 640 B | 1.00 |
| TreeSubSet_Clear | Job-SHTHJF | \pr\corerun.exe | 10 | 8.856 us |
0.5452 us | 0.5833 us | 8.800 us | 8.000 us | 10.20 us | 0.84 | 0.11 |
267 B | 520 B | 0.81 |
| | | | | | | | | | | | | | | |
| TreeSubSet_Clear | Job-WYLMTD | \main\corerun.exe | 100 | 23.930 us |
1.6118 us | 1.8562 us | 23.850 us | 21.100 us | 28.10 us | 1.00 | 0.00 |
267 B | 2752 B | 1.00 |
| TreeSubSet_Clear | Job-SHTHJF | \pr\corerun.exe | 100 | 24.790 us |
1.7995 us | 2.0723 us | 24.800 us | 21.100 us | 28.50 us | 1.04 | 0.11 |
267 B | 2024 B | 0.74 |
| | | | | | | | | | | | | | | |
| TreeSubSet_Clear | Job-WYLMTD | \main\corerun.exe | 1000 | 186.237 us
| 10.4397 us | 11.6037 us | 188.900 us | 164.800 us | 207.10 us | 1.00 |
0.00 | 267 B | 17384 B | 1.00 |
| TreeSubSet_Clear | Job-SHTHJF | \pr\corerun.exe | 1000 | 185.722 us |
12.6666 us | 13.5531 us | 193.500 us | 162.600 us | 200.10 us | 1.00 |
0.09 | 267 B | 13016 B | 0.75 |
| | | | | | | | | | | | | | | |
| TreeSubSet_Clear | Job-WYLMTD | \main\corerun.exe | 10000 | 1,113.750
us | 20.5663 us | 18.2315 us | 1,111.300 us | 1,069.700 us | 1,141.80 us
| 1.00 | 0.00 | 267 B | 197776 B | 1.00 |
| TreeSubSet_Clear | Job-SHTHJF | \pr\corerun.exe | 10000 | 1,145.594 us
| 34.4062 us | 33.7915 us | 1,145.000 us | 1,103.200 us | 1,216.40 us |
1.03 | 0.03 | 267 B | 106432 B | 0.54 |

```csharp
    [MemoryDiagnoser]
    [BenchmarkCategory(Categories.Libraries, Categories.Collections, Categories.GenericCollections)]
    public class Perf_SortedSet_TreeSubSet_Clear
    {
        private SortedSet<int> viewSet;

        [Params(10, 100, 1000, 10000)]
        public int Count;

        [GlobalSetup]
        public void Setup()
        {
            var set = new SortedSet<int>(Enumerable.Range(0, Count));
            viewSet = set.GetViewBetween(0, Count - 1);
        }

        [IterationSetup]
        public void IterationSetup()
        {
            var set = new SortedSet<int>(Enumerable.Range(0, Count));
            viewSet = set.GetViewBetween(0, Count - 1);
        }

        [Benchmark]
        public int TreeSubSet_Clear()
        {
            viewSet.Clear();
            return viewSet.Count;
        }
    }
```
… aggressive trimming in Release (#127054)

## Description

Part of splitting #125439 into smaller, self-contained PRs.

The Debug `AllSubsets_CoreCLR_Smoke` jobs for tvOS, iOSSimulator, and
MacCatalyst are unstable and tracked in #124344. In the corresponding
Release jobs, enable `EnableAggressiveTrimming` and
`EnableAdditionalTimezoneChecks` so CI tests the trimmed library build
path that ships to customers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…mobile CoreCLR simulators (#127065)

## Description

Exclude three test projects that fail on Apple mobile CoreCLR simulators
from the library test run. Tracking issue:
dotnet/runtime#124344.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tead of NativeAOT (#127055)

## Description

This PR updates IsMetadataUpdateSupported to aggressive trimming instead
of Native AOT to avoid using ActiveIssue for Apple mobile tests that are
not supported.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… in GCToOSInterface::VirtualReset (#126966)

main PR

# Description

`VirtualReset` was combining `MADV_FREE` (8) and `MADV_DONTDUMP` (16)
via bitwise OR and passing the result (`24`) to a single `madvise()`
call. `madvise()` takes a single advice constant — not a bitmask — so
this was either rejected as `EINVAL` (kernels < 5.18) or silently
matched `MADV_DONTNEED_LOCKED` (kernels ≥ 5.18), a completely different
operation.

**Fix:** Issue two separate `madvise()` calls, and use
`posix_madvise(POSIX_MADV_DONTNEED)` as a proper fallback only when
`MADV_FREE` is not available:

```cpp
// Before (broken)
int madviseFlags = 0;
madviseFlags |= MADV_DONTDUMP;  // 16
madviseFlags |= MADV_FREE;      // 8
st = madvise(address, size, madviseFlags);  // passes 24 — invalid

// After (fixed)
#ifdef MADV_DONTDUMP
st = madvise(address, size, MADV_DONTDUMP);  // coredump hint (independent)
#endif

#ifdef MADV_FREE
st = madvise(address, size, MADV_FREE);      // primary: page reclaim
#elif defined(HAVE_POSIX_MADVISE)
st = posix_madvise(address, size, POSIX_MADV_DONTNEED);  // fallback when MADV_FREE unavailable
#endif
```

The `posix_madvise(POSIX_MADV_DONTNEED)` path is an `#elif` chained to
`#ifdef MADV_FREE`, making it a proper fallback that only executes when
`MADV_FREE` is unavailable. The guard uses `MADV_FREE` directly (the
kernel header constant) rather than `HAVE_MADV_FREE`, which was never
defined by the GC unix CMake build system. The previous `#if
defined(HAVE_POSIX_MADVISE) && !defined(MADV_DONTDUMP)` condition was
semantically unrelated to that fallback decision. This matches the
pattern already used by `VirtualReserveInner` and `VirtualCommitInner`
in the same file. Introduced by #95643.

# Customer Impact

On all Linux builds where both `MADV_DONTDUMP` and `MADV_FREE` are
defined (i.e., all modern glibc/x86-64 Linux):
- **Kernels < 5.18**: GC never successfully resets pages to the OS —
memory pressure behavior is broken and `MADV_DONTDUMP` is never applied
(reset memory appears in coredumps).
- **Kernels ≥ 5.18**: `MADV_DONTNEED_LOCKED` is invoked instead —
immediately discarding pages including locked pages, which is
semantically incorrect and potentially dangerous.

Additionally, because `HAVE_MADV_FREE` was never defined by the build
system, the `MADV_FREE` reclaim path was silently compiled out on all
platforms, falling through to `posix_madvise(POSIX_MADV_DONTNEED)`
instead. Using `MADV_FREE` directly as the preprocessor guard restores
the intended behavior.

# Regression

Yes — introduced in .NET 9 by #95643 (an optimization to reduce syscall
count).

# Testing

The bug is a straightforward misuse of a syscall interface. The fix has
been manually verified against the Linux `madvise(2)` man page and
kernel headers. No existing automated test infrastructure covers
`madvise()` advice values directly.

# Risk

Low. The change is a minimal, targeted fix: replace one combined
`madvise()` call with two separate calls, restructure the
`posix_madvise` fallback as a proper `#elif`, and use the `MADV_FREE`
kernel constant directly as the preprocessor guard. No logic changes, no
new APIs, no structural changes.

# Package authoring no longer needed in .NET 9

IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet
package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older
versions.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: janvorli <10758568+janvorli@users.noreply.github.com>
…bile (#127082)

Fixes test failures on Android, iOS, tvOS, and MacCatalyst discovered in
build
[#1383320](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=1383320).

## Failure

**Test**: `System.Runtime.Loader.Tests.AssemblyLoadContextTest`  
**Helix job**: `c1e7d30b-9f1d-4f11-9117-cfe78a4df8b9`  
**Work item**: `System.Runtime.Loader.Tests`  
**Platform**: android-arm64 (also affects all mobile platforms)

### Failing tests

1. `InvalidCastException_DifferentALC_ShowsAssemblyInfo`
2. `InvalidCastException_GenericTypeArg_DifferentALC_ShowsAssemblyInfo`

### Root cause

Both tests call
`LoadFromAssemblyPath(typeof(AssemblyLoadContextTest).Assembly.Location)`.
On mobile platforms, `Assembly.Location` returns an empty string because
assemblies are loaded from the APK/app bundle, not from individual files
on disk.

````text
[FAIL] System.Runtime.Loader.Tests.AssemblyLoadContextTest.InvalidCastException_DifferentALC_ShowsAssemblyInfo
System.ArgumentException : Path "" is not an absolute path. (Parameter 'assemblyPath')
   at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
   at System.Runtime.Loader.Tests.AssemblyLoadContextTest.InvalidCastException_DifferentALC_ShowsAssemblyInfo()
````

### Fix

Add `nameof(PlatformDetection.IsNotMobile)` to both tests'
`ConditionalFact` attributes to skip on mobile platforms where
`Assembly.Location` is not available.

## Testing

These tests will be skipped on Android, iOS, tvOS, and MacCatalyst in
the `runtime-extra-platforms` pipeline. Desktop platforms will continue
to run the tests.

---

> [!NOTE]
> This PR was created by GitHub Copilot after analyzing mobile platform
CI failures in the runtime-extra-platforms pipeline.

Contributes to #127080




> Generated by [Mobile Platform Failure
Scanner](https://github.com/dotnet/runtime/actions/runs/24566685884/agentic_workflow)
· ● 4.9M ·
[◷](https://github.com/search?q=repo%3Adotnet%2Fruntime+%22gh-aw-workflow-id%3A+mobile-scan%22&type=pullrequests)

<!-- gh-aw-agentic-workflow: Mobile Platform Failure Scanner, engine:
copilot, model: claude-sonnet-4.5, id: 24566685884, workflow_id:
mobile-scan, run:
https://github.com/dotnet/runtime/actions/runs/24566685884 -->

<!-- gh-aw-workflow-id: mobile-scan -->

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kotlarmilos <11523312+kotlarmilos@users.noreply.github.com>
PR #124967 accidentally committed two lines with CRLF endings into a
file that uses LF, causing git to perpetually report the file as
modified on Windows (core.autocrlf=true).

Renormalize to consistent LF endings.

cc: @MihaZupan

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Teach redundant branch elimination to keep jump threading through
PHI-based blocks when the PHI uses can be fully accounted for in the
block and its immediate successors. Rewrite the affected successor
SSA/VN uses, keep dominating-block threading conservative, and add
focused regression coverage for the new PHI-based cases.

Fix included here that was not in #126812: ensure that field uses of
locals get the proper VN updates.

Fixes #126976.
## Description

This adds a daily scheduled agentic workflow that scans the
`runtime-extra-platforms`
https://dev.azure.com/dnceng-public/public/_build?definitionId=154 for
Apple mobile (iOS, tvOS, MacCatalyst) and Android failures on `main`.

## What it does

- **Daily scan**: queries the latest completed build, finds failed
mobile jobs, reads failure logs
- **Triage**: classifies failures as infrastructure (reports on tracking
issues with machine details) or code (traces to recent commits)
- **Fix**: opens draft PRs for code failures, caps at 2 PRs, 2 issues, 5
comments per run

## Files

| File | Purpose |
|---|---|
| `.github/skills/mobile-platforms/SKILL.md` | Domain knowledge: CI
pipeline structure, code paths, failure triage, platform gotchas |
| `.github/workflows/mobile-scan.md` | Daily scan workflow (schedule
trigger, write-access gated) |
| `.github/workflows/mobile-scan.lock.yml` | Compiled lock file |

## Safety & permissions

The workflow source (`.md`) declares **read-only** permissions
(`contents: read`, `issues: read`, `pull-requests: read`). The agent job
itself has no direct write access to the repository.

All write operations (creating draft PRs, issues, and comments) go
through the **safe-outputs** boundary, which runs in a separate job with
its own scoped permissions. Safe-outputs enforces strict caps:

| Output | Cap | Constraints |
|---|---|---|
| Draft PRs | max 2 | Title prefix `[mobile] `, labels
`agentic-workflows`, protected files/paths fallback to issue |
| Issues | max 2 | Labels `agentic-workflows`, `untriaged` |
| Comments | max 5 | On existing issues/PRs only |

Additional safeguards:
- Only admins, maintainers, and contributors with write access can
trigger via `workflow_dispatch`
- External skill content (helix-investigation) is fetched pinned to a
specific commit SHA, not a mutable branch
- Log excerpts are sanitized before posting (no secrets, tokens, PII)
- Concurrency group prevents overlapping runs
- Network allowlist restricts outbound access to Azure DevOps, Helix,
GitHub, and Helix blob storage only

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
cgroup code was being compiled and linked on macOS and FreeBSD even
though cgroups are a Linux-specific mechanism. While this caused no
runtime harm (functions returned 0/false due to missing
`/sys/fs/cgroup`), the code was dead weight on those platforms.

Fixes dotnet/runtime#99363

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
…ing (#127105)

**The essence of the bug:**
During decompression, a portion of compressed data ends exactly at the
boundary of a 64 kb buffer, and the remaining bytes, not yet
decompressed by the decoder, are waiting for the next portion, resulting
in a exception. The buffer is physically full, and AvailableSpan returns
an empty fragment, ``Span<byte>`` empty reading from the file into an
empty Span returns 0 bytes read.

**Solution:**
Checks have been added to the main Read and ReadAsync loops. If
AvailableLength is zero, we force a call to
``_buffer.EnsureAvailableSpace(1);.`` the bytes are shifted to the
beginning of the array, the read is released, and the stream then reads
new data.

---------

Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
…27156)

When stepping next at the last line of Main, the debugger lands in the
managed Environment.CallEntryPoint which stops the debuggee in a frame
with no source info rather than the process simply exiting.

Extend the existing IsInteropStub check in TriggerSingleStep to also
recognize g_pEnvironmentCallEntryPointMethodDesc. When the single-step
lands there, disable it and let the process exit naturally, matching the
previous behavior when the return landed in native code.

Found with internal VS debugger testing.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Remove windows runs from the pipeline. Many suites fail with com related
tests and windows is not really relevant as a target for now. We still
run full runtime tests on windows.

STJ.Tests
- jit 2min
- interpmode1 15min
- interpmode3 >1.5h

This also uncovers a new set of failures that we will need to address
…essStartInfo.Arguments` for the string+args overload (#127116)

`StartAndForget_StartsProcessAndReturnsValidPid` was failing
intermittently for `useProcessStartInfo: false` because the test passed
`template.StartInfo.ArgumentList`, while `RemoteExecutor` populates
`Arguments`. This could launch `dotnet` with effectively empty/incorrect
arguments and exit early.

fixes #127107

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: adamsitnik <6011991+adamsitnik@users.noreply.github.com>
Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
- Rewrite WasmImportThunk generation in terms of the TransitionBlock and
the interpreter calling convention
- Update the ArgIterator in crossgen2 to handle the interpreter calling
convention, or at least something pretty close to it.
- Move the adjustment of the stack pointer global to the
`DelayLoad_MethodCall` function

NOTE: We have not yet handled all of the variation between the
interpreter and R2R calling conventions, but this is close enough to
make good progress.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This resolves #127138 

In some cases we need to ensure the introduced node is explicitly marked
as morphed since it may not be returning through `fgMorphHWIntrinsic`.
This was a pre-existing issue, but one that only surfaced due to the
fixed `IsVectorPerElementMask` check.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
If we partially jump-thread a block with PHIs, the remaining preds that
target block may all bring in the same SSA def for some of the PHIs. If
so, remove the PHIs and update the SSA/VN for the PHI uses in the block.

In particular there may just be one ambiguous pred.

Fixes #126703.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
kotlarmilos and others added 30 commits April 29, 2026 09:54
…e CoreCLR (#127058)

## Description

Part of splitting #125439 into smaller, self-contained PRs.

On Apple mobile platforms, test assemblies are deployed as files inside
the `.app` bundle rather than being embedded as managed resources in the
host test assembly. As a result, `Assembly.GetManifestResourceStream`
returns null in `ResourceAssemblyLoadContext` and any test that relies
on it fails.

This PR updates `ResourceAssemblyLoadContext` to fall back to loading
the assembly from `AppContext.BaseDirectory` when the embedded resource
is not present.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
## Description

When DAC/DBI seeds StackFrameIterator from a CONTEXT pointing into
interpreted code, m_crawl.pFrame is initialized to the thread's top
explicit Frame, which is the InterpreterFrame that owns the executing
InterpMethodContextFrame chain.

ResetRegDisp reads the owning InterpreterFrame* from the CONTEXT's
first-arg register and advances m_crawl.pFrame past it before
ProcessCurrentFrame runs.

## Tests

Fixes the following interpreter debugger test failures:
- `StackWalking.NestedException`
- `StackWalking.ChildParentTest`

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
Without this condition, fresh test runs fail because there are no 'done'
files indicating r2r compilation already completed
…26649)

> [!NOTE]
> This PR description was generated with Copilot.

Reinstates the LINQ convenience overloads from #121998 and #121999 that
were reverted in #126624, while also fixing the build break that caused
the revert.

## Summary
- preserves the original API/implementation commits by cherry-picking
them onto this branch
- fixes the `System.Linq.AsyncEnumerable` test build break by making the
affected async selectorless overload calls explicit where inference was
insufficient during the multi-target build

## Validation
- `build.cmd clr+libs -rc release`
- `.\dotnet.cmd build
.\src\libraries\System.Linq.AsyncEnumerable\tests\System.Linq.AsyncEnumerable.Tests.csproj
/t:Test --no-restore`
- `.\dotnet.cmd build
.\src\libraries\System.Linq\tests\System.Linq.Tests.csproj /t:Test
--no-restore`
- `.\dotnet.cmd build
.\src\libraries\System.Linq.Queryable\tests\System.Linq.Queryable.Tests.csproj
/t:Test --no-restore`

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Shay Rojansky <roji@roji.org>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: roji <1862641+roji@users.noreply.github.com>
…arm (#127225)" (#127547)

Reverts #127225
Closes #127500

android-arm is crashing in CI with `SIGSEGV` in
`System.DateTime.get_Now()`. See #127500.

Reverting while the underlying crash is investigated.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ol knob design (#127033)

Fix IMUL register encoding, remove embedded REX prefix in opcode when
necessary

Disable the NDD form of CMOV due to discrepant semantic of original CMOV
and NDD form, follow-up PR to reintroduce the remaining NCI instructions
(CTEST and CFCMOV) has been planned.

Separate PP2 and PPX control knob

Hide ConditionalChaining (`DOTNET_EnableApxConditionalChaining`) behind
APX (`DOTNET_EnableAPX`) knob

Disable IDIV/DIV due to lack of exception handling for REX2/EVEX
prefixed instructions in VM

Disable TEST ACC form for REX2, it is not compatible as the form does
not use EGPRs.

resolve merge errors

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kendall Gonzalez Leon <kendall.gonzalez.leon@intel.com>
## Description

This PR enables StackTrace library tests on Apple mobile. The line
numbers are not displayed on Apple mobile, tracked in
dotnet/runtime#124087.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When multiple awaits have common context handling logic during
suspension we can share that logic completely by jumping to a common
block. This PR implements that size optimization.
This adds floating->long/ulong cast codegen for AVX-512 and AVX10.2 on
x86. With this, all non-overflow casts are now hardware accelerated.
This is the last bit pulled from #116805.

Typical Diff (double->long AVX-512):

```diff
-       sub      esp, 8
-       vzeroupper 
-       vmovsd   xmm0, qword ptr [esp+0x0C]
-       sub      esp, 8
-       ; npt arg push 0
-       ; npt arg push 1
-       vmovsd   qword ptr [esp], xmm0
-       call     CORINFO_HELP_DBL2LNG
-       ; gcr arg pop 2
+       vmovsd   xmm0, qword ptr [esp+0x04]
+       vcmpordsd k1, xmm0, xmm0
+       vcmpge_oqsd k2, xmm0, qword ptr [@rwd00]
+       vcvttpd2qq xmm0 {k1}{z}, xmm0
+       vpblendmq xmm0 {k2}, xmm0, qword ptr [@RWD08] {1to2}
+       vmovd    eax, xmm0
+       vpextrd  edx, xmm0, 1
-       add      esp, 8
        ret      8

+RWD00  	dq	43E0000000000000h
+RWD08  	dq	7FFFFFFFFFFFFFFFh
 
-; Total bytes of code 31
+; Total bytes of code 53
```

Full
[Diffs](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1391699&view=ms.vss-build-web.run-extensions-tab)

Breakdown of the double->long asm:

```asm
; load the scalar double
vmovsd   xmm0, qword ptr [esp+0x04]

; set the low bit of k1 if the scalar value is not NaN
vcmpordsd k1, xmm0, xmm0

; set the low bit of k2 if the input was greater than or equal to 2^63 (nearest double greater than long.MaxValue)
vcmpge_oqsd k2, xmm0, qword ptr [@rwd00]

; convert, using k1 mask bit.  if the mask bit is not set (meaning we have a NaN), set the value to zero
vcvttpd2qq xmm0 {k1}{z}, xmm0

; if the low bit of k2 is set (meaning overflow), set the value to long.MaxValue, otherwise take the conversion result
vpblendmq xmm0 {k2}, xmm0, qword ptr [@RWD08] {1to2}

; extract the two 32-bit halves of the long result
vmovd    eax, xmm0
vpextrd  edx, xmm0, 1
```

---------

Co-authored-by: Tanner Gooding <tagoo@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
This is the `X25519DiffieHellmanOpenSsl` implementation that works with EVP_PKEY handles.
## Description

`DeadThreads` creates threads at a very high rate, making it unsuitable
for GC stress runs where frequent GCs slow execution enough to cause OOM
or excessive paging.

### Changes

- **`src/tests/baseservices/threading/DeadThreads/DeadThreads.csproj`**:
Added `<GCStressIncompatible>true</GCStressIncompatible>` to opt the
test out of GC stress (GCStress3/GCStressC) runs.

## AI Generated Content Notice
> [!NOTE]
> This PR description was generated by GitHub Copilot.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: VSadov <8218165+VSadov@users.noreply.github.com>
…dExportedTypeByName (#127471)

> [!NOTE]
> This PR was AI/Copilot-generated.

## Summary

Implements 4 IMetaDataImport/IMetaDataAssemblyImport methods that were
previously legacy-only stubs in `MetaDataImportImpl`. These APIs are
used by an internal debugger and need cDAC implementations for
no-fallback mode. Also adds comprehensive DEBUG parity validation across
all cDAC-implemented methods and improves code quality.

## Changes

### New cDAC implementations in `MetaDataImportImpl.cs`

| Method | Interface | Description |
|--------|-----------|-------------|
| `EnumTypeDefs` | IMetaDataImport | Enumerates all TypeDef tokens via
`MetadataReader.TypeDefinitions` |
| `EnumMethods` | IMetaDataImport | Enumerates methods of a TypeDef via
`TypeDefinition.GetMethods()` |
| `GetExportedTypeProps` | IMetaDataAssemblyImport | Returns exported
type name (namespace.name), implementation token, TypeDef ID, and flags
|
| `FindExportedTypeByName` | IMetaDataAssemblyImport | Finds an exported
type by full name, with nested type support via enclosing type token |

All implementations follow the established patterns in
MetaDataImportImpl:
- try/catch with HResult return
- `FillEnum` infrastructure for enum methods
- `CopyStringToBuffer` with truncation → `CLDB_S_TRUNCATION`
- `CLDB_E_RECORD_NOTFOUND` for missing records
- `#if DEBUG` validation against legacy DAC

### Comprehensive DEBUG parity validation

Added or improved `#if DEBUG` validation blocks for **all**
cDAC-implemented methods:

- **3 enum methods** (`EnumInterfaceImpls`, `EnumFields`,
`EnumGenericParams`) — added missing DEBUG blocks that enumerate via the
legacy DAC and compare token lists
- **9 Get methods** — added string content validation (not just length)
by passing `stackalloc` name buffers to the legacy DAC and comparing the
actual strings
- **2 Get methods** (`GetGenericParamProps`, `GetParamProps`) — added
name length + string validation that was previously missing entirely
- All enum DEBUG blocks follow the SOSDacImpl pattern: placed **after**
the catch block, not inside the try

### Code quality improvements

- **`EcmaMetadataUtils.GetRowId`** made public; added `private static
int GetRID(uint token)` helper in `MetaDataImportImpl` to replace all
raw `& 0x00FFFFFF` RID mask usage
- **Named CLDB HRESULT constants** (`CldbHResults.CLDB_S_TRUNCATION`,
etc.) used in tests instead of magic hex literals

### Dump tests in `MetaDataImportDumpTests.cs`

- `EnumTypeDefs_MatchesMetadataReader` — enumerates TypeDefs via cDAC
and compares against `MetadataReader.TypeDefinitions`
- `EnumMethods_MatchesMetadataReader` — enumerates methods per TypeDef
and compares against `MetadataReader`

### Unit tests in `MetaDataImportImplTests.cs`

- 11 new unit tests covering: basic enumeration, pagination, per-TypeDef
method enumeration, global methods, empty method lists, exported type
properties, nested exported types, truncation, find by name, nested
find, and not-found cases
- Updated `NotImplementedMethods_ReturnENotImpl` to remove
`EnumTypeDefs` (now implemented)
- Added exported type entries to shared test metadata builder

## Testing

- **1856 unit tests** pass (all cDAC tests)
- **5 dump tests** pass (MetaDataImport-specific)
- Build succeeds with 0 errors, 0 warnings

---------

Co-authored-by: Max Charlamb <maxcharlamb@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Description
Replaces the legacy-delegation stub in
`DacDbiImpl.EnumerateAssembliesInAppDomain` with a managed
implementation using the `ILoader` contract, mirroring the native C++
logic in `dacdbiimpl.cpp:4412–4449`.

### Changes

- **`IDacDbiInterface.cs`**: Changed `fpCallback` parameter type from
`nint` to `delegate* unmanaged<ulong, nint, void>` (consistent with
`EnumerateThreads`)
- **`DacDbiImpl.cs`**: Full implementation that:
  - Returns `S_OK` early on null `vmAppDomain`
- Enumerates via `ILoader.GetModuleHandles` with `IncludeLoading |
IncludeLoaded | IncludeExecution`
- Resolves each `ModuleHandle` to an assembly pointer via
`ILoader.GetAssembly`
  - Calls `fpCallback(assembly, pUserData)` per entry
- `#if DEBUG` validation against legacy DAC (same pattern as
`EnumerateThreads`)
- DacDbiImplTests.cs - Add 5 tests covering zero AppDomain, null
callback, single/multiple/empty assembly enumeration with mocked ILoade

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: barosiak <76071368+barosiak@users.noreply.github.com>
Co-authored-by: Barbara Rosiak <brosiak@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…Silicon (#127355)

## Problem

On macOS Apple Silicon (observed on macOS 15), compressed self-contained
single-file apps intermittently hit `AccessViolationException` crashes.
With the repro provided in the issue, the failure rate was roughly 75%
in a local run.

`FlatImageLayout::LoadImageByCopyingParts` allocates the image region
with `MEM_RESERVE_EXECUTABLE` (which maps to `MAP_JIT` on macOS) as
`PAGE_READWRITE`, copies in all section bytes, then promotes executable
sections to `PAGE_EXECUTE_READWRITE` via a second `mprotect`. On Apple
Silicon, this `RW → RWX` transition on MAP_JIT memory has been observed
to intermittently succeed at the API level but leave pages
non-executable at the kernel level, producing the sporadic AVs.

## Fix

On Apple Silicon (`HOST_OSX && HOST_ARM64`), avoid the unreliable
transition: reserve the whole image region as `PAGE_NOACCESS` up front,
then commit each section directly with its final runtime protection
(`PAGE_EXECUTE_READWRITE` for exec, `PAGE_READWRITE` otherwise), copying
executable content under `PAL_JitWriteProtect`. The `PROT_NONE → RWX`
direction via a fresh commit is reliable; the problematic `RW → RWX`
transition no longer occurs. Read-only sections are still downgraded
from `PAGE_READWRITE` to `PAGE_READONLY` after the copy, which is a
W-removing transition and is not implicated in the original bug.

The non-Apple-Silicon code path is unchanged.

## Testing

New test:
`AppHost.Bundle.Tests.AppLaunch.SelfContained_Compressed_SpawnsChildren`
(OSX-only). Adds a `launch_self` option to the `HelloWorld` test asset
that spawns 5 copies of itself in parallel, and asserts the parent runs
to completion.

Local validation on Apple Silicon:

- Without fix: parent crash with `AccessViolationException` in ~74% of
trials at N=5 children (rises to ~98% at N≥12).
- With fix: 0 failures across 50+ trials at N=5.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…369)

Several `TokenBasedNode` subclasses in ILTrim were not calling
`CustomAttributeNode.AddDependenciesDueToCustomAttributes`, causing
custom attributes on those metadata tables to be silently dropped during
trimming.
1. Agent is sometimes ignoring the result of the version calculation
script - make it more clear how to handle results.
2. Comment was duplicating issue body.  Remove this.
3. Tag the PR's assignees to get attention.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
# Conflicts:
#	.github/policies/resourceManagement.yml
#	eng/Publishing.props
#	eng/Subsets.props
#	eng/common/core-templates/job/publish-build-assets.yml
#	eng/common/core-templates/job/source-build.yml
#	eng/common/core-templates/job/source-index-stage1.yml
#	eng/common/core-templates/post-build/post-build.yml
#	eng/common/templates/variables/pool-providers.yml
#	eng/native/gen-buildsys.cmd
#	eng/testing/tests.singlefile.targets
#	global.json
#	src/coreclr/CMakeLists.txt
#	src/coreclr/build-runtime.cmd
#	src/coreclr/clr.featuredefines.props
#	src/coreclr/clrdefinitions.cmake
#	src/coreclr/components.cmake
#	src/coreclr/gc/unix/cgroup.cpp
#	src/coreclr/jit/CMakeLists.txt
#	src/coreclr/jit/abi.h
#	src/coreclr/jit/alloc.cpp
#	src/coreclr/jit/compiler.cpp
#	src/coreclr/jit/gentree.cpp
#	src/coreclr/jit/jit.h
#	src/coreclr/jit/jitconfigvalues.h
#	src/coreclr/jit/lclvars.cpp
#	src/coreclr/jit/liveness.cpp
#	src/coreclr/jit/morph.cpp
#	src/coreclr/jit/register.h
#	src/coreclr/jit/regset.cpp
#	src/coreclr/jit/ssabuilder.cpp
#	src/coreclr/jit/target.h
#	src/coreclr/jit/treelifeupdater.cpp
#	src/coreclr/jit/utils.cpp
#	src/coreclr/jit/valuenum.cpp
#	src/coreclr/jit/valuenumfuncs.h
#	src/coreclr/nativeaot/BuildIntegration/Microsoft.DotNet.ILCompiler.SingleEntry.targets
#	src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets
#	src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/InternalCalls.cs
#	src/coreclr/nativeaot/Runtime/unix/cgroupcpu.cpp
#	src/coreclr/nativeaot/System.Private.CoreLib/src/Internal/Runtime/Augments/StackTraceMetadataCallbacks.cs
#	src/coreclr/nativeaot/System.Private.CoreLib/src/System.Private.CoreLib.csproj
#	src/coreclr/nativeaot/System.Private.CoreLib/src/System/Diagnostics/StackFrame.NativeAot.cs
#	src/coreclr/nativeaot/System.Private.CoreLib/src/System/Exception.NativeAot.cs
#	src/coreclr/runtime.proj
#	src/coreclr/tools/Common/Compiler/DependencyAnalysis/ObjectDataBuilder.cs
#	src/coreclr/tools/Common/Internal/Runtime/MetadataBlob.cs
#	src/coreclr/tools/Common/Internal/Runtime/ReadyToRunConstants.cs
#	src/coreclr/tools/Common/Internal/Text/Utf8StringBuilder.cs
#	src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs
#	src/coreclr/tools/Common/JitInterface/JitConfigProvider.cs
#	src/coreclr/tools/Common/TypeSystem/Common/TargetDetails.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_Wasm/WasmJumpStubNode.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_Wasm/WasmReadyToRunGenericHelperNode.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_Wasm/WasmReadyToRunHelperNode.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_Wasm/WasmTentativeMethodNode.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/Target_Wasm/WasmUnboxingStubNode.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/MetadataManager.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/MethodBodyDeduplicator.cs
#	src/coreclr/tools/aot/ILCompiler.Compiler/IL/ILImporter.Scanner.cs
#	src/coreclr/tools/aot/ILCompiler.RyuJit/Compiler/DependencyAnalysis/MethodCodeNode.cs
#	src/coreclr/tools/aot/ILCompiler.RyuJit/Compiler/RyuJitCompilationBuilder.cs
#	src/coreclr/tools/aot/ILCompiler.RyuJit/JitInterface/CorInfoImpl.RyuJit.cs
#	src/coreclr/tools/aot/ilc.slnx
#	src/coreclr/tools/aot/jitinterface/CMakeLists.txt
#	src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
#	src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs
#	src/libraries/System.Runtime.InteropServices.JavaScript/src/System.Runtime.InteropServices.JavaScript.csproj
#	src/libraries/System.Runtime.InteropServices.JavaScript/src/System/Runtime/InteropServices/JavaScript/JSHostImplementation.cs
#	src/libraries/native-binplace.proj
#	src/mono/browser/browser.proj
#	src/mono/browser/runtime/loader/config.ts
#	src/mono/browser/runtime/loader/polyfills.ts
#	src/tests/Common/CLRTest.Execute.Bash.targets
#	src/tests/Common/XUnitWrapperGenerator/XUnitWrapperGenerator.cs
#	src/tests/Common/tests.targets
#	src/tests/nativeaot/SmokeTests/Exceptions/Exceptions.cs
#	src/tests/nativeaot/SmokeTests/PInvoke/PInvoke.csproj
#	src/tests/nativeaot/SmokeTests/Preinitialization/Preinitialization.csproj
#	src/tests/nativeaot/SmokeTests/SharedLibrary/SharedLibrary.csproj
#	src/tests/nativeaot/SmokeTests/TrimmingBehaviors/TrimmingBehaviors.csproj
#	src/tests/nativeaot/nativeaot.csproj
#	src/tests/run.cmd
#	src/tests/xunit-wrappers.targets
make jit build
delete CreateStackTraceStringForNativeUnwind and CreateStackTraceString
…es. WIP for the object writing

Include js files
exclude failing tests
Remove /sdl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.