Bug 56022 - Improve the static registrar to generate code that does not need any reflection at runtime
Summary: Improve the static registrar to generate code that does not need any reflecti...
Alias: None
Product: iOS
Classification: Xamarin
Component: Tools (show other bugs)
Version: master
Hardware: PC Mac OS
: High enhancement
Target Milestone: 15.7
Assignee: Rolf Bjarne Kvinge [MSFT]
Depends on:
Blocks: 33863 43985 53207
  Show dependency tree
Reported: 2017-05-05 07:56 UTC by Rolf Bjarne Kvinge [MSFT]
Modified: 2018-01-05 14:27 UTC (History)
5 users (show)

See Also:
Is this bug a regression?: ---
Last known good build:


Description Rolf Bjarne Kvinge [MSFT] 2017-05-05 07:56:42 UTC
Currently we still do some reflection at runtime, even when the static registrar is used.

We can improve this to make all reflection unnecessary. In fact I believe it's possible to make it so that nothing is done at startup, all information needed at runtime is loaded when needed, and not before.

This will minimize the minimum memory requirements for our apps (the less we do the less memory we use), and also make startup faster.
Comment 1 Sebastien Pouliot 2017-05-15 19:01:41 UTC Comment hidden (obsolete)
Comment 2 Sebastien Pouliot 2017-05-15 19:04:06 UTC Comment hidden (obsolete)
Comment 3 Rolf Bjarne Kvinge [MSFT] 2017-09-15 11:54:24 UTC
Additionally try to make the dynamic registrar code linker-friendly (so that it's linked away).
Comment 4 Rolf Bjarne Kvinge [MSFT] 2017-09-21 08:36:57 UTC
A consequence of removing all needs for reflection would be that the linker would be able to remove the ProtocolMember attributes.
Comment 5 clintoncraigsmith 2017-10-03 19:10:55 UTC
Do we have an ETA for this ticket?
Comment 6 Rolf Bjarne Kvinge [MSFT] 2017-10-04 09:18:29 UTC
There's no firm ETA yet, but we're prioritizing it.

Unfortunately it's not a trivial fix, there's a fair amount of work required.
Comment 7 Sebastien Pouliot 2018-01-05 14:27:43 UTC
15.6 milestone turned out to be shorter than originally expected, new target is 15.7

Note You need to log in before you can comment on or make changes to this bug.