xamarin-macios/tools/linker
Rolf Bjarne Kvinge b131a54be5
[static registrar] Optimize creation of delegates for blocks. (#3623)
* [static registrar] Optimize creation of delegates for blocks.

Optimize creation of delegates for blocks so that it doesn't require the
dynamic registrar.

This is done by getting the metadata token for the Create method that creates
the delegate, and embed that metadata token in the generated code from the
static registrar.

Also add tests, since this scenario was not covered by tests already.

* [mmptest] Fix test after recent changes.

* [test-libraries] Avoid duplicate symbols.

* [tests] Update according to changes.
2018-03-02 14:30:18 +01:00
..
Descriptors [linker] Update mscorlib.xml to preserve generic collection interfaces. Fixes #50290 (#1384) (#1427) 2017-01-03 13:03:29 -05:00
MonoTouch.Tuner [linker] Take extra care to avoid 32/64 bits specific mscorlib.dll (#3532) 2018-02-19 19:16:17 -05:00
ApplyPreserveAttribute.cs [linker] Remove static state, and put the state inside DerivedLinkContext instead. (#1657) 2017-02-10 07:45:42 +01:00
BaseProfile.cs Build mmp. 2016-04-24 14:47:26 -04:00
ChangeLog Build mmp. 2016-04-24 14:47:26 -04:00
CoreHttpMessageHandler.cs PMCS Removal (#3197) 2018-02-05 10:26:29 -05:00
CoreMarkStep.cs [static registrar] Optimize creation of delegates for blocks. (#3623) 2018-03-02 14:30:18 +01:00
CoreOptimizeGeneratedCode.cs [ObjCRuntime] BlockLiteral.GetBlockForDelegate must be optimizable because it calls Runtime.DynamicRegistrationSupported. 2018-02-15 15:58:02 +01:00
CorePreserveCode.cs Build mmp. 2016-04-24 14:47:26 -04:00
CoreRemoveAttributes.cs [mtouch/mmp] Register complete protocol information in the static registrar, and link away unneeded metadata/code. 2018-02-12 14:46:01 +01:00
CoreRemoveSecurity.cs Build mmp. 2016-04-24 14:47:26 -04:00
CoreSweepStep.cs [linker] Find linked away interfaces when resolving removed interfaces. Fixes #3513. (#3515) 2018-02-19 11:36:38 +01:00
CoreTypeMapStep.cs [mtouch] Propagate the computed value for removal of the dynamic registrar to code shared app extensions. (#3622) 2018-03-01 14:59:54 +01:00
ExceptionalSubStep.cs [linker] Remove static state, and put the state inside DerivedLinkContext instead. (#1657) 2017-02-10 07:45:42 +01:00
MarkNSObjects.cs [linker] Remove static state, and put the state inside DerivedLinkContext instead. (#1657) 2017-02-10 07:45:42 +01:00
MobileExtensions.cs [static registrar] Optimize creation of delegates for blocks. (#3623) 2018-03-02 14:30:18 +01:00
MobileMarkStep.cs [linker] Mark all TypeConverter if TypeDescriptor is used. Fixes #3372 (#3396) 2018-02-05 21:19:46 -05:00
MobileProfile.cs [Do not merge yet] Update to mono 2017-04 branch (#1960) 2017-05-29 18:39:29 +02:00
MobileRemoveAttributes.cs Build mmp. 2016-04-24 14:47:26 -04:00
MobileResolveMainAssemblyStep.cs Bump to mono:2017-12 (#3421) 2018-02-14 11:08:01 -05:00
MobileSweepStep.cs Merge pull request #3462 from rolfbjarne/optimized-protocol-support 2018-02-14 17:47:31 +01:00
ObjCExtensions.cs [linker] Improve inlining of IsDirectBinding check to inline both true and false values. (#3214) 2018-01-15 12:28:34 +01:00
README.linker Build mmp. 2016-04-24 14:47:26 -04:00
RemoveSelectors.cs [macos][mmp] Fix RemoveSelectors when generics are used, Fix #55693 (#2104) 2017-05-18 08:45:23 -04:00
RemoveUserResourcesSubStep.cs [mtouch][mmp] Unify user resources removal as a link step (#1026) 2016-11-01 13:11:25 -04:00

README.linker

README.linker

Q: Why some stuff is not linked out ?

A: In most case this is because:
	a) the BCL uses it internally
	b) the mono runtime depends on the type, methods, class layout


= mscorlib.dll =

System.Security.PermissionSet
	* Assembly has (3) fields of that type
	* mscorlib.xml preserve all fields from Assembly (object-internals.h)
	* code is "stubified" by the linker
System.Security.Policy.ApplicationTrust: 
	* Used as a field in AppDomainSetup;
	* Field also exists in unmanaged code (domain-internals.h);
	* mscorlib.xml preserve all fields from AppDomainSetup
	* only the default .ctor remains and is stubified by the linker
System.Security.Policy.Evidence
	* Used by AppDomain.Load[Assembly]
	* Used by Assembly.LoadWithPartialName overloads
	* code is "stubified" by the linker


= System.dll =

System.Text.RegularExpressions.*
	* Included because there is 2 regex in UriParser