Initializing Nasal early: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 50: Line 50:
     |author=<nowiki>Philosopher</nowiki>
     |author=<nowiki>Philosopher</nowiki>
     |date=<nowiki>Sun Jul 06</nowiki>
     |date=<nowiki>Sun Jul 06</nowiki>
  }}
}}
{{FGCquote
  |Given my recent "FGCanvas" experiments (making ~60% of the subsystems optional), and successes there, I'd probably consider handing off control to a hard-coded Nasal script in FGNasalSys, even though we could make the file-name property-configurable, whereas it would default to something like "default.boot". <br/>
<br/>
That would allow us to easily use --prop{{=}} (or a dedicated '''--mode{{=}}''') parameter to override the bootstrapping script. <br/>
Once that is place, we could also move certain fg_init.cxx logic to Nasal space by using Zakalawe's add-subsystem/remove-subsystem fgcommands, which I already started extending to allow subsystems to be registered as SGSubsystemGroup instead of "just" SGSubsystem - which allows us to use groups as "containers" for specific subsystems, like "aircraft" (fdm, autopilot, route  manager etc) or "audio" (fgcom, sound, voice). Making these entirely optional and runtime-configurable is becoming much more straightforward that way - also, because all the reset/re-init logic can be moved to each groups postinit/reinit methods.<br/>
<br/>
Conceptually, that's straightforward to do, and apart from supporting different startup modes, we could even support "applications", i.e. stuff  like running just the REPL, or just a canvas-map, or even just the Aircraft Center eventually.<br/>
<br/>
So, I'd prefer to load a single property-defined Nasal script and delegate control to it in FGNasalSys:init(), so that we can handle both there, nasal bootstrapping, but also subsystems at some point.
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=214423#p214423
    |title=<nowiki>Re: Modular Nasal bootstrapping (again)</nowiki>
    |author=<nowiki>Hooray</nowiki>
    |date=<nowiki>Wed Jul 09</nowiki>
   }}
   }}
}}
}}

Navigation menu