Skip to content

Merge from dotnet/main #2

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

Closed
wants to merge 4,411 commits into from
Closed

Merge from dotnet/main #2

wants to merge 4,411 commits into from

Conversation

markples
Copy link
Owner

No description provided.

geeknoid and others added 30 commits January 12, 2023 13:53
Co-authored-by: Martin Taillefer <mataille@microsoft.com>
…used with IUnknown only (#78189)

Creates an analyzer that warns if the GeneratedComInterfaceAttribute is
used with InterfaceTypeAttribute that has an argument that is not
'InterfaceIsIUnknown'
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
Co-authored-by: Elinor Fung <elfung@microsoft.com>
* Fix most violations of new CA1859

The analyzer recommends replacing uses of types with other types that could reduce overheads (e.g. `List<T>` instead of `IList<T>`).  This fixes most of the violations we currently have of the rule, but it doesn't enable it yet because there are too many false positives; fixes for those are in-flight.  Some of these replacements won't help with perf (e.g. using `ArgumentException` instead of `Exception` as the return type of a throw helper create method), but there's little harm to them, and some of them do avoid overheads like allocation (e.g. foreach'ing something typed as `Dictionary<>` instead of `IDictionary<>` will avoid an enumerator allocation, accessing `Count` on a `List<T>` instead of `IList<T>` will avoid an interface dispatch, etc.)

* Fix mistaken replacement
…#78598)

* Implement Shuffle, GetString, and GetItems.

* Cleanup and additional tests

* Use where possible

* Code review feedback

* Additional uses of Random throughout tests

* Feedback on documentation

* Use ref to span to get span in string.Create.

Co-authored-by: Benjamin Moir <DaZombieKiller@users.noreply.github.com>
Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
Co-authored-by: Michał Petryka <35800402+MichalPetryka@users.noreply.github.com>

* Code review feedback

* Code review feedback

* Apply suggestions from code review

Co-authored-by: Dan Moseley <danmose@microsoft.com>

* Use AssertExtensions over Assert

* Improve comment

* No idea where AssertHexString came from

* Update src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/RandomNumberGenerator.cs

Co-authored-by: Jeremy Barton <jbarton@microsoft.com>

Co-authored-by: Benjamin Moir <DaZombieKiller@users.noreply.github.com>
Co-authored-by: Theodore Tsirpanis <teo@tsirpanis.gr>
Co-authored-by: Michał Petryka <35800402+MichalPetryka@users.noreply.github.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
* Add support for JsonUnmappedMemberHandling.

* Address feedback

* Ignore global UnmappedMemberHandling setting when a JsonExtensionDataAttribute is specified.

* Fix VerifyOptionsEqual method.

* Update src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfo.cs

Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>

Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
…oreCase (#80561)

* Use MemoryExtensions.Equals in CharArrayHelpers.EqualsOrdinalAsciiIgnoreCase

* Delete CharArrayHelpers.EqualsOrdinalAsciiIgnoreCase/Trim

Just use span directly.
* Make System.Collections.Immutable consistent with repo's var policy

* Fix vars that were just merged in new file
* move GetCurrentProcessorId() to shared

* delete more native code

* PR feedback

* fix unix build

* unnecessary HAVE_SCHED_GETCPU
…ions (#80106)

* PEReader doesn't work with "IsLoadedImage" and "PrefetchMetadata" options

* Apply suggestions from code review

Co-authored-by: MartyIX <203266+MartyIX@users.noreply.github.com>
Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>
* Remove APTCA

None of our assemblies support partial trust usage any longer. Removing
the APTCA attribute from S.D.DS so that it follows the pattern.

Fixes #79749

* Remove more code for partial trust
* [wasm] perf: generate, and collect binlogs

* [wasm] perf: remove workaround to allow building for net8.0 with 8.0 sdk

* [wasm] perf: revert to using latest v8

- this is because jsvu fails to generate a wrapper for the specific
  version, because this version of jsvu (2.0.1) is broken with node 14.x
  . And node 18.x builds are not built for ubuntu 18.04
* Removing ScopeInfo variable debug info

Variable live range replaced it on 2019.

* Removing VaribleLiveRange preprocessing flag

* Adding #if defined(DEBUG)

* Using ifdef in place of defined
* delete enum support for bool as an underlying type

* keep loading bool backed enum tests

* rollback changes in the type loader

* rollback additionaml test

* rollback code optimized by jit

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Dispose archive stream after the list of DataStreams

* Add tests for TarReader.DisposeAsync properly disposing underlying stream
… Build ID 2087627 (#80505)

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2085603

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2085846

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2087105

* Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2087404
* Update dependencies from https://github.com/dotnet/linker build 20221208.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.22608.1

* Update dependencies from https://github.com/dotnet/linker build 20221209.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.22609.1

* Update dependencies from https://github.com/dotnet/linker build 20221212.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.22612.1

* Update dependencies from https://github.com/dotnet/linker build 20221212.2

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.22612.2

* Update dependencies from https://github.com/dotnet/linker build 20221219.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.22619.1

* Update dependencies from https://github.com/dotnet/linker build 20230102.2

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.23052.2

* Update dependencies from https://github.com/dotnet/linker build 20230104.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.23054.1

* Update dependencies from https://github.com/dotnet/linker build 20230105.2

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.23055.2

* Update dependencies from https://github.com/dotnet/linker build 20230109.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.23059.1

* Update dependencies from https://github.com/dotnet/linker build 20230110.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.23060.1

* Update dependencies from https://github.com/dotnet/linker build 20230112.1

Microsoft.NET.ILLink.Tasks
 From Version 7.0.100-1.22606.1 -> To Version 8.0.100-1.23062.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/dotnet/icu build 20230109.1

Microsoft.NETCore.Runtime.ICU.Transport
 From Version 8.0.0-alpha.1.23056.1 -> To Version 8.0.0-alpha.1.23059.1

* Update dependencies from https://github.com/dotnet/xharness build 20230109.1

Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
 From Version 1.0.0-prerelease.23052.2 -> To Version 1.0.0-prerelease.23059.1

* Update dependencies from https://github.com/dotnet/runtime-assets build 20230109.2

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 8.0.0-beta.23059.1 -> To Version 8.0.0-beta.23059.2

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

Microsoft.CodeAnalysis.Analyzers , Microsoft.CodeAnalysis.NetAnalyzers
 From Version 3.3.4-beta1.23058.2 -> To Version 3.3.4-beta1.23059.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230109.1

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.1.0-alpha.0.22628.1 -> To Version 1.1.0-alpha.0.23059.1

* Update dependencies from https://github.com/dotnet/emsdk build 20230111.1

Microsoft.NET.Workload.Emscripten.net7.Manifest-8.0.100
 From Version 8.0.0-alpha.1.23054.1 -> To Version 8.0.0-alpha.1.23061.1

* Update dependencies from https://github.com/dotnet/cecil build 20230110.1

Microsoft.DotNet.Cecil , Microsoft.DotNet.Cecil.Pdb
 From Version 0.11.4-alpha.23053.1 -> To Version 0.11.4-alpha.23060.1

* Update dependencies from https://github.com/dotnet/hotreload-utils build 20230111.2

Microsoft.DotNet.HotReload.Utils.Generator.BuildTool
 From Version 1.1.0-alpha.0.22628.1 -> To Version 1.1.0-alpha.0.23061.2

* Update dependencies from https://github.com/dotnet/llvm-project build 20230111.1

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-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.osx-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk , runtime.win-x64.Microsoft.NETCore.Runtime.Mono.LLVM.Tools
 From Version 14.0.0-alpha.1.22626.2 -> To Version 14.0.0-alpha.1.23061.1

* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230111.7

optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime , optimization.PGO.CoreCLR
 From Version 1.0.0-prerelease.22511.6 -> To Version 1.0.0-prerelease.23061.7

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Moving the LoadVector intrinsics to use `gtNewSimdLoad*Node` helper APIs

* Switching SimdLoadNode to return GT_IND

* Merge separate imp*Intrinsic paths on xarch into impSpecialIntrinsic

* Updating the LoadVector64/128/256 APIs of Sse/Sse2/Avx and AdvSimd to use gtNewSimdLoadNode

* Moving the StoreVector intrinsics to use `gtNewSimdStore*Node` helper APIs

* Switching SimdStoreNode to return GT_ASG

* Updating the Store APIs of Sse/Sse2/Avx and AdvSimd to use gtNewSimdStoreNode

* Make the SIMD load/store instruction consistent between VEX and non-VEX

* Use GTF_REVERSE_OPS instead of impSpillSideEffect

* Applying formatting patch

* Responding to PR feedback

* Revert "Use GTF_REVERSE_OPS instead of impSpillSideEffect"

This reverts commit 0c55782.

* Remove an unnecessary assert for gtNewSimdLoad/StoreNode
Enable edge based profiles for OSR, partial compilation, and optimized plus
instrumented cases.

For OSR this requires deferring flow graph modifications until after we have
built the initial probe list, so that the initial list reflects the entirety
of the method. This set of candidate edge probes is thus the same no matter how
the method is compiled. A given compile may schematize a subset of these probes
and materialize a subset of what gets schematized; this is tolerated by the PGO
mechanism provided that the initial instrumented jitting produces a schema which
is a superset of the schema produced by any subsequent instrumented rejitting.
This is normally the case.

Partial compilation may still need some work to ensure full schematization but
it is currently off by default. Will address this subsequently.

For optimized compiles we give the EfficientEdgeCountInstrumentor the same kind
of probe relocation abilities that we have in the BlockCountInstrumentor. In
particular we need to move probes that might appear in return blocks that follow
implicit tail call blocks, since those return blocks must remain empty.

The details on how we do this are a bit different but the idea is the same: we
create duplicate copies of any probe that was going to appear in the return block
and instead instrument each pred. If the pred reached the return via a critical
edge, we split the edge and put the probe there. This analysis relies on cheap
preds, so to ensure we can use them we move all the critial edge splitting so it
happens before we need the cheap pred lists.

The ability to do block profiling is retained but will no longer be used without
special config settings.

There were also a few bug fixes in the spanning tree visitor. It must visit a
superset of the blocks we end up importing and was missing visits in some cases.

This should improve jit time and code quality for instrumented code.

Fixes #47942.
Fixes #66101.
Contributes to #74873.
* Use ArgumentOutOfRangeException.ThrowIf helpers in more places

* Apply suggestions from code review

Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>

Co-authored-by: Buyaa Namnan <buyankhishig.namnan@microsoft.com>
Instead of passing state around in a MonoAotState structure, use a few
global variables.
* Use weak handle for the back reference to EventProvider

This avoids leak when the event provider is orphaned without explicit unregistration.

Fixes #80450

* Delete unnecessary IEventProvider interface

Repurpose no-op event provider as a base class

* Fix warning on wasm
MichalStrehovsky and others added 19 commits January 25, 2023 14:40
* [wasm] Enable Vector4.Dot

We have all the pieces already in place

* fix condition

Co-authored-by: Larry Ewing <lewing@microsoft.com>
* Re-eanble ApiCompat ref<->src assembly validation

* Fix API compatibility differences and update ApiCompat baseline

* Fix mono build

* Disable ApiCompat for linker
The zeroing that the tailcall-to-loop optimization does was zeroing the
promoted copies for implicit byrefs even when promotion of them was undone.
This was introducing unexpected references to the promoted fields.

Fix #81081
* Ensure converter factories do not throw on unsupported types.

* Update src/libraries/System.Text.Json/tests/System.Text.Json.FSharp.Tests/UnionTests.fs

* Properly implement the Multi-dimensional array converter in tests.
…76444)

* Add Utf8JsonWriter.WriteRawValue(System.Buffers.ReadOnlySequence).

* Fix comment: remove TODO; rename GrowIfNeeded().

* Fix comment: consider ReadOnlySequence.Length >= int.Max.

* Make test case more generic for long typed length test data.

* Fix comment: add back TODO issue; checked cast long length to int at begin.

* Fix comment: revert checked cast long length.
Previously generic data flow was done from generic dictionary nodes. Problem with that approach is that there's no origin information at that point. The warnings can't point to the place where the problematic instantiation is in the code - we only know that it exists.
Aside from it being unfriendly for the users, it means any RUC or suppressions don't work on these warnings the same way they do in linker/analyzer.

This change modifies the logic to tag the method as "needs data flow" whenever we spot an instantiation of an annotated generic in it somewhere.
Then the actualy validation/marking is done from data flow using the trim analysis patterns.

The only exception to this is generic data flow for base types and interface implementations, that one is done on the EEType nodes.

Note that AOT implements a much more precise version of the generic data flow validation as compared to linker/analyzer. See the big comment at the bening of GenericParameterWarningLocation.cs for how that works.

Changes the expected warning validation to use tokens to compare message origins (same reason as with Kept validation - consistently converting things to string is hard)

Adds a new dependency node with the generic type definition to the graph and then does analysis on that node.
This is to avoid potential noise warnings which could happen due to multiple instantiations calling the checking code multiple times. With this the check is done only once on the type definition.

Tweaked some tests to try to cover the multiple instances scenario.
* Add missing case for upper save/restore

* PR review feedback:
The test was failing in the outerloop CI testing because of a bug in the
test. One global variable that was modified by the main and checked by
the SIGSEGV handler was not marked as volatile.

Close #81113
We don't have a `MethodTable` shape for function pointer types because how they should look like hasn't been defined until .NET 8.

Beef up the CoreCLR compat shim. We'll not be 100% compatible with this because `typeof(Tuple<delegate*<void>[]>)` doesn't actually load as `typeof(Tuple<IntPtr[]>)`, but this'll do until #71883.
At the moment we don't have too many profiling options on s390x, and
the logging profiler comes in handy. Enable building it on s390x and
define MONO_DLL_EXPORT in order to unhide mono_profiler_init_log().
* avoid allocation of SelectClientCertificate delegate

* cleanup
…ever negative" (#81055)

* Update the JIT to track `Span.Length` and `ReadOnlySpan.Length` as "never negative"

* Updating the "is never negative" info to be tracked in LclVarDsc

* Apply formatting patch

* Ensure lvIsNeverNegative is propagated to shadows

* Update src/coreclr/jit/gentree.h

Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>

* Responding to PR feedback

* Adding two asserts

* Rename GenTreeField::IsNeverNegative to IsSpanLength and add a comment

* Fix an assert

Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
…124.2 (#81161)

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.Build.Tasks.Feed , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.Build.Tasks.Packaging , Microsoft.DotNet.Build.Tasks.TargetFramework , Microsoft.DotNet.Build.Tasks.Templating , Microsoft.DotNet.Build.Tasks.Workloads , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.GenAPI , Microsoft.DotNet.GenFacades , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.PackageTesting , Microsoft.DotNet.RemoteExecutor , Microsoft.DotNet.SharedFramework.Sdk , Microsoft.DotNet.VersionTools.Tasks , Microsoft.DotNet.XUnitConsoleRunner , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23073.10 -> To Version 8.0.0-beta.23074.2

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…1099)

* DebugStore: factor common PE and Webcil reading logic

* Move common logic to a MetadataDebugSummary class

Also switch from cascade of 'if's to a 'switch' when looking at debug entries

* Implement PDB checksum reader for WebcilReader

* Move WebcilReader reflection to a helper; add lazy initialization

Co-authored-by: Ankit Jain <radical@gmail.com>
* Auto-generated changes for adding Vector512 in JitInterface.

* Additional Interface Changes.

* Updating JITEEVersionIdentifier.
@markples markples changed the title Update dotnet/main Merge from dotnet/main Jan 26, 2023
@markples markples closed this Jan 26, 2023
markples pushed a commit that referenced this pull request May 23, 2023
markples pushed a commit that referenced this pull request Jul 7, 2023
…tnet#87189)

This fixes a startup crash on Big Sur:

> error: * Assertion at /Users/runner/work/1/s/src/mono/mono/utils/mono-hwcap-arm64.c:35, condition `res == 0' not met

Because sysctl can't find some of these options:

    $ sysctl hw.optional.armv8_crc32
    hw.optional.armv8_crc32: 1
    $ sysctl hw.optional.arm.FEAT_RDM
    sysctl: unknown oid 'hw.optional.arm.FEAT_RDM'
    $ sysctl hw.optional.arm.FEAT_DotProd
    sysctl: unknown oid 'hw.optional.arm.FEAT_DotProd'
    $ sysctl hw.optional.arm.FEAT_SHA1
    sysctl: unknown oid 'hw.optional.arm.FEAT_SHA1'
    $ sysctl hw.optional.arm.FEAT_SHA256
    sysctl: unknown oid 'hw.optional.arm.FEAT_SHA256'
    $ sysctl hw.optional.arm.FEAT_AES
    sysctl: unknown oid 'hw.optional.arm.FEAT_AES'

Full stack trace:

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
  * frame #0: 0x0000010ef37560 libmonosgen-2.0.dylib`monoeg_assertion_message
    frame #1: 0x0000010ef375cc libmonosgen-2.0.dylib`mono_assertion_message + 32
    frame #2: 0x0000010ef40d6c libmonosgen-2.0.dylib`mono_hwcap_arch_init + 544
    frame #3: 0x0000010ef54bd8 libmonosgen-2.0.dylib`mono_hwcap_init + 72
    frame dotnet#4: 0x0000010ee14dc0 libmonosgen-2.0.dylib`parse_optimizations + 52
    frame dotnet#5: 0x0000010edbed48 libmonosgen-2.0.dylib`mono_init
    frame dotnet#6: 0x0000010ee18968 libmonosgen-2.0.dylib`mono_jit_init_version
    frame dotnet#7: 0x0000010f48a300 libxamarin-dotnet-debug.dylib`xamarin_bridge_initialize + 216
    frame dotnet#8: 0x0000010f4900a4 libxamarin-dotnet-debug.dylib`xamarin_main + 376
trylek pushed a commit that referenced this pull request Aug 21, 2023
markples pushed a commit that referenced this pull request Nov 15, 2023
…tnet#90436)

* Enable IL trim for WASM by default

* Make ILStrip available for local build

* Make all calling another method go through the logic to see if it could call an AOT'ed version of it before trying to interp compile it

* Add back accidentally removed line of code

* Update test to accommodate IL trim with WASM AOT

* Move jit_call_can_be_supported to mini-runtime, so it doesn't depends on the value of mono_use_interpreter

* Update var name

* Attempt to fix rebuild test failures

* Attempt to fix the file open issue with unicode on windows

* Attempt to fix unicode issue #2

* Enable g_fopen to have the capability of handling opening files with unicode name on all platforms

* Add comment

* Update comment

* Fix file indentation format

* Check if string contains non-ascii char

* Remove unused callback

* Remove redundant comment

* Update method name

* Fixed some method not found issues and remove the optimization for g_fopen

* Fix tailcall

* Disable tailcall optimization when calling a trimmed method

* Free method header

* Fix windows build error

* Free method header at the correct locatioin

* Fix the condition of skipping tailcall

* Fix test failure

* Move JIT/AOT call invoke away from MINT_CALL, as it is not needed there.

* Fix virtual tail call

* Address review feedback

* Put the trimmed assemblies in a new folder, output an updated list of assemblies and update _WasmAssembliesInternal with the new list

* Put trimmed assemblies in IntermediateOutputPath

* Remove TrimmedAssemblies

* Create trimmed assembly folder before the parallel run

* Try to fix the issue with missing item

* Fix parallelism issue

* Only start the trim when the assembly is newer than the output

* Add assembly item to the list, when

* Add some logging

* Fixed runtimeconfig.json file path issue and disabed failed tests

* Update parameter name

* Fix wasi build

* Use the correct parameter

* Fix runtime test failure

* WasmAppBuilder: runtimeconfig.json path can be null

* cleanup

* ILStrip: fix typo in id name

* Cleanup

* ILStrip: ensure output assemblies are in the same order as the input. This is required for incremental builds.

* more cleanup

* Re-enable disabled tests

* Change the default value for WasmStripILAfterAOT to false

* Fix the issue with changing the value of WasmStripILAfterAOT between incremental builds

* Move the location of file deleting

* Use WasmAssembliesFinal or ResolvedFileToPublish during publish in WasmSDK

* Copy metadata in AOT compiler and when creating WasmAssembliesToBundle from ResolvedFileToPublish

* Add _WasmSatelliteAssemblies to WasmAssembliesFinal

* Add a wasm template test

* Include all non-dll ResolvedFileToPublish for ComputeWasmPublishAssets

* Add a blazor template test

* Address review feedback

* Update src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs

Co-authored-by: Ankit Jain <radical@gmail.com>

* Update parameter name

* Update usage of parameter

* Revert EmccCompile change

* MonoAOTCompiler: revert rebuilding when WasmStripILAfterAOT value changes

* Compress -> GZipCompress, and cleanup

* rework the tests

- to support webcil case
- run blazor app
- add cases for the default setting, and the opposite
- cleanup

* ILStrip.cs: Emit a message about stripping to make it obvious to the user

* WasmApp.targets: update comment

* Change default value to false and update test

---------

Co-authored-by: Ankit Jain <radical@gmail.com>
Co-authored-by: Marek Fišera <mara@neptuo.com>
markples pushed a commit that referenced this pull request Dec 11, 2023
Fixes dotnet#95367.

Relevant part of the JitDump:

```
Using `if true` assertions from pred BB02
Assertions in: #1
fgMorphTree BB04, STMT00021 (before)
               [000070] DA---------                         *  STORE_LCL_VAR ubyte  V10 tmp9
               [000057] -----------                         \--*  CAST      int <- ubyte <- int
               [000006] -----------                            \--*  EQ        int
               [000004] -----------                               +--*  LCL_VAR   ref    V02 tmp1          (last use)
               [000055] H----------                               \--*  CNS_INT(h) ref     'Frozen EmptyPartition`1<Int32> object'

Assertion prop for index #1 in BB04:
               [000006] -----------                         *  EQ        int
GenTreeNode creates assertion:
               [000070] DA---+-----                         *  STORE_LCL_VAR ubyte  V10 tmp9
In BB04 New Local Constant Assertion: V10 == [0000000000000001], index = #2

fgMorphTree BB04, STMT00021 (after)
               [000070] DA---+-----                         *  STORE_LCL_VAR ubyte  V10 tmp9
               [000055] H----+-----                         \--*  CNS_INT(h) int
```

The JitDump is unfinished because the compiler crashes when trying to dump the last line. Clearly, the `CNS_INT` is no longer a handle at that point because we just bashed it to a constant 1.
markples pushed a commit that referenced this pull request Feb 22, 2024
…tnet#95292)

* Add IndentText json option

* Add IndentText for json source generator

* Add tests

* IndentText must be non-nullable

* Improve performance

* Add extra tests

* Cleanup

* Apply suggestions from code review

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>

* Fixes following code review

* Fixes following code review #2

* Add tests for invalid characters

* Handle RawIndent length

* Move all to RawIndentation

* Update documentation

* Additional fixes from code review

* Move to the new API

* Extra fixes and enhancements

* Fixes from code review

* Avoid introducing extra fields in JsonWriterOptions

* Fix OOM error

* Use bitwise logic for IndentedOrNotSkipValidation

* Cache indentation options in Utf8JsonWriter

* Add missing test around indentation options

* New fixes from code review

* Update src/libraries/System.Text.Json/src/System/Text/Json/Writer/Utf8JsonWriter.cs

* Add test to check default values of the JsonWriterOptions properties

* Fix comment

---------

Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
markples pushed a commit that referenced this pull request Jul 29, 2024
* [wasm] Bump emscripten to 3.1.56

* Replace Module.asm with Module.wasmExports

Module.asm was removed, use wasmExports instead.
Context: emscripten-core/emscripten#19816

* Updates for .native.worker.js -> mjs rename

Context: emscripten-core/emscripten#21041

* Update deps

* Add general testing feed

* Update mode deps

* Update path

* Use current python packages for now, we don't have newer ones

The current names 3.1.34 are new enough

* Keep using llvm 16 for runtime and aot compiler

* Add -Wno-pre-c11-compat only for browser

* Temporarily disable version checks to get further

* Temporarily disable version checks to get further #2

* Disable -Wunused-command-line-argument

* Update emsdk deps

* Update icu dependency

* Revert "Temporarily disable version checks to get further #2"

This reverts commit 3f8834f.

* Revert "Temporarily disable version checks to get further"

This reverts commit fe1e5c6.

* Fix emsdk check

We use system python on osx too

* Workaround wasm-opt crash

* Workaround wasm-opt crash

* Workaround wasm-opt crash

* Fix WBT test

* Feedback

* Update ICU dependency

* Update emscripten deps

* Revert "Workaround wasm-opt crash"

This reverts commit 200cf3b.

* Revert "Workaround wasm-opt crash"

This reverts commit 4530edf.

* Revert "Workaround wasm-opt crash"

This reverts commit 3593c41.

* Increase tests timeout

* Show test progress

* Increase MT library tests timeout

* Disable WBT tests with SkiaSharp

* Increase helix tests timeout on browser

* Increase WBT timeout

* Increase initial heap sizes

* Fix mono_wasm_load_runtime cwrap signature

Fixes: `Uncaught ExitStatus: Assertion failed: stringToUTF8Array expects a string (got number)`

* Enable XunitShowProgress for threading tasks tests

* Try to reduce number of parallel AOT compilations

To check whether it will improve memory issues on CI

* Use new docker image for helix/windows tests

* Revert "Try to reduce number of parallel AOT compilations"

This reverts commit 5d9a6d2.

* Reduce the timeouts

* Reduce intitial heap size

* use active issues for MT

* Remove testing channel from nuget config, update deps

* Update emsdk and icu dependencies

---------

Co-authored-by: Larry Ewing <lewing@microsoft.com>
Co-authored-by: pavelsavara <pavel.savara@gmail.com>
markples pushed a commit that referenced this pull request Sep 12, 2024
* bug #1: don't allow for values out of the SerializationRecordType enum range

* bug #2: throw SerializationException rather than KeyNotFoundException when the referenced record is missing or it points to a record of different type

* bug #3: throw SerializationException rather than FormatException when it's being thrown by BinaryReader (or sth else that we use)

* bug dotnet#4: document the fact that IOException can be thrown

* bug dotnet#5: throw SerializationException rather than OverflowException when parsing the decimal fails

* bug dotnet#6: 0 and 17 are illegal values for PrimitiveType enum

* bug dotnet#7: throw SerializationException when a surrogate character is read (so far an ArgumentException was thrown)
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.