Skip to content
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

Dotnet runtime master ingestion into Utf8String experiment #17

Merged
merged 182 commits into from
Jul 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
fc56772
[interp] Add intrinsics for some common operations (#38809)
BrzVlad Jul 13, 2020
b182639
Fold "cns_str"[cns_index] to ushort constant (#37226)
EgorBo Jul 13, 2020
7b23643
WinHttpHandler supports multiple HTTP/2 connections per server (#38758)
alnikola Jul 13, 2020
0d531a7
Update deep-dive-blog-posts.md
stephentoub Jul 13, 2020
9f12cf7
Fix codepoint splitting in email headers (#39072)
CarnaViire Jul 13, 2020
32e3e11
Add some edge case tests for Array.CreateInstance and fix Mono handli…
hughbe Jul 13, 2020
2d9dbbb
[browser][wasm][tests] JavaScript Interop Marshal tests (#38917)
kjpou1 Jul 13, 2020
7b2e585
Add Enum generic overloads (#33589)
hughbe Jul 13, 2020
371ae3c
enable GS Cookie on OSX (#39143)
VSadov Jul 13, 2020
c21a387
Add always trimmed attributes list for browser config (#39000)
marek-safar Jul 13, 2020
d44d638
Support reseolve reference for typeof(object) on deserialize (#38979)
jozkee Jul 13, 2020
d9a7d8f
[Arm64] ASIMD DotProduct and Rounding Double Multiply Add/Subtract (#…
echesakov Jul 13, 2020
fff0ec3
Add space after "Other" in OperatingSystem.VersionString (#39180)
akoeplinger Jul 13, 2020
927ced1
[wasm] Addressing System.Runtime.Extensions failures (#38996)
mdh1418 Jul 13, 2020
48cd478
Add documentation about libraries features switches (#39200)
marek-safar Jul 13, 2020
afdd38c
Inlined GC Polls for call to methods with SuppressGCTransitionAttribu…
erozenfeld Jul 14, 2020
8892364
Added field support to JSON serializer (#36986)
YohDeadfall Jul 14, 2020
2287fe5
Fix ManagedWebSocket ordering of releasing send buffer and semaphore …
stephentoub Jul 14, 2020
a00b1e2
add write queue to Http2Connection to optimize write handling (#39166)
geoffkizer Jul 14, 2020
ee99e9c
Run CoreCLR runtime tests using Mono with LLVM AOT. (#38547)
imhameed Jul 14, 2020
0a30f09
Add NeutralResourcesLanguageAttribute to corefx libraries (#39135)
tarekgh Jul 14, 2020
99bbb19
Portable PDB support for ilasm (#37702)
ivanpovazan Jul 14, 2020
8c69519
Adding LinkedListNode<T>.ValueRef (#39236)
tannergooding Jul 14, 2020
a1274d4
Remove System.Reflection.DispatchProxy package (#39220)
ericstj Jul 14, 2020
8391d21
Allow platform-specific attributes on Fields (#39214)
jeffhandley Jul 14, 2020
4697d9b
WASM: Disable thread related tests on System.IO.Compression (#39231)
akoeplinger Jul 14, 2020
1862566
WASM: Disable tests in System.ComponentModel.Annotations that rely on…
akoeplinger Jul 14, 2020
b44daef
WASM: Fix System.Diagnostics.TraceSource tests (#39224)
akoeplinger Jul 14, 2020
cd4157f
WASM: Add PNSE for System.Net.NameResolution and disable tests (#39219)
akoeplinger Jul 14, 2020
af828ae
WASM: Disable tests on System.Diagnostics.StackTrace that fail (#39226)
akoeplinger Jul 14, 2020
d5245a3
[wasm] Enable System.Net.Http.Unit test suite (#39181)
MaximLipnin Jul 14, 2020
cf77415
[wasm] Address System.Runtime.InteropServices failures on Browser (#3…
mdh1418 Jul 14, 2020
4c3dda5
[wasm] Address System.Runtime.Loader.DefaultContext failure (#39204)
mdh1418 Jul 14, 2020
6ecbb4d
[wasm] Enable System.Runtime.Serialization.Json test suite (#39193)
MaximLipnin Jul 14, 2020
e815d2c
[wasm] Enable System.Runtime.Serialization.Xml and System.Runtime.Ser…
MaximLipnin Jul 14, 2020
078755e
[wasm] Fail right away in interp_create_method_pointer () when trying…
vargaz Jul 14, 2020
962e911
Keep weak gc handle for EventPipe delegate callback in provider. (#39…
lateralusX Jul 14, 2020
5a18950
Fix DebuggerTypeProxy on ObjectCollection (#39234)
eerhardt Jul 14, 2020
10af8ed
WinHttpHandler multiple HTTP/2 connections test is skipped on older W…
alnikola Jul 14, 2020
a84538d
Socket's connect operations tracing (#38620)
alnikola Jul 14, 2020
dfdcdb7
WASM: Disable System.Net.Primitives.Pal.Tests.csproj (#39272)
akoeplinger Jul 14, 2020
ecdf9de
[wasm] Enable System.Runtime.Serialization.Primitives test suite (#39…
MaximLipnin Jul 14, 2020
d8a0af0
WASM: Disable two GetFunctionPointerForDelegate tests (#39278)
akoeplinger Jul 14, 2020
aa667de
WASM: Fix System.Diagnostics.Tracing (#39271)
akoeplinger Jul 14, 2020
018c8fb
[master] Update dependencies from mono/linker dotnet/runtime-assets d…
dotnet-maestro[bot] Jul 14, 2020
e94cd90
Adding attribute keyword to all the attributes in the ref (#39255)
Anipik Jul 14, 2020
2c573b5
add OSPlatform.macOS, switch to OrdinalIgnoreCase for OSPlatform comp…
adamsitnik Jul 14, 2020
7006ff2
don't aquite lock when calling RuntimeInformation.OSArchitecture and …
adamsitnik Jul 14, 2020
d12afc4
improve diag for GetNetworkInterfaces failures (#39252)
wfurt Jul 14, 2020
4489582
Add NoInterpreter filter back (#39131)
DrewScoggins Jul 14, 2020
a9b1173
WASM: Fix System.Diagnostics.TextWriterTraceListener tests (#39186)
akoeplinger Jul 14, 2020
0fecc40
[Wasm] Disable System.Linq.Parallel test suite (#39305)
steveisok Jul 14, 2020
328d0cf
add ServerOptionsSelectionCallback to SslStream (#38760)
wfurt Jul 14, 2020
a9a98af
Fix build break by adding new package version for DependencyModel (#3…
eerhardt Jul 14, 2020
74be072
Add sleep before looking for dump (#39217)
danmoseley Jul 14, 2020
60f12fe
[wasm] Restrict the changes in mono/mono#20113 to netcore only. (#39267)
monojenkins Jul 14, 2020
43b2578
[Arm64] ASIMD StorePair StorePairNonTemporal (#39240)
echesakov Jul 14, 2020
142021c
Preserve DebuggerTypeProxyAttribute classes (#39126)
eerhardt Jul 14, 2020
d9b7f4e
WASM: Fix System.IO.FileSystem.DriveInfo and Microsoft.VisualBasic.Co…
akoeplinger Jul 14, 2020
63b639b
Delete APM fallback from Socket task operations (#39248)
stephentoub Jul 14, 2020
21cad60
JIT: Don't emit some unnecessary tests (#38586)
nathan-moore Jul 14, 2020
4a0bc02
WASM: run tests on CI only in rolling and/or when libraries/tests.pro…
safern Jul 14, 2020
9057343
[wasm] Address System.Runtime.Loader failures (#39306)
mdh1418 Jul 14, 2020
5cef42e
Assembly.Location should return empty string for assemblies loaded fr…
vitek-karas Jul 14, 2020
7f7e795
2 small cleanup: 2 printf formatiing typos and 1 function header. (#3…
Jul 14, 2020
ee41d4a
Fix TestOnStartWithArgsThenStop and make service tests more reliable …
danmoseley Jul 15, 2020
b032a4d
Disable libraries tailcallstress testing on Linux arm32 (#39317)
BruceForstall Jul 15, 2020
055c3fc
[crossgen2] Use Alignment to calculate class Offset (#38962)
t-mustafin Jul 15, 2020
b6d428c
Add TryReadTo(out ReadOnlySpan<T> span, ReadOnlySpan<T> delimiter (#3…
benaadams Jul 15, 2020
3fc9408
Struct, arg and float reg cleanup (#39284)
CarolEidt Jul 15, 2020
ff98a5d
Update Mono's implementation of Vector<T> intrinsics. (#39322)
imhameed Jul 15, 2020
b7c4cb7
Add NetFramework Configurations to OOB packages (#39099)
joperezr Jul 15, 2020
b895666
Improve Activity API usability and OpenTelemetry integration (Part 2)…
tarekgh Jul 15, 2020
a4065df
Disable System.Net.HttpListener.Tests for TailcallStress (#39315)
BruceForstall Jul 15, 2020
60ccaa8
PAL_VirtualUnwindOutOfProc for MacOS (#39213)
mikem8361 Jul 15, 2020
c80cc2a
[wasm] Fix the propagation of exceptions through runtime invokes. (#3…
monojenkins Jul 15, 2020
324c6c7
Obsolete BinaryFormatter.Serialize and BinaryFormatter.Deserialize (#…
GrabYourPitchforks Jul 15, 2020
37cf387
Disallow unrestricted polymorphic deserialization in DataSet (#39304)
GrabYourPitchforks Jul 15, 2020
420e4e2
Fix location of gcdump test (#39057)
hoyosjs Jul 15, 2020
5929baa
WASM: Enable System.Memory tests (#39319)
akoeplinger Jul 15, 2020
08643df
[master] Update dependencies from mono/linker dotnet/icu (#39286)
dotnet-maestro[bot] Jul 15, 2020
1bdcd66
Add loader heap enumeration api's (ICorDebugProcess11) (#39124)
hoyosjs Jul 15, 2020
23acac8
Thumb2 uses the Arm registers (#39318)
davidwrighton Jul 15, 2020
0e7720c
Add .cfi annotation to CONTEXT_CaptureContext and RtlCaptureContext (…
janvorli Jul 15, 2020
83a15e3
[wasm] Remove ActiveIssue for issue #38337. Add a ConditionalFact ins…
vargaz Jul 15, 2020
7f53623
Add static one-shot hashing methods
vcsjones Jul 15, 2020
cd9b662
[Crossgen2] Add DelayLoadMethodCallThunks table, fix stack walks cont…
nattress Jul 15, 2020
c3a817e
Add PlatformNotSupportedException for Browser version of System.Net.S…
marek-safar Jul 15, 2020
cd8759d
Apply arm64 intrinsics to System.Text.Encodings.Web (#38707)
eiriktsarpalis Jul 15, 2020
78fb02b
Remove debug only attributes when Debugger.IsSupported is false. (#39…
eerhardt Jul 15, 2020
4cc3750
Generate only unique entries in wasm pinvoke table generator (#39356)
marek-safar Jul 15, 2020
ef2ecfd
[interp] Intrinsify span ctor (#39195)
BrzVlad Jul 15, 2020
36a9444
Disable eventpipe/gcdump test against #39361 (#39362)
jkotas Jul 15, 2020
687177b
[wasm] Modify System.Net.Security to throw PNSE (#39358)
MaximLipnin Jul 15, 2020
69d98ee
Adds Console Log Formatting APIs (#38616)
maryamariyan Jul 15, 2020
345ab77
Fix up trimming tests for new SDK (#39334)
eerhardt Jul 15, 2020
e614176
Handle 'unmanaged' calling convention value (#39030)
elinor-fung Jul 15, 2020
db8d8e1
JIT: avoid crashing on unexpected types for brtrue/brfalse (#39312)
AndyAyersMS Jul 15, 2020
3a4a49b
Fix `ASG struct (copy)` with different src and dst sizes after global…
Jul 15, 2020
fa8de89
exception from PerformWriteAsync should be asynchronous (#39325)
geoffkizer Jul 15, 2020
60cd838
Make IgnoreNullValues apply only to reference types (#39147)
layomia Jul 15, 2020
4e1ada2
[mono] Improve RuntimeConstructorInfo.ToString (#38451)
alexischr Jul 15, 2020
5fbcb38
Fix `fgOptimizeBranch` when run late. (#39320)
erozenfeld Jul 15, 2020
7f34be5
Apply CA2016: Forward CancellationToken to methods that can take it (…
carlossanlop Jul 15, 2020
46ca4d7
WASM: Fix System.IO.MemoryMappedFiles tests (#39355)
akoeplinger Jul 15, 2020
a336c9e
[Test] EventPipe test enhancements (#39212)
Jul 15, 2020
afc67c8
Make CreateHMAC(ReadOnlySpan<byte> key) public.
vcsjones Jul 15, 2020
64c9e7c
Move wasm queue to one that has more capacity and condition it (#39373)
safern Jul 15, 2020
69b0d16
Vxsort (#37159)
PeterSolMS Jul 15, 2020
48290f7
Quiet crossgen2 output (#39340)
davidwrighton Jul 15, 2020
059782e
Fix 2 noRetypingRegressions. (#39345)
Jul 15, 2020
a4051a5
use new API on new windows to get TLS13 (#37888)
wfurt Jul 15, 2020
246b729
Micro optimizations for serialization (#39323)
steveharter Jul 15, 2020
38f6ebc
Allow ctor parameters to exactly match property name (#38959)
steveharter Jul 15, 2020
93d9049
Use more consistent manifest attributes (#39360)
mmitche Jul 15, 2020
dd2bcef
Move ICU dependency to product (#39382)
mmitche Jul 16, 2020
aff5cf7
Add support for GCPOLL_INLINE for crossgen (#39376)
jkotas Jul 16, 2020
950ef6f
Interpret DOTNET_BUNDLE_EXTRACT_BASE_DIR without dir separator as rel…
mateoatr Jul 16, 2020
9b3cbc4
Add JsonIgnoreCondition.WhenWritingNull (#39388)
layomia Jul 16, 2020
0554117
Introduce BinaryFormatter enablement switch; disable on wasm (#38963)
GrabYourPitchforks Jul 16, 2020
bf2e135
Fix source build (CLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE) (#39391)
mikem8361 Jul 16, 2020
a9f8d1d
update branding to rc1 (#39418)
Jul 16, 2020
48e94eb
Update dependencies from https://github.com/dotnet/arcade build 20200…
dotnet-maestro[bot] Jul 16, 2020
47a2b59
Fix non-windows test failure on Microsoft.Extensions.Hosting.HostTest…
maryamariyan Jul 16, 2020
df8d056
[wasm] Enable the library test suites that have no failures at the mo…
MaximLipnin Jul 16, 2020
84c1f62
Sprinkle SuppressGCTransition across Unix shim P/Invokes (#39206)
stephentoub Jul 16, 2020
84c2974
Allow building libs tests for all configurations (#38993)
ViktorHofer Jul 16, 2020
0bce280
Make ILBlittablePtrMarshaler participate in marshaller inheritance (#…
AaronRobinsonMSFT Jul 16, 2020
2bb1049
Improve SuppressGCTransitionAttribute docs (#39410)
jkotas Jul 16, 2020
8285abc
MemoryCache: Size calculation with expired Entries (#39189)
hiersekornc Jul 16, 2020
6ae5b38
Reduce allocations and P/Invokes in one-shot hashes
vcsjones Jul 16, 2020
dc8b6f9
Add RequiresUnreferencedCodeAttribute to CryptoConfig
bartonjs Jul 16, 2020
36e0e7d
Use implicit system configuration for EncryptionPolicy.RequireEncryption
tmds Jul 16, 2020
e708795
Fix crash on invariant mode when calling GetCultureInfo(name, true) (…
safern Jul 16, 2020
37b0805
Add one more -sroa pass for llvm-jit (#38659)
EgorBo Jul 16, 2020
995d41d
Bump Intellisense nupkg version to Prev7 (#39383)
carlossanlop Jul 16, 2020
23611e1
Remaining cleanup work on Microsoft.Extensions.Logging.Console (#39407)
maryamariyan Jul 16, 2020
234c68c
Mmap R2R images at and non-page-boundary (#38951)
VSadov Jul 16, 2020
f0a9953
Enable logging for CI runs (#39381)
billwert Jul 16, 2020
1acfcc7
Force bindingRedirect for System.Resources.Extensions (#39386)
ericstj Jul 16, 2020
1980315
Add logic for non-generic Stack/Queue to share add-method delegates (…
layomia Jul 16, 2020
ace324d
Add tests to ensure the right exception is thrown for an invalid toke…
jozkee Jul 16, 2020
7d5f717
Fix issue with Trimming tests on Windows (#39307)
joperezr Jul 16, 2020
0a3e24d
Make "services.ConfigureOptions" register validations (#38513)
loic-sharma Jul 16, 2020
b8634ec
Update API doc on AddSimpleConsole (#39426)
shirhatti Jul 16, 2020
423e164
WASM: enable System.Runtime.Tests (#39344)
safern Jul 16, 2020
c9627a1
Fix inadvertently case sensitive Boyer-Moore (#39420)
danmoseley Jul 16, 2020
9127eec
Throw when Rfc2898DeriveBytes extract limit has been exceeded
vcsjones Jul 16, 2020
aebe2e5
Add tests for runtimepack type RuntimeLibraries. (#37397)
rseanhall Jul 16, 2020
746fbba
Move libraries test build to product build (#39402)
safern Jul 16, 2020
32df157
AdvSimd support for System.Text.Unicode.Utf16Utility.GetPointerToFirs…
carlossanlop Jul 16, 2020
5c99007
ICU integration and asset loading overhaul (#37971)
kg Jul 16, 2020
211bc88
Adding support for constrained open generics to DI (#34393)
jbogard Jul 16, 2020
fd45f73
Removing unused Resources from System.Threading.Overlapped (#39395)
joperezr Jul 16, 2020
ef6c035
Linking native libraries into superhost (#38684)
VSadov Jul 16, 2020
4b05f76
Use one-shot hash functions where possible. (#39455)
vcsjones Jul 17, 2020
7be6ec8
Disable System.Runtime tests that use binary formatter on wasm (#39487)
safern Jul 17, 2020
dd6efb1
Fix rare case of 'Reading is already in progress' after canceling ano…
BrennanConroy Jul 17, 2020
27629db
fix exception strings. (#39491)
mangod9 Jul 17, 2020
2b145d8
Fix Crossgen2 compilation in case input files are on different drives…
AntonLapounov Jul 17, 2020
a5ca174
Update MSBuild Traversal SDK that contains StopOnFirstFailure support…
safern Jul 17, 2020
4e51940
Ensure Firing Activity Stop event before setting the current Activity…
tarekgh Jul 17, 2020
bfc60d5
Address late feedback for #39320. (#39387)
erozenfeld Jul 17, 2020
689f459
remove ignored reference (#39459)
Anipik Jul 17, 2020
33946f2
Fix license header in gcpriv.h (#39496)
jkotas Jul 17, 2020
0a6acf3
Revert "Adding support for constrained open generics to DI (#34393)" …
maryamariyan Jul 17, 2020
95303f5
mark them as extensions methods in the src (#39498)
Anipik Jul 17, 2020
ed58235
fix build for netcoreapp3.0 (#39447)
eiriktsarpalis Jul 17, 2020
ecb231c
delete test project. (#39501)
Jul 17, 2020
2a1595e
Fix IsPrerelease condition to be aligned with rest of utf8string code…
Jul 17, 2020
52d4d8c
mark Windows-specific APIs as such (#39265)
adamsitnik Jul 17, 2020
90b9b54
Fix Mono RuntimeType to handle conversion between enums of same under…
lateralusX Jul 17, 2020
b182627
Add Record tests to NetFx (#39477)
steveharter Jul 17, 2020
34e5c24
[Wasm] Additional signatures for SkiaSharp interop + More (#39494)
monojenkins Jul 17, 2020
1d70d34
Stop gating HelixPreCommands behind an always-false conditional. (#38…
directhex Jul 17, 2020
c5d6089
[wasm] Enable System.Resources.Extensions.Tests and System.Resources.…
MaximLipnin Jul 17, 2020
085a4bf
Add a --enable-minimal=eventpipe configure option. Disable eventpipe …
vargaz Jul 17, 2020
ba40348
Small performance improvment (#38485)
Youssef1313 Jul 17, 2020
7cc8737
Disable Add_TakeFromAnotherThread_ExpectedItemsTaken for TailcallStre…
BruceForstall Jul 17, 2020
940c49e
Add telemetry to System.Net.NameResolution (#38409)
MihaZupan Jul 17, 2020
b1902db
Fix libraries run-test-job dependencies (#39536)
safern Jul 17, 2020
cd23211
Merge dotnet/runtime 'master' branch into Utf8String
joperezr Jul 17, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions THIRD-PARTY-NOTICES.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -860,3 +860,28 @@ The above copyright notice and this permission notice shall be included in all c

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

License notice for vectorized sorting code
------------------------------------------

MIT License

Copyright (c) 2020 Dan Shechter

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

1 change: 1 addition & 0 deletions docs/deep-dive-blog-posts.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- [Performance improvements in .NET Core 2.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core/)
- [Performance improvements in .NET Core 2.1](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-2-1/)
- [Performance improvements in .NET Core 3.0](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/)
- [Performance improvements in .NET 5](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/)


### Posts that take a high-level look at the entire source:
Expand Down
1 change: 1 addition & 0 deletions docs/project/list-of-obsoletions.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ Currently the identifiers `MSLIB0001` through `MSLIB0999` are carved out for obs
| :--------------- | :---------- |
| __`MSLIB0001`__ | The UTF-7 encoding is insecure and should not be used. Consider using UTF-8 instead. |
| __`MSLIB0002`__ | `PrincipalPermissionAttribute` is not honored by the runtime and must not be used. |
| __`MSLIB0003`__ | `BinaryFormatter` serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for recommended alternatives. |
57 changes: 57 additions & 0 deletions docs/workflow/trimming/feature-switches.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Libraries Feature Switches

Starting with .NET 5 there are several [feature-switches](https://github.com/dotnet/designs/blob/master/accepted/2020/feature-switch.md) available which
can be used to control the size of the final binary. They are available in all
configurations but their defaults might vary as any SDK can set the defaults differently.

## Available Feature Switches

| MSBuild Property Name | AppContext Setting | Description |
|-|-|-|
| DebuggerSupport | System.Diagnostics.Debugger.IsSupported | Any dependency that enables better debugging experience to be trimmed when set to false |
| EnableUnsafeUTF7Encoding | System.Text.Encoding.EnableUnsafeUTF7Encoding | Insecure UTF-7 encoding is trimmed when set to false |
| EnableUnsafeBinaryFormatterSerialization | System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization | BinaryFormatter serialization support is trimmed when set to false |
| EventSourceSupport | System.Diagnostics.Tracing.EventSource.IsSupported | Any EventSource related code or logic is trimmed when set to false |
| InvariantGlobalization | System.Globalization.Invariant | All globalization specific code and data is trimmed when set to true |
| UseSystemResourceKeys | System.Resources.UseSystemResourceKeys | Any localizable resources for system assemblies is trimmed when set to true |
| - | System.Net.Http.EnableActivityPropagation | Any dependency related to diagnostics support for System.Net.Http is trimmed when set to false |

Any feature-switch which defines property can be set in csproj file or
on the command line as any other MSBuild property. Those without predefined property name
the value can be set with following XML tag in csproj file.

```xml
<RuntimeHostConfigurationOption Include="<AppContext-Setting>"
Value="false"
Trim="true" />
```

## Adding New Feature Switch

The primary goal of features switches is to produce smaller output by removing code which is
unreachable under feature condition. The typical approach is to introduce static bool like
property which is used to guard the dependencies which can be trimmed when the value is flipped.
Ideally, the static property should be located in type which does not have any static constructor
logic. Once you are done with the code changes following steps connects the code with trimming
settings.

Add XML settings for the features switch to assembly substitution. It's usually located in
`src/ILLink/ILLink.Substitutions.xml` file for each library. The example of the syntax used to control
`EnableUnsafeUTF7Encoding` property is following.

```xml
<method signature="System.Boolean get_EnableUnsafeUTF7Encoding()" body="stub" value="false" feature="System.Text.Encoding.EnableUnsafeUTF7Encoding" featurevalue="false" />
```

Add MSBuild integration by adding new RuntimeHostConfigurationOption entry. The file is located in
[Microsoft.NET.Sdk.targets](https://github.com/dotnet/sdk/blob/33ce6234e6bf45bce16f610c441679252d309189/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets#L348-L401) file and includes all
other public feature-switches. You can add a new one by simply adding a new XML tag

```xml
<RuntimeHostConfigurationOption Include="<AppContext-Setting>"
Condition="'$(<msbuild-property-name>)' != ''"
Value="$(<msbuild-property-name>)"
Trim="true" />
```

Please don't forget to update the table with available features-switches when you are done.
2 changes: 1 addition & 1 deletion eng/Analyzers.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
</PropertyGroup>
<ItemGroup Condition="'$(EnableAnalyzers)' == 'true'">
<PackageReference Include="Microsoft.DotNet.CodeAnalysis" Version="$(MicrosoftDotNetCodeAnalysisVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="3.3.0-beta1.20327.1" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="3.3.0-beta1.20355.1" PrivateAssets="all" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.164" PrivateAssets="all" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion eng/CodeAnalysis.ruleset
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@
<Rule Id="CA2013" Action="Warning" /> <!-- Do not use ReferenceEquals with value types -->
<Rule Id="CA2014" Action="Warning" /> <!-- Do not use stackalloc in loops. -->
<Rule Id="CA2015" Action="Warning" /> <!-- Do not define finalizers for types derived from MemoryManager<T> -->
<Rule Id="CA2016" Action="Info" /> <!-- Forward the 'CancellationToken' parameter to methods that take one -->
<Rule Id="CA2016" Action="Warning" /> <!-- Forward the 'CancellationToken' parameter to methods that take one -->
<Rule Id="CA2100" Action="None" /> <!-- Review SQL queries for security vulnerabilities -->
<Rule Id="CA2101" Action="None" /> <!-- Specify marshaling for P/Invoke string arguments -->
<Rule Id="CA2109" Action="None" /> <!-- Review visible event handlers -->
Expand Down
1 change: 1 addition & 0 deletions eng/Configurations.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
<NetCoreAppCurrentBrandName>.NET $(NetCoreAppCurrentVersion)</NetCoreAppCurrentBrandName>

<NetFrameworkCurrent>net472</NetFrameworkCurrent>
<MinimiumSupportedWindowsPlatform>WINDOWS7.0</MinimiumSupportedWindowsPlatform>
</PropertyGroup>

<!-- Honor the generic RuntimeConfiguration property. -->
Expand Down
100 changes: 50 additions & 50 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,63 +4,67 @@
<Uri>https://github.com/dotnet/standard</Uri>
<Sha>cfe95a23647c7de1fe1a349343115bd7720d6949</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.Runtime.ICU.Transport" Version="5.0.0-preview.8.20365.1">
<Uri>https://github.com/dotnet/icu</Uri>
<Sha>7247fa0d9e8faee2cceee6f04856b2c447f41bca</Sha>
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.ApiCompat" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.ApiCompat" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.GenFacades" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.GenFacades" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitConsoleRunner" Version="2.5.1-beta.20330.3">
<Dependency Name="Microsoft.DotNet.XUnitConsoleRunner" Version="2.5.1-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.VersionTools.Tasks" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.VersionTools.Tasks" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk" Version="5.0.0-beta.20330.3">
<Dependency Name="Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk" Version="5.0.0-beta.20364.3">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
<Sha>ff5d4b6c8dbdaeacb6e6159d3f8185118dffd915</Sha>
</Dependency>
<Dependency Name="optimization.windows_nt-x64.IBC.CoreFx" Version="99.99.99-master-20190716.1">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
Expand All @@ -86,41 +90,37 @@
<Uri>https://github.com/microsoft/vstest</Uri>
<Sha>b9296fc900e2f2d717d507b4ee2a4306521796d4</Sha>
</Dependency>
<Dependency Name="System.ComponentModel.TypeConverter.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.ComponentModel.TypeConverter.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.Drawing.Common.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.Drawing.Common.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.IO.Compression.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.IO.Compression.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.IO.Packaging.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.IO.Packaging.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.Net.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.Net.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.Private.Runtime.UnicodeData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.Private.Runtime.UnicodeData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.Security.Cryptography.X509Certificates.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.Security.Cryptography.X509Certificates.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="System.Windows.Extensions.TestData" Version="5.0.0-beta.20319.2">
<Dependency Name="System.Windows.Extensions.TestData" Version="5.0.0-beta.20360.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>629993236116221fba87fe1de6d7893dd02c3722</Sha>
</Dependency>
<Dependency Name="Microsoft.NETCore.Runtime.ICU.Transport" Version="5.0.0-preview.8.20359.5">
<Uri>https://github.com/dotnet/icu</Uri>
<Sha />
<Sha>b34a70799faa67f13c2e72852e4f3af463ff4d6c</Sha>
</Dependency>
<Dependency Name="runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk" Version="9.0.1-alpha.1.20356.1">
<Uri>https://github.com/dotnet/llvm-project</Uri>
Expand Down Expand Up @@ -182,9 +182,9 @@
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>0375524a91a47ca4db3ee1be548f74bab7e26e76</Sha>
</Dependency>
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="5.0.0-preview.3.20360.3">
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="5.0.0-preview.3.20363.5">
<Uri>https://github.com/mono/linker</Uri>
<Sha>095f30a37d740e5166d71ab2d2157c5bb2041efa</Sha>
<Sha>e76321851c05c5016df3d1243885c02e875b9912</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="1.0.0-prerelease.20352.3">
<Uri>https://github.com/dotnet/xharness</Uri>
Expand Down
Loading