Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/branches/FLINT/src/compiler/PervEnv/Boot/assembly.sig
ViewVC logotype

Annotation of /sml/branches/FLINT/src/compiler/PervEnv/Boot/assembly.sig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 227 - (view) (download) (as text)

1 : monnier 89 (* Copyright 1996 by AT&T Bell Laboratories *)
2 :     (* assembly.sig *)
3 :    
4 :     (*
5 :     * This file provides the interface to the structures provied by the runtime
6 :     * system. The BOXED version is supposed to correspond to the assembly and
7 :     * the C code that implement the functions using the boxed calling
8 :     * conventions. Right now, we tried hard to eliminate the polymorphic type
9 :     * in the BOXED version because they are interpreted differently across
10 :     * different versions of the compilers. In "core.sml", we use the magic
11 :     * (and "dirty") cast to force them into the right ML types. (ZHONG)
12 :     *)
13 :    
14 :     signature ASSEMBLY =
15 :     sig
16 :     type object
17 :     datatype 'a option = NONE | SOME of 'a
18 :    
19 :     structure A :
20 :     sig
21 :     type c_function
22 :     eqtype word8array
23 :     eqtype real64array
24 :     type spin_lock
25 :    
26 :     val array : int * 'a -> 'a array
27 :     val bind_cfun : (string * string) -> c_function
28 :     val callc : (c_function * 'a) -> 'c
29 :     val create_b : int -> word8array
30 :     val create_r : int -> real64array
31 :     val create_s : int -> string
32 :     val create_v : int * 'a list -> 'a vector
33 :     val floor : real -> int
34 :     val logb : real -> int
35 :     val scalb : real * int -> real
36 :     val try_lock : spin_lock -> bool
37 :     val unlock : spin_lock -> unit
38 :     end
39 :    
40 :     exception Div
41 :     exception Overflow
42 :     exception SysErr of (string * int option)
43 :    
44 :     val profCurrent : int ref
45 :     val pollEvent : bool ref
46 :     val pollFreq : int ref
47 :     val pollHandler : (unit cont -> unit cont) ref
48 :     val activeProcs : int ref
49 :     val pstruct : object ref
50 :     val sighandler : ((int * int * unit cont) -> unit cont) ref
51 :     val vector0 : 'a vector
52 :     end
53 :    
54 :    
55 :     signature ASSEMBLYBOXED =
56 :     sig
57 :     type object
58 :     datatype 'a option = NONE | SOME of 'a
59 :    
60 :     structure A :
61 :     sig
62 :     type c_function
63 :     eqtype word8array
64 :     eqtype real64array
65 :     type spin_lock
66 :    
67 :     val array : object -> object
68 :     val bind_cfun : object -> object
69 :     val callc : object -> object
70 :     val create_b : object -> word8array
71 :     val create_r : object -> real64array
72 :     val create_s : object -> string
73 :     val create_v : object -> object
74 :     val floor : object -> object
75 :     val logb : object -> object
76 :     val scalb : object -> object
77 :     val try_lock : spin_lock -> object
78 :     val unlock : spin_lock -> object
79 :     end
80 :    
81 :     exception Div
82 :     exception Overflow
83 :     exception SysErr of (string * int option)
84 :    
85 :     val profCurrent : int ref
86 :     val pollEvent : bool ref
87 :     val pollFreq : int ref
88 :     val pollHandler : (unit cont -> unit cont) ref
89 :     val activeProcs : int ref
90 :     val pstruct : object ref
91 :     val sighandler : ((int * int * unit cont) -> unit cont) ref
92 :     val vector0 : object vector
93 :     end
94 :    
95 :     (*
96 : monnier 223 * $Log: assembly.sig,v $
97 :     * Revision 1.1.1.1 1998/04/08 18:40:05 george
98 :     * Version 110.5
99 :     *
100 : monnier 89 *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0