packages feed

yi-0.3: Main.hs

-- Copyright (C) 2004, 2008 Don Stewart - http://www.cse.unsw.edu.au/~dons

--
-- | Frontend to the static binary. We have a separte frontend (rather
-- than putting main in Yi.hs) so we don't get ZCMain_main_* symbols
-- in -package yi, which lets us have multiple frontends, and load
-- them all in ghci.
--
module Main ( main ) where

import qualified Yi.Main as Yi

import Yi.Debug
import Yi.Kernel
#ifdef DYNAMIC
import Yi.Boot

{-
main :: IO ()
main = do
  initDebug ".yi-static.dbg"
  kernel <- initialize
  Yi.Boot.startYi kernel -- call Yi.main dynamically

-- TODO: also init the debug system

-}

import Control.Monad

main :: IO ()
main = do
  initDebug ".yi-static.dbg"
  kernel <- initialize

  -- Setup the debug module in the dynamic session (this needs to be done only because
  -- debug uses "global" variables.
  debugMod <- guessTarget kernel "Yi.Debug" Nothing
  setTargets kernel [debugMod]
  loadAllTargets kernel
  initDebug' <- join $ evalMono kernel "Yi.Debug.initDebug \".yi.dbg\""
  initDebug' :: IO ()

  -- Fire up Yi
  Yi.main kernel

#else
main :: IO ()
main = do
  initDebug ".yi-static.dbg"
  Yi.main Kernel
#endif