Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Feel the power of Haskell

Name: Anonymous 2009-08-08 13:30

http://hackage.haskell.org/packages/archive/ghc-prim/0.1.0.0/doc/html/src/GHC-Tuple.html

Best part:
{- Manuel says: Including one more declaration gives a segmentation fault.

Name: Anonymous 2009-08-08 13:58

>>4
There is no reason to worry, this is how it translates to C:

module Main where

main = putStrLn "Hello, world!"


becomes

/* GHC_PACKAGES base integer ghc-prim rts
*/
#include "Stg.h"
EI_(base_GHCziBase_unpackCStringzh_closure);
static StgWord ssi_srt[] = {
(W_)&base_GHCziBase_unpackCStringzh_closure
};

II_(ssi_info);
static StgWord ssi_closure[] = {
(W_)&ssi_info, 0x0, 0x0, 0x0
};

static char css_str[] = "Hello, world!";

static StgWord ssi_info[] = {
((W_)&ssi_srt+0), 0x0, 0x100000016UL
};

EI_(base_GHCziBase_unpackCStringzh_closure);
IF_(ssi_entry) {
FB_
if ((W_)(((W_)Sp - 0x10UL) < (W_)SpLim)) goto _csv;
Hp=Hp+2;
if ((W_)((W_)Hp > (W_)HpLim)) goto _csv;
Hp[-1] = (W_)&stg_CAF_BLACKHOLE_info;
;EF_(newCAF);
{void (*ghcFunPtr)(void *);
ghcFunPtr = ((void (*)(void *))(W_)&newCAF);
__DISCARD__();
ghcFunPtr((void *)R1.w);;}
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.w = (W_)&base_GHCziBase_unpackCStringzh_closure;
R2.w = (W_)&css_str;
Sp=Sp-2;
JMP_((W_)&stg_ap_n_fast);
_csv:
HpAlloc = 0x10UL;
JMP_(stg_gc_enter_1);
FE_
}
EI_(base_SystemziIO_putStrLn_closure);
II_(ssi_closure);
static StgWord Main_main_srt[] = {
(W_)&base_SystemziIO_putStrLn_closure, (W_)&ssi_closure
};

EI_(Main_main_info);
StgWord Main_main_closure[] = {
(W_)&Main_main_info, 0x0, 0x0, 0x0
};

StgWord Main_main_info[] = {
((W_)&Main_main_srt+0), 0x0, 0x300000016UL
};

EI_(base_SystemziIO_putStrLn_closure);
II_(ssi_closure);
FN_(Main_main_entry) {
FB_
if ((W_)(((W_)Sp - 0x10UL) < (W_)SpLim)) goto _csF;
Hp=Hp+2;
if ((W_)((W_)Hp > (W_)HpLim)) goto _csF;
Hp[-1] = (W_)&stg_CAF_BLACKHOLE_info;
;EF_(newCAF);
{void (*ghcFunPtr)(void *);
ghcFunPtr = ((void (*)(void *))(W_)&newCAF);
__DISCARD__();
ghcFunPtr((void *)R1.w);;}
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.w = (W_)&base_SystemziIO_putStrLn_closure;
R2.w = (W_)&ssi_closure;
Sp=Sp-2;
JMP_((W_)&stg_ap_p_fast);
_csF:
HpAlloc = 0x10UL;
JMP_(stg_gc_enter_1);
FE_
}
EI_(base_GHCziTopHandler_runMainIO_closure);
EI_(Main_main_closure);
static StgWord ZCMain_main_srt[] = {
(W_)&base_GHCziTopHandler_runMainIO_closure, (W_)&Main_main_closure
};

EI_(ZCMain_main_info);
StgWord ZCMain_main_closure[] = {
(W_)&ZCMain_main_info, 0x0, 0x0, 0x0
};

StgWord ZCMain_main_info[] = {
((W_)&ZCMain_main_srt+0), 0x0, 0x300000016UL
};

EI_(base_GHCziTopHandler_runMainIO_closure);
EI_(Main_main_closure);
FN_(ZCMain_main_entry) {
FB_
if ((W_)(((W_)Sp - 0x10UL) < (W_)SpLim)) goto _csP;
Hp=Hp+2;
if ((W_)((W_)Hp > (W_)HpLim)) goto _csP;
Hp[-1] = (W_)&stg_CAF_BLACKHOLE_info;
;EF_(newCAF);
{void (*ghcFunPtr)(void *);
ghcFunPtr = ((void (*)(void *))(W_)&newCAF);
__DISCARD__();
ghcFunPtr((void *)R1.w);;}
R1.p[1] = (W_)Hp-8;
*R1.p = (W_)&stg_IND_STATIC_info;
Sp[-2] = (W_)&stg_upd_frame_info;
Sp[-1] = (W_)Hp-8;
R1.w = (W_)&base_GHCziTopHandler_runMainIO_closure;
R2.w = (W_)&Main_main_closure;
Sp=Sp-2;
JMP_((W_)&stg_ap_p_fast);
_csP:
HpAlloc = 0x10UL;
JMP_(stg_gc_enter_1);
FE_
}
static StgWord _module_registered[] = {
0x0
};


EF_(__stginit_base_Prelude_);
EF_(__stginit_base_GHCziTopHandler_);
FN_(__stginit_Main_) {
FB_
if ((W_)(0x0 != (*((P_)(W_)&_module_registered)))) goto _csV;
goto _csX;
_csV:
Sp=Sp+1;
JMP_(Sp[-1]);
_csX:
*((P_)(W_)&_module_registered) = 0x1UL;
Sp=Sp-1;
*Sp = (W_)&__stginit_base_Prelude_;
Sp=Sp-1;
*Sp = (W_)&__stginit_base_GHCziTopHandler_;
goto _csV;
FE_
}


EF_(__stginit_Main_);
FN_(__stginit_Main) {
FB_
JMP_((W_)&__stginit_Main_);
FE_
}


FN_(__stginit_ZCMain) {
FB_
Sp=Sp+1;
JMP_(Sp[-1]);
FE_
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List