Bug 166 - Improve startup in Mono
Summary: Improve startup in Mono
Alias: None
Product: Runtime
Classification: Mono
Component: General ()
Version: unspecified
Hardware: PC Mac OS
: --- normal
Target Milestone: ---
Assignee: Paolo Molaro
Depends on:
Reported: 2011-08-03 16:41 UTC by Miguel de Icaza [MSFT]
Modified: 2013-05-15 22:33 UTC (History)
3 users (show)

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

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on GitHub or Developer Community with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description Miguel de Icaza [MSFT] 2011-08-03 16:41:54 UTC
Chris said he would look into this, I am filing the bug just in case he does not get around to it and so we do not forget.

mono/metadata/icall.c has a built-in validation of the icall table in mono_icall_init and it is supposed to be removed on each release.   To the best of my knowledge, this validation code has never ever been removed on a release.

The idea is to split this validation code into a separate file, and then in the makefile make sure that this program is both compiled and executed as part of the standard Mono build to ensure that the table is validated at compile time.
Comment 1 Miguel de Icaza [MSFT] 2011-11-24 01:36:10 UTC
Hey guys,

Could you guys look at this startup optimization?

We should do this validation at build time, as a program that tests that the table is correctly sorted during the build process, and remove this from the Mono startup.

As far as I can tell, we have never disabled this code before a release (that is what it was supposed to be done, we just never have).  Since we have such a bad track record of this, it is time to move this test elsewhere
Comment 2 Zoltan Varga 2011-11-24 01:50:29 UTC
I ran startup profiling many times, and this check never showed up on any of them.
Comment 3 Rodrigo Kumpera 2013-05-15 22:33:18 UTC
Doesn't sound like it's worth working on.