File:  [Research Unix] / researchv10no / cmd / sml / src / boot / system.sig
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:21:35 2018 UTC (8 years, 1 month ago) by root
Branches: belllabs, MAIN
CVS tags: researchv10, HEAD
researchv10 Norman

(* Copyright 1989 by AT&T Bell Laboratories *)
signature RUNTIMECONTROL =
  sig
    val collected : int ref
    val collectedfrom : int ref
    val gcmessages : int ref
    val majorcollections : int ref
    val minorcollections : int ref
    val ratio : int ref
    val softmax : int ref
  end

signature MCCONTROL =
  sig
    val printArgs : bool ref
    val printRet : bool ref
    val bindContainsVar : bool ref
    val bindExhaustive : bool ref
    val matchExhaustive : bool ref
    val matchRedundant : bool ref
    val expandResult : bool ref
  end

signature CGCONTROL =
  sig
    structure M68 : sig val trapv : bool ref end
    val tailrecur : bool ref
    val recordopt : bool ref
    val tail : bool ref
    val profile : bool ref
    val closureprint : bool ref
    val closureStrategy : int ref
    val rounds : int ref
    val path : bool ref
    val hoist : bool ref
    val reduce : bool ref
    val bodysize : int ref
    val reducemore : int ref
    val alphac : bool ref
    val comment : bool ref
    val knowngen : int ref
    val stdgen : int ref
    val knowncl : int ref
    val foldconst : bool ref
    val etasplit : bool ref
    val printit : bool ref
    val printsize : bool ref
    val scheduling : bool ref
  end

signature PRINTCONTROL =
  sig
    val printDepth : int ref
    val stringDepth : int ref
    val signatures : bool ref
  end

signature DEBUG =
  sig
    val debugging : bool ref
    val getDebugf : (int -> 'a) ref
    val interface : (int -> ('a -> 'b)) ref
  end

signature PROFILE =
  sig
    structure IO : sig type outstream end
    val profiling : bool ref	      (* controls profiling mode of compilation *)
    val profileOn : unit -> unit      (* turn interrupt timer on *)
    val profileOff : unit -> unit     (* turn interrupt timer off *)
    val clear : unit -> unit          (* clear profiling database *)
    val reset : unit -> unit          (* reset profiling counts to zero *)
    val report : IO.outstream -> unit (* print profiling report to stream *)
  end

signature PROFILEINTERNALS = 
  sig 
    val add : 'a -> unit
    val setToplevel : unit -> unit
    val setOther : unit -> unit
    structure P : PROFILE
  end

signature CONTROL =
  sig
    structure Runtime : RUNTIMECONTROL
    structure MC : MCCONTROL
    structure CG : CGCONTROL
    structure Print : PRINTCONTROL
    structure ProfileInternals : PROFILEINTERNALS
    structure Profile : PROFILE
    structure Debug : DEBUG
    val prLambda : (unit -> unit) ref
    val debugging : bool ref
    val primaryPrompt : string ref
    val secondaryPrompt : string ref
    val internals : bool ref
    val weakUnderscore : bool ref
    val interp : bool ref
    val debugLook : bool ref
    val debugCollect : bool ref
    val debugBind : bool ref
    val saveLambda : bool ref
    val saveLvarNames : bool ref
    val timings : bool ref
    val reopen : bool ref
  end

signature TIMER =
  sig  
    datatype time = TIME of {sec : int, usec : int}
    type timer
    val start_timer : unit -> timer
    val check_timer : timer -> time
    val check_timer_gc: timer -> time
    val makestring : time -> string
    val add_time : time * time -> time
  end

signature TAGS =
  sig
    val width_tags : int
    val power_tags : int
    val tag_record : int
    val tag_array : int
    val tag_bytearray : int
    val tag_string : int
    val tag_embedded : int
    val tag_suspension : int
    val tag_backptr : int
    val tag_forwarded : int
  end

signature STATS =
  sig
    structure Timer : TIMER
    val lines : int ref
    val parse : Timer.time ref
    val translate : Timer.time ref
    val codeopt : Timer.time ref
    val convert : Timer.time ref
    val hoist : Timer.time ref
    val cpsopt : Timer.time ref
    val closure : Timer.time ref
    val globalfix : Timer.time ref
    val spill : Timer.time ref
    val codegen : Timer.time ref
    val freemap : Timer.time ref
    val execution : Timer.time ref
    val update : Timer.time ref * Timer.time -> unit
    val summary : unit -> unit
  end

signature UNSAFE =
  sig
    type object
    structure Assembly : ASSEMBLY
    val boxed : 'a -> bool
    val ordof : 'a * int -> int
    val slength : 'a -> int
    val store : 'a * int * int -> unit
    val subscript : 'a array * int -> 'a
    val update : 'a array * int * 'a -> unit
    val delay : int * 'a -> 'a
    val force : 'a -> 'a
    val boot : string -> ('a -> 'b)
    val cast : 'a -> 'b
    val syscall : int * string list * int -> int
    val blast_write : 'outstream * 'a -> unit
    val blast_read :  'instream -> 'a
    val create_s : int -> string
    val store_s : string * int * int -> unit
    val lookup_r : (int -> object) ref
    val lookup : int -> object
    val isolate : (unit->'a) -> 'a
    val pstruct : {core: object, initial: object, math: object} ref
    exception Boxity
    val tuple : object -> object array
    val string : object -> string
    val real : object -> real
    val int : object -> int
    datatype datalist = DATANIL | DATACONS of (string * string * datalist)
    val datalist : datalist
  end

signature SYSTEM =
  sig
    structure ByteArray : BYTEARRAY
    structure Control : CONTROL
    structure Tags : TAGS
    structure Timer : TIMER
    structure Stats : STATS
    structure Unsafe : UNSAFE
    val exn_name : exn -> string
    val version : string
    val interactive : bool ref
    val cleanup : unit -> unit  (* closes all files *)
    val system : string -> unit
    val cd : string -> unit
    val argv : unit -> string list
    val environ : unit -> string list
  end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.