1 (* A subset of the UNSAFE signature provided by SML/NJ. Modified from SML/NJ
4 * Copyright (c) 1997 Bell Labs, Lucent Technologies.
8 signature UNSAFE_MONO_ARRAY =
14 * elements have indeterminate value
16 val create: int -> array
17 (* omit Subscript check *)
18 val sub: array * int -> elem
19 (* omit Subscript check *)
20 val update: array * int * elem -> unit
23 (* SML/NJ provides 'create' and 'update',
24 * but they are not provided with MLton,
25 * because vectors are immutable and optimizations may
26 * break if they are updated.
28 signature UNSAFE_MONO_VECTOR =
34 * elements have indeterminate values *)
35 (* val create: int -> vector *)
36 (* omit Subscript check *)
37 val sub: vector * int -> elem
38 (* omit Subscript check *)
39 (* val update: vector * int * elem -> unit *)
47 * objptr(s) at elements set to bogus non-objptr value;
48 * non-objptr(s) at elements have indeterminate value
50 val alloc: int -> 'a array
52 * elements set to initial value
54 val create: int * 'a -> 'a array
55 (* omit Subscript check *)
56 val sub: 'a array * int -> 'a
57 val uninitIsNop: 'a array -> bool
58 (* omit Subscript check;
59 * objptr(s) at element set to bogus non-objptr value
61 val uninit: 'a array * int -> unit
62 (* omit Subscript check *)
63 val update: 'a array * int * 'a -> unit
70 * objptr(s) at elements have indeterminate value;
71 * non-objptr(s) at elements have indeterminate value
73 val alloc: int -> 'a rawarr
74 (* prereq: all objptr(s) at elements set to bogus
75 * non-objptr value (via uninit)
77 val toArray: 'a rawarr -> 'a array
78 val uninitIsNop: 'a rawarr -> bool
79 (* omit Subscript check;
80 * objptr(s) at element set to bogus non-objptr value
82 val uninit: 'a rawarr * int -> unit
85 structure BoolArray: UNSAFE_MONO_ARRAY
86 structure BoolVector: UNSAFE_MONO_VECTOR
87 structure CharArray: UNSAFE_MONO_ARRAY
88 structure CharVector: UNSAFE_MONO_VECTOR
89 structure IntArray: UNSAFE_MONO_ARRAY
90 structure IntVector: UNSAFE_MONO_VECTOR
91 structure Int8Array: UNSAFE_MONO_ARRAY
92 structure Int8Vector: UNSAFE_MONO_VECTOR
93 structure Int16Array: UNSAFE_MONO_ARRAY
94 structure Int16Vector: UNSAFE_MONO_VECTOR
95 structure Int32Array: UNSAFE_MONO_ARRAY
96 structure Int32Vector: UNSAFE_MONO_VECTOR
97 structure Int64Array: UNSAFE_MONO_ARRAY
98 structure Int64Vector: UNSAFE_MONO_VECTOR
99 structure IntInfArray: UNSAFE_MONO_ARRAY
100 structure IntInfVector: UNSAFE_MONO_VECTOR
101 structure LargeIntArray: UNSAFE_MONO_ARRAY
102 structure LargeIntVector: UNSAFE_MONO_VECTOR
103 structure LargeRealArray: UNSAFE_MONO_ARRAY
104 structure LargeRealVector: UNSAFE_MONO_VECTOR
105 structure LargeWordArray: UNSAFE_MONO_ARRAY
106 structure LargeWordVector: UNSAFE_MONO_VECTOR
107 structure RealArray: UNSAFE_MONO_ARRAY
108 structure RealVector: UNSAFE_MONO_VECTOR
109 structure Real32Array: UNSAFE_MONO_ARRAY
110 structure Real32Vector: UNSAFE_MONO_VECTOR
111 structure Real64Array: UNSAFE_MONO_ARRAY
112 structure Real64Vector: UNSAFE_MONO_VECTOR
115 (* val create: int * 'a list -> 'a vector *)
116 val sub: 'a vector * int -> 'a
118 structure WordArray: UNSAFE_MONO_ARRAY
119 structure WordVector: UNSAFE_MONO_VECTOR
120 structure Word8Array: UNSAFE_MONO_ARRAY
121 structure Word8Vector: UNSAFE_MONO_VECTOR
122 structure Word16Array: UNSAFE_MONO_ARRAY
123 structure Word16Vector: UNSAFE_MONO_VECTOR
124 structure Word32Array: UNSAFE_MONO_ARRAY
125 structure Word32Vector: UNSAFE_MONO_VECTOR
126 structure Word64Array: UNSAFE_MONO_ARRAY
127 structure Word64Vector: UNSAFE_MONO_VECTOR
129 structure PackReal32Big : PACK_REAL
130 structure PackReal32Little : PACK_REAL
131 structure PackReal64Big : PACK_REAL
132 structure PackReal64Little : PACK_REAL
133 structure PackRealBig : PACK_REAL
134 structure PackRealLittle : PACK_REAL
135 structure PackWord16Big : PACK_WORD
136 structure PackWord16Little : PACK_WORD
137 structure PackWord32Big : PACK_WORD
138 structure PackWord32Little : PACK_WORD
139 structure PackWord64Big : PACK_WORD
140 structure PackWord64Little : PACK_WORD