The COMPILE signature


Synopsis

signature COMPILE
structure Compiler.Compile : COMPILE

Interface

exception Compile of string
type lvar = Lambda.lvar
type absyn
type compInfo
type lambda = Lambda.lexp
type pid = PersStamps.persstamp
type obj = Unsafe.Object.object
type csegments = {c0 : Word8Vector.vector, cn : Word8Vector.vector list, name : string option ref}
val debugging : bool ref
val mkCompInfo : (Source.inputSource * StaticEnv.staticEnv * (Absyn.dec -> Absyn.dec)) -> compInfo
val anyErrors : compInfo -> bool
val parse : Source.inputSource -> Ast.dec
val parseOne : Source.inputSource -> unit -> Ast.dec option
structure SCS : sig
    type staticEnv
    val SC : StaticEnv.staticEnv -> staticEnv
    val unSC : staticEnv -> StaticEnv.staticEnv
  end
type pickle
type hash
val elaborate : {ast : Ast.dec, compenv : SCS.staticEnv, compInfo : compInfo} -> {absyn : Absyn.dec, newenv : SCS.staticEnv, exportLvars : lvar list, exportPid : pid option, staticPid : hash, pickle : pickle}
val makePid : (SCStaticEnv.staticEnv * SCStaticEnv.staticEnv) -> PersStamps.persstamp
val instrument : {source : Source.inputSource, compenv : SCS.staticEnv, compInfo : compInfo} -> Absyn.dec -> Absyn.dec
val translate : {absyn : Absyn.dec, exportLvars : lvar list, exportPid : pid option, newstatenv : SCS.staticEnv, oldstatenv : SCS.staticEnv, compInfo : compInfo} -> {genLambda : lambda option list -> lambda, imports : pid list}
val symDelta : (pid option * lambda option) -> SymbolicEnv.symenv
val architecture : string
val inline : {genLambda : lambda option list -> lambda, imports : pid list, symenv : SymbolicEnv.symenv} -> lambda
val split : {lambda : lambda, enable : bool} -> {lambda_e : lambda, lambda_i : lambda option}
val codegen : {lambda : lambda, compInfo : compInfo} -> csegments
val applyCode : csegments -> obj vector -> obj
exception TopLevelException of exn
exception SilentException
exception TopLevelCallcc
val isolate : ('a -> 'b) -> 'a -> 'b
val execute : {executable : obj vector -> obj, imports : pid list, exportPid : pid option, dynenv : DynamicEnv.dynenv} -> DynamicEnv.dynenv

Description

exception Compile

type lvar

type absyn

type compInfo

type lambda

type pid

type obj

type csegments

debugging


mkCompInfo (in, st, f)


anyErrors co
Have any compile errors been reported in co?

parse in


parseOne in ()


structure SCS

type staticEnv

SC st


unSC st


type pickle

type hash

elaborate {ast, compenv, compInfo}


makePid (st, st2)


instrument {source, compenv, compInfo} de


translate {absyn, exportLvars, exportPid, newstatenv, oldstatenv, compInfo}


symDelta (opt, opt2)


architecture


inline {genLambda, imports, symenv}


split {lambda, enable}


codegen {lambda, compInfo}


applyCode cs vec


exception TopLevelException

exception SilentException

exception TopLevelCallcc

isolate f a


execute {executable, imports, exportPid, dynenv}