
Arun Kumar S Jadhav
I am working towards retargetable G-machine. As the first step towards this, I need to understand what G-code is generated by nhc for a specific haskell program. When I went through the options of compiler I didn't see any g-code output, instead what i saw was that I could get target machine code file which i don't want.
Use the -gcode option enclosed with +CTS -CTS brackets. e.g. $ cat hello.hs main = putStrLn "hello world" $ nhc98 -c hello.hs +CTS -gcode -CTS ====== G Code: STARTFUN 143(Main.main) NEEDSTACK 1 HEAP_VAP 146 (LAMBDA146) PUSH_HEAP HEAP_VAP 26 (Prelude.putStrLn) HEAP_OFF -2 RETURN_EVAL ====== G Code: STARTFUN 146(LAMBDA146) NEEDSTACK 1 PUSH_STRING "hello world" STRING RETURN_EVAL You can compare this with the final bytecode output produced in a .hc file by "nhc98 -C". Regards, Malcolm