35 |
val transfer_state : SmlInfo.info * BinInfo.info -> unit |
val transfer_state : SmlInfo.info * BinInfo.info -> unit |
36 |
val recomp : recomp) :> STABILIZE = struct |
val recomp : recomp) :> STABILIZE = struct |
37 |
|
|
|
structure PU = PickleUtil |
|
|
structure UU = UnpickleUtil |
|
|
|
|
|
infix 3 $ |
|
|
infixr 4 & |
|
|
val op & = PU.& |
|
|
val % = PU.% |
|
|
|
|
|
(* type info *) |
|
|
val (BN, SN, SBN, SS, SI, FSBN, IMPEXP, SHM) = (1, 2, 3, 4, 5, 6, 7, 8) |
|
|
|
|
38 |
structure SSMap = BinaryMapFn |
structure SSMap = BinaryMapFn |
39 |
(struct |
(struct |
40 |
type ord_key = SymbolSet.set |
type ord_key = SymbolSet.set |
51 |
type 'a maps = { ss: 'a SSMap.map, sn: 'a SNMap.map } |
type 'a maps = { ss: 'a SSMap.map, sn: 'a SNMap.map } |
52 |
|
|
53 |
val initMap = { ss = SSMap.empty, sn = SNMap.empty } |
val initMap = { ss = SSMap.empty, sn = SNMap.empty } |
54 |
|
|
55 |
|
structure PU = PickleUtilFn (type 'a map = 'a maps val emptyMap = initMap) |
56 |
|
structure PSym = PickleSymbolFn (structure PU = PU) |
57 |
|
structure UU = UnpickleUtil |
58 |
|
|
59 |
|
infix 3 $ |
60 |
|
infixr 4 & |
61 |
|
val op & = PU.& |
62 |
|
val % = PU.% |
63 |
|
|
64 |
|
(* type info *) |
65 |
|
val (BN, SN, SBN, SS, SI, FSBN, IMPEXP, SHM) = (1, 2, 3, 4, 5, 6, 7, 8) |
66 |
|
|
67 |
val SSs = { find = fn (m: 'a maps, k) => SSMap.find (#ss m, k), |
val SSs = { find = fn (m: 'a maps, k) => SSMap.find (#ss m, k), |
68 |
insert = fn ({ ss, sn }, k, v) => |
insert = fn ({ ss, sn }, k, v) => |
69 |
{ sn = sn, ss = SSMap.insert (ss, k, v) } } |
{ sn = sn, ss = SSMap.insert (ss, k, v) } } |
168 |
end |
end |
169 |
|
|
170 |
val int = PU.w_int |
val int = PU.w_int |
171 |
val symbol = PU.w_symbol |
val symbol = PSym.w_symbol |
172 |
val share = PU.ah_share |
val share = PU.ah_share |
173 |
val option = PU.w_option |
val option = PU.w_option |
174 |
val list = PU.w_list |
val list = PU.w_list |
284 |
list sg sublibs & w_exports exports & privileges required |
list sg sublibs & w_exports exports & privileges required |
285 |
end |
end |
286 |
|
|
287 |
val pickle = PU.pickle initMap (group ()) |
val pickle = PU.pickle (group ()) |
288 |
val sz = size pickle |
val sz = size pickle |
289 |
val offset_adjustment = sz + 4 |
val offset_adjustment = sz + 4 |
290 |
|
|
457 |
fun share m r = UU.share session m r |
fun share m r = UU.share session m r |
458 |
fun nonshare r = UU.nonshare session r |
fun nonshare r = UU.nonshare session r |
459 |
val string = UU.r_string session |
val string = UU.r_string session |
460 |
val symbol = UU.r_symbol session |
val symbol = UnpickleSymbol.r_symbol (session, string) |
461 |
val bool = UU.r_bool session |
val bool = UU.r_bool session |
462 |
|
|
463 |
val stringListM = UU.mkMap () |
val stringListM = UU.mkMap () |