The CUNITUTIL signature


Synopsis

signature CUNITUTIL
structure Compiler.CUnitUtil : CUNITUTIL

Interface

exception FormatError
exception NoCodeBug
type 'iid cunit
type pid = PersStamps.persstamp
type senv = SCEnv.Env.staticEnv
type symenv = SCEnv.Env.symenv
type env = SCEnv.Env.environment
type lambda = Lambda.lexp
type csegments = {c0 : Word8Vector.vector, cn : Word8Vector.vector list, name : string option ref}
type obj = Unsafe.Object.object
val readUnit : {name : string, stream : BinIO.instream, pids2iid : pid list -> 'iid, senv : senv, keep_code : bool} -> 'iid cunit
val writeUnit : {stream : BinIO.outstream, cunit : 'iid cunit, keep_code : bool, iid2pids : 'iid -> pid list} -> unit
val makeUnit : {imports : pid list, exportPid : pid option, references : 'iid, staticPid : pid, newenv : senv, newenvPickle : Word8Vector.vector, lambda_i : lambda option, code : csegments} -> 'iid cunit
val staticPidCU : 'iid cunit -> pid
val lambdaPidCU : 'iid cunit -> pid
val senvCU : 'iid cunit -> senv
val symenvCU : 'iid cunit -> symenv
val envCU : 'iid cunit -> env option ref
val importsCU : 'iid cunit -> pid list
val exportCU : 'iid cunit -> pid option
val referencesCU : 'iid cunit -> 'iid
val nocodeCU : 'iid cunit -> bool
val codeClosure : 'iid cunit -> obj vector -> obj
val discardCode : 'iid cunit -> unit

Description

exception FormatError

exception NoCodeBug

type 'iid cunit

type pid

type senv

type symenv

type env

type lambda

type csegments

type obj

readUnit {name, stream, pids2iid, senv, keep_code}


writeUnit {stream, cunit, keep_code, iid2pids}


makeUnit {imports, exportPid, references, staticPid, newenv, newenvPickle, lambda_i, code}


staticPidCU cu


lambdaPidCU cu


senvCU cu


symenvCU cu


envCU cu


importsCU cu


exportCU cu


referencesCU cu


nocodeCU cu


codeClosure cu vec


discardCode cu