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

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/Semant/pickle/unpickmod-new.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/Semant/pickle/unpickmod-new.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 774, Wed Jan 10 12:50:56 2001 UTC revision 1174, Sat Mar 23 21:14:40 2002 UTC
# Line 25  Line 25 
25                        PersStamps.persstamp * Word8Vector.vector ->                        PersStamps.persstamp * Word8Vector.vector ->
26                        StaticEnv.staticEnv                        StaticEnv.staticEnv
27    
28      val unpickleFLINT : Word8Vector.vector -> CompBasic.flint option      val unpickleFLINT : Word8Vector.vector -> FLINT.prog option
29    
30      (* The env unpickler resulting from "mkUnpicklers" cannot be used for      (* The env unpickler resulting from "mkUnpicklers" cannot be used for
31       * "original" environments that come out of the elaborator.  For those,       * "original" environments that come out of the elaborator.  For those,
# Line 35  Line 35 
35          { session: UnpickleUtil.session,          { session: UnpickleUtil.session,
36            stringlist: string list UnpickleUtil.reader } ->            stringlist: string list UnpickleUtil.reader } ->
37          context ->          context ->
38          { symenv: SymbolicEnv.symenv UnpickleUtil.reader,          { symenv: SymbolicEnv.env UnpickleUtil.reader,
39            statenv: StaticEnv.staticEnv UnpickleUtil.reader,            statenv: StaticEnv.staticEnv UnpickleUtil.reader,
40            symbol: Symbol.symbol UnpickleUtil.reader,            symbol: Symbol.symbol UnpickleUtil.reader,
41            symbollist: Symbol.symbol list UnpickleUtil.reader }            symbollist: Symbol.symbol list UnpickleUtil.reader }
# Line 132  Line 132 
132            P.SUBSCRIPT_REC,            P.SUBSCRIPT_REC,
133            P.SUBSCRIPT_RAW64,            P.SUBSCRIPT_RAW64,
134            P.UNBOXEDASSIGN,            P.UNBOXEDASSIGN,
135            P.RAW_CCALL NONE]            P.RAW_CCALL NONE
136            ]
137    
138      val cmpop_table =      val cmpop_table =
139          #[P.>, P.>=, P.<, P.<=, P.LEU, P.LTU, P.GEU, P.GTU, P.EQL, P.NEQ]          #[P.>, P.>=, P.<, P.<=, P.LEU, P.LTU, P.GEU, P.GTU, P.EQL, P.NEQ]
# Line 200  Line 201 
201          val tkindListM = UU.mkMap ()          val tkindListM = UU.mkMap ()
202          val ctypeM = UU.mkMap ()          val ctypeM = UU.mkMap ()
203          val ctypeListM = UU.mkMap ()          val ctypeListM = UU.mkMap ()
204            val ccalltypeListM = UU.mkMap ()
205            val ccalltypeOptionM = UU.mkMap ()
206          val cciM = UU.mkMap ()          val cciM = UU.mkMap ()
207    
208          val boollist = list boolListM bool          val boollist = list boolListM bool
# Line 290  Line 293 
293    
294          and ctypelist () = list ctypeListM ctype ()          and ctypelist () = list ctypeListM ctype ()
295    
296            fun ccalltype() = let
297                fun ct #"\000" = P.CCALL_INT32
298                  | ct #"\001" = P.CCALL_REAL64
299                  | ct #"\002" = P.CCALL_ML_PTR
300                  | ct _       = raise Format
301            in  nonshare ct
302            end
303    
304            and ccalltypelist () = list ccalltypeListM ccalltype ()
305            and ccalltypeoption () = option ccalltypeOptionM ccalltype ()
306    
307          fun ccall_info () = let          fun ccall_info () = let
308              fun cp #"C" =              fun cp #"C" =
309                  { c_proto = { conv = string (),                  { c_proto = { conv = string (),
310                                retTy = ctype (),                                retTy = ctype (),
311                                paramTys = ctypelist () },                                paramTys = ctypelist () },
312                    ml_flt_args = boollist (),                    ml_args = ccalltypelist (),
313                    ml_flt_res_opt = booloption () }                    ml_res_opt = ccalltypeoption (),
314                      reentrant = bool () }
315                | cp _ = raise Format                | cp _ = raise Format
316          in          in
317              share cciM cp              share cciM cp
# Line 328  Line 343 
343                | po #"\116" = P.RAW_LOAD (numkind ())                | po #"\116" = P.RAW_LOAD (numkind ())
344                | po #"\117" = P.RAW_STORE (numkind ())                | po #"\117" = P.RAW_STORE (numkind ())
345                | po #"\118" = P.RAW_CCALL (SOME (ccall_info ()))                | po #"\118" = P.RAW_CCALL (SOME (ccall_info ()))
346                  | po #"\119" = P.RAW_RECORD{tag=bool (),sz=int ()}
347                | po c =                | po c =
348                  Vector.sub (primop_table, Char.ord c)                  Vector.sub (primop_table, Char.ord c)
349                  handle General.Subscript => raise Format                  handle General.Subscript => raise Format
350          in          in
351              share poM po              share poM po
352          end          end
353    
354      in      in
355          { pid = pid, string = string, symbol = symbol,          { pid = pid, string = string, symbol = symbol,
356            access = access, conrep = conrep, consig = consig,            access = access, conrep = conrep, consig = consig,
# Line 527  Line 544 
544          end          end
545    
546          and tyckind () = let          and tyckind () = let
547              fun tk #"a" = T.PRIMITIVE (PT.pt_fromint (int ()))              fun tk #"a" = T.PRIMITIVE (int ())
548                | tk #"b" = let                | tk #"b" = let
549                      val index = int ()                      val index = int ()
550                      val root = entVarOption ()                      val root = entVarOption ()
# Line 557  Line 574 
574              fun dtf #"b" =              fun dtf #"b" =
575                  { mkey = stamp (),                  { mkey = stamp (),
576                    members = Vector.fromList (dtmemberlist ()),                    members = Vector.fromList (dtmemberlist ()),
577                    lambdatyc = ref NONE }                    properties = PropList.newHolder () }
578                | dtf _ = raise Format                | dtf _ = raise Format
579          in          in
580              share dtfM dtf              share dtfM dtf
# Line 749  Line 766 
766                                fctflag = ff,                                fctflag = ff,
767                                symbols = sl,                                symbols = sl,
768                                elements = el,                                elements = el,
769                                boundeps = ref beps,                                properties = PropList.newHolder (),
770                                lambdaty = ref NONE,                                (* boundeps = ref beps, *)
771                                  (* lambdaty = ref NONE, *)
772                                typsharing = ts,                                typsharing = ts,
773                                strsharing = ss,                                strsharing = ss,
774                                stub = SOME { owner = if lib then pid ()                                stub = SOME { owner = if lib then pid ()
# Line 758  Line 776 
776                                              tree = branch eltrl,                                              tree = branch eltrl,
777                                              lib = lib } }                                              lib = lib } }
778                  in                  in
779                        ModulePropLists.setSigBoundeps (r, beps);
780                      (M.SIG r, M.SIGNODE r)                      (M.SIG r, M.SIGNODE r)
781                  end                  end
782                | sg _ = raise Format                | sg _ = raise Format
# Line 1102  Line 1121 
1121                      ({ stamp = s,                      ({ stamp = s,
1122                         entities = e,                         entities = e,
1123                         rpath = ipath (),                         rpath = ipath (),
1124                         lambdaty = ref NONE,                         properties = PropList.newHolder (),
1125                           (* lambdaty = ref NONE, *)
1126                         stub = SOME { owner = if lib then pid ()                         stub = SOME { owner = if lib then pid ()
1127                                               else globalPid (),                                               else globalPid (),
1128                                       tree = etr,                                       tree = etr,
# Line 1124  Line 1144 
1144                      ({ stamp = s,                      ({ stamp = s,
1145                         closure = c,                         closure = c,
1146                         rpath = ipath (),                         rpath = ipath (),
1147                         lambdaty = ref NONE,                         properties = PropList.newHolder (),
1148                           (* lambdaty = ref NONE, *)
1149                         tycpath = NONE,                         tycpath = NONE,
1150                         stub = SOME { owner = if lib then pid ()                         stub = SOME { owner = if lib then pid ()
1151                                               else globalPid (),                                               else globalPid (),
# Line 1167  Line 1188 
1188              val bindlist = list envM (pair symBindPM (symbol, binding')) ()              val bindlist = list envM (pair symBindPM (symbol, binding')) ()
1189              fun bind ((s, (b, t)), e) = StaticEnv.bind0 (s, (b, SOME t), e)              fun bind ((s, (b, t)), e) = StaticEnv.bind0 (s, (b, SOME t), e)
1190          in          in
1191              Env.consolidate (foldl bind StaticEnv.empty bindlist)              StaticEnv.consolidate (foldl bind StaticEnv.empty bindlist)
1192          end          end
1193      in      in
1194          env          env

Legend:
Removed from v.774  
changed lines
  Added in v.1174

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