/// <summary>
 /// Extends the compiler setup.
 /// </summary>
 public override void ExtendCompilerSetup()
 {
     CompilePipeline.Add(new ICompilerStage[] {
         new PlugStage(),
         new TypeInitializerSchedulerStage(),
         new MethodLookupTableStage(),
         new MethodExceptionLookupTableStage(),
         new MetadataStage(),
     });
 }
        /// <summary>
        /// Extends the compiler setup.
        /// </summary>
        public override void ExtendCompilerSetup()
        {
            var bootStage = CompilerOptions.BootStageFactory != null?CompilerOptions.BootStageFactory() : null;

            CompilePipeline.Add(new ICompilerStage[] {
                bootStage,
                new PlugStage(),
                new TypeInitializerSchedulerStage(),
                new MethodLookupTableStage(),
                new MethodExceptionLookupTableStage(),
                new MetadataStage(),
                new LinkerFinalizationStage(),
                CompilerOptions.MapFile != null ? new MapFileGenerationStage() : null
            });
        }