起動時処理フロー

Title
起動時処理フロー
Type
Tips
Section
システム
  起動時の処理フローです。$XYZZY/xyzzy.exeを起動すると、最初はinit.cc
  から $XYZZY/lisp/startup.lが呼び出されます。以降の主なフローは以下
  のとおりです。
  
  init.cc: 
    1. startupをload-library 
       startup.l: 
        1. loadupをload-library 
           loadup.l: 
            1. estartupをload-library 
             (estartup.lで、e:startupを定義) 
            2. historyをload-library 
             (history.lで、load-history-fileを定義) 
            3. app-menuをload-library 
             (app-menu.lで、init-app-menusを定義) 
            4. siteinitをload-library 
    2. ダンプが未だならダンプ 
    3. e:startupを実行 
       estartup.lのe:startup: 
        1. フレームを初期化 
        2. *pre-startup-hook*を実行 
        3. .xyzzyを実行 
        4. ヒストリを初期化 
         (history.lのload-history-fileで、*load-history-hook*を実行) 
        5. メニューを初期化 
         (app-menu.lのinit-app-menusで、*init-app-menus-hook*を実行) 
        6. *scratch*を作成
        7.引数解析
          (process-command-lineから、*command-line-mailto-hook*とか
           *process-command-line-hook*を実行)
        8. *post-startup-hook*を実行 
  
まとめると、起動時にユーザが変更可能な部分は、以下の順番で実行さ
れます。

  1. $XYZZY/site-lisp/siteinit.l
  2. *pre-startup-hook*
  3. ~/.xyzzy
  4. *load-history-hook*
  5. *init-app-menus-hook*
  6. *command-line-mailto-hook*(-mailtoがある場合)
  7. *process-command-line-hook*(不明なオプションがある場合)
  8. *post-startup-hook*