Pass 1 — register each installer's declaration and assign its facade globals.
Order follows the manifest (introspection insertion-order preserved). Pure and
synchronous; registerGlobals writes are idempotent references.
Why the install facts are recorded HERE (socle-init 9.4)
This pass is the only place that sees every installer: Pass 2 skips those without a
createModule (5 of the 21 shipped ones), and it is itself conditional on the module
registry not being initialised yet. Recording hasModule there would answer "no module"
for a capability that has one, depending on when boot ran.
createModule is read as a field, never invoked — Pass 2 is the single caller, and a
second call would build a second module instance.
Pass 1 — register each installer's declaration and assign its facade globals. Order follows the manifest (introspection insertion-order preserved). Pure and synchronous;
registerGlobalswrites are idempotent references.Why the install facts are recorded HERE (socle-init 9.4)
This pass is the only place that sees every installer: Pass 2 skips those without a
createModule(5 of the 21 shipped ones), and it is itself conditional on the module registry not being initialised yet. RecordinghasModulethere would answer "no module" for a capability that has one, depending on when boot ran.createModuleis read as a field, never invoked — Pass 2 is the single caller, and a second call would build a second module instance.