STG to JavaScript translation

Simon Marlow simonmarhaskell at
Mon Sep 17 08:08:03 EDT 2007

Victor Nazarov wrote:
> Hello.
> I'm working on the translation of GHC's STG language to
> JavaScript. I've started my implementation, but I've got stuck with
> the STG case statements. The problem is the binder in case expression.
> StgCase expr livevars liverhsvars bndr srt alttype alts
> Operationally, I need to save continuation and evaluate expr
> expression, but I have no idea what to do with the bndr. It seems to
> me that I need to build a closure binded by bndr with the body of
> expr evaluate it, update it, and use it in RHSs of alternatives.
> But It seems that this behavior isn't intended by GHC. Can you explain briefly
> how GHC implements this binder and what this binder points to.

It should be easy to implement: the value of expr is bound to bndr within 
the alternatives.


More information about the Glasgow-haskell-users mailing list