X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=Mate.hs;fp=Mate.hs;h=a191048495b26244a1ceab9bcd226d6e0289fb1a;hb=dc7082de1fff3158da5682d683502128b5f6cc0b;hp=96edb9633155c58b5850e689e489134eb5eb9030;hpb=58b7d15fa9d3089dc65fa0f9a0f4be3f8ddd35e6;p=mate.git diff --git a/Mate.hs b/Mate.hs index 96edb96..a191048 100644 --- a/Mate.hs +++ b/Mate.hs @@ -1,6 +1,4 @@ -{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} -#include "debug.h" module Main where import System.Environment @@ -10,9 +8,6 @@ import Data.List.Split import qualified Data.ByteString.Lazy as B import Control.Monad -#ifdef DEBUG -import Text.Printf -#endif import JVM.ClassFile import Java.JAR @@ -21,6 +16,7 @@ import Mate.MethodPool import Mate.Types import Mate.ClassPool import Mate.NativeMachine +import Mate.Debug import Mate.GC.Boehm @@ -65,6 +61,7 @@ parseArgs _ _ = parseArgs ["-"] False executeMain :: B.ByteString -> Class Direct -> IO () executeMain bclspath cls = do initGC --required on some platforms. [todo bernhard: maybe this should be moved somewhere else - maybe at a global place where vm initialization takes place + let methods = classMethods cls; methods :: [Method Direct] case find (\x -> methodName x == "main") methods of Just m -> do @@ -72,8 +69,6 @@ executeMain bclspath cls = do rawmethod <- parseMethod cls "main" $ methodSignature m entry <- compileBB rawmethod mi addMethodRef entry mi [bclspath] -#ifdef DEBUG - printf "executing `main' now:\n" -#endif + printfInfo "executing `main' now:\n" executeFuncPtr entry Nothing -> error "main not found"