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

Add Method Scanner #50

Open
mosa opened this issue May 26, 2014 · 4 comments
Open

Add Method Scanner #50

mosa opened this issue May 26, 2014 · 4 comments

Comments

@mosa
Copy link
Collaborator

mosa commented May 26, 2014

The method scanner only compiles methods that are actually by the application. Also, called "tree shake".

Reducing the number of method required to compile an application can significantly shorten the compilation time and memory requirements.

It will also be valuable for low memory platforms.


Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

@mosa mosa added the Feature label May 26, 2014
@charsleysa
Copy link
Member

I think this feature should only be used in environments which will have no reflection / dynamic method calls / post OS-compilation libraries and drivers as this will break functionality.

@tgiphil tgiphil modified the milestones: 1.3 ARM Platform Support, 1.3 - Release, 1.4 - ARM Platform Support May 26, 2014
@charsleysa charsleysa modified the milestones: 1.5 - Release, 1.6 - ARM Platform Support Jul 17, 2015
@tgiphil tgiphil modified the milestones: 1.7 - Release, 1.6 - Release Dec 10, 2015
@tgiphil tgiphil modified the milestones: 1.9 Release, 1.8 - Release Jul 25, 2017
@tgiphil tgiphil modified the milestones: 1.9 Release, Future Aug 19, 2017
@tgiphil tgiphil self-assigned this Jan 19, 2019
@tgiphil tgiphil modified the milestones: Future, 2.0 Release Jan 19, 2019
@tgiphil tgiphil changed the title Add method scanner Add Method Scanner Jan 19, 2019
@tgiphil
Copy link
Member

tgiphil commented Jan 19, 2019

Tasks [incomplete]:

  1. Track which types are allocated (via new).
  2. Track which static and virtual methods are used.

x. Skip emitting RTTI & reflection metadata when type (and derived type) is never allocated, or method never called.

@tgiphil
Copy link
Member

tgiphil commented Apr 5, 2019

Nearly complete; working on edge cases related to interfaces and method references.

@tgiphil
Copy link
Member

tgiphil commented May 17, 2023

+HELP WANTED:

It's been a few years since this was implemented. It would be valuable to enable the feature and report back on any errors, and troubleshoot and fix them as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Status: In Progress
Status: Todo
Development

No branches or pull requests

2 participants