GHC.StgToJS.Rts.Types

ghc-9.10.0.20240426: The GHC API

Copyright | (c) The University of Glasgow 2001
License | BSD-style (see the file LICENSE)
Maintainer | Jeffrey Young <jeffrey.young@iohk.io> Luite Stegeman <luite.stegeman@iohk.io> Sylvain Henry <sylvain.henry@iohk.io> Josh Meredith <josh.meredith@iohk.io>
Stability | experimental
Safe Haskell | None
Language | GHC2021

GHC.StgToJS.Rts.Types

Description

Types and utility functions used in the JS RTS.

Synopsis

- traceRts :: StgToJSConfig -> JStgExpr -> JStgStat
- assertRts :: ToJExpr a => StgToJSConfig -> JStgExpr -> a -> JStgStat
- clName :: JStgExpr -> JStgExpr
- clTypeName :: JStgExpr -> JStgExpr
- stackFrameSize :: JStgExpr -> JStgExpr -> JSM JStgStat
- withRegs :: StgReg -> StgReg -> (StgReg -> JStgStat) -> JStgStat

# Documentation

traceRts :: StgToJSConfig -> JStgExpr -> JStgStat Source #

Syntactic sugar, i.e., a Haskell function which generates useful JS code. Given a `JStgExpr`, `ex`, inject a trace statement on `ex` in the compiled JS program

assertRts :: ToJExpr a => StgToJSConfig -> JStgExpr -> a -> JStgStat Source #

Syntactic sugar. Given a `JStgExpr`, `ex` which is assumed to be a predicate, and a message `m`, assert that 'not ex' is True, if not throw an exception in JS land with message `m`.

clName :: JStgExpr -> JStgExpr Source #

name of the closure `c`

clTypeName :: JStgExpr -> JStgExpr Source #

Type name of the closure `c`

stackFrameSize Source #

Arguments

:: JStgExpr | assign frame size to this
-> JStgExpr | stack frame header function
-> JSM JStgStat | size of the frame, including header

withRegs :: StgReg -> StgReg -> (StgReg -> JStgStat) -> JStgStat Source #

Perform the computation `f`, on the range of registers bounded by `start` and `end`.