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/statenv/prim.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/Semant/statenv/prim.sml

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

revision 586, Thu Mar 30 05:08:07 2000 UTC revision 587, Thu Mar 30 09:01:52 2000 UTC
# Line 3  Line 3 
3    
4  signature PRIM_ENV =  signature PRIM_ENV =
5  sig  sig
   
6    val primEnv : StaticEnv.staticEnv    val primEnv : StaticEnv.staticEnv
   
7  end (* signature PRIM_ENV *)  end (* signature PRIM_ENV *)
8    
9    
# Line 91  Line 89 
89        val allElements = tycElements@conElements        val allElements = tycElements@conElements
90        val allSymbols = map #1 allElements        val allSymbols = map #1 allElements
91    
92        val entities = foldr (fn ((_,M.TYCspec{spec,entVar,repl,scope}),r) =>        val entities = let
93                                   EE.bind(entVar,M.TYCent spec,r))            fun f ((_,M.TYCspec{spec,entVar,repl,scope}),r) =
94                            EE.empty tycElements                EE.bind(entVar,M.TYCent spec,r)
95                | f _ = ErrorMsg.impossible "primTypes:entities"
96          in
97              foldr f EE.empty tycElements
98          end
99    
100        val entities = EntityEnv.mark(fn _ => ST.special"primEntEnv", entities)        val entities = EntityEnv.mark(fn _ => ST.special"primEntEnv", entities)
101    
102     in M.STR{sign=M.SIG{name=SOME(S.sigSymbol "PRIMTYPES"), closed=true,     in M.STR{sign=M.SIG {stamp=ST.special "PrimTypesSig",
103                         fctflag=false, stamp=ST.special "PrimTypesSig",                          name=SOME(S.sigSymbol "PRIMTYPES"), closed=true,
104                            fctflag=false,
105                         symbols=allSymbols,elements=allElements,                         symbols=allSymbols,elements=allElements,
106                         typsharing=nil,strsharing=nil,                         typsharing=nil,strsharing=nil,
107                         boundeps=ref (SOME []), lambdaty=ref(NONE)},                          boundeps=ref (SOME []), lambdaty=ref(NONE),
108                            stub = NONE},
109              rlzn={stamp=ST.special "PrimTypesStr",              rlzn={stamp=ST.special "PrimTypesStr",
110                      stub=NONE,
111                    entities=entities,                    entities=entities,
112                    lambdaty=ref NONE,                    lambdaty=ref NONE,
113                    rpath=IP.IPATH[S.strSymbol "primTypes"]},                    rpath=IP.IPATH[S.strSymbol "primTypes"]},
   
114              access=A.nullAcc, info=II.mkStrInfo []}              access=A.nullAcc, info=II.mkStrInfo []}
115    
116    end (* primTypes *)    end (* primTypes *)
# Line 475  Line 479 
479                mkConElement("::", BT.uconsDcon)]                mkConElement("::", BT.uconsDcon)]
480        val allSymbols = map #1 allElements        val allSymbols = map #1 allElements
481    
482     in M.STR{sign=M.SIG{name=NONE, closed=true,     in M.STR{sign=M.SIG{stamp=ST.special "uListSig",
483                         fctflag=false, stamp=ST.special "uListSig",                         name=NONE, closed=true,
484                           fctflag=false,
485                         symbols=allSymbols, elements=allElements,                         symbols=allSymbols, elements=allElements,
486                         typsharing=nil, strsharing=nil,                         typsharing=nil, strsharing=nil,
487                         boundeps=ref (SOME []), lambdaty=ref NONE},                         boundeps=ref (SOME []), lambdaty=ref NONE,
488                           stub = NONE},
489              rlzn={stamp=ST.special "uListStr",              rlzn={stamp=ST.special "uListStr",
490                      stub=NONE,
491                    entities=EE.bind(ev,M.TYCent BT.ulistTycon,EE.empty),                    entities=EE.bind(ev,M.TYCent BT.ulistTycon,EE.empty),
492                    lambdaty=ref(NONE),                    lambdaty=ref(NONE),
493                    rpath=IP.IPATH[S.strSymbol "uList"]},                    rpath=IP.IPATH[S.strSymbol "uList"]},
   
494              access=A.nullAcc, info=II.mkStrInfo[]}              access=A.nullAcc, info=II.mkStrInfo[]}
495    end    end
496    
# Line 515  Line 520 
520        val (allSymbols, allElements, infList) =        val (allSymbols, allElements, infList) =
521              (rev allSymbols, rev allElements, rev infList)              (rev allSymbols, rev allElements, rev infList)
522    
523     in M.STR{sign=M.SIG{name=NONE, closed=true,     in M.STR{sign=M.SIG{stamp=ST.special "inLineSig",
524                         fctflag=false, stamp=ST.special "inLineSig",                         name=NONE, closed=true,
525                           fctflag=false,
526                         symbols=allSymbols, elements=allElements,                         symbols=allSymbols, elements=allElements,
527                         typsharing=nil, strsharing=nil,                         typsharing=nil, strsharing=nil,
528                         boundeps=ref (SOME []), lambdaty=ref NONE},                         boundeps=ref (SOME []), lambdaty=ref NONE,
529                           stub = NONE},
530              rlzn={stamp=ST.special "inLineStr", entities=EE.empty,              rlzn={stamp=ST.special "inLineStr",
531                      stub=NONE,
532                      entities=EE.empty,
533                    lambdaty=ref(NONE),                    lambdaty=ref(NONE),
534                    rpath=IP.IPATH[S.strSymbol "inLine"]},                    rpath=IP.IPATH[S.strSymbol "inLine"]},
   
535              access=A.nullAcc, info=(II.mkStrInfo infList)}              access=A.nullAcc, info=(II.mkStrInfo infList)}
536    end    end
537    
# Line 539  Line 546 
546               SE.bind(nameofPT,B.STRbind primTypes,               SE.bind(nameofPT,B.STRbind primTypes,
547                  MU.openStructure(SE.empty,primTypes))))                  MU.openStructure(SE.empty,primTypes))))
548    
549    val primEnv = let
550        val { hash, pickle, ... } =
551            PickMod.pickleEnv (PickMod.INITIAL ModuleId.emptyTmap) primEnv
552    in
553        UnpickMod.unpickleEnv (fn _ => ModuleId.emptyTmap) (hash, pickle)
554    end
555    
556  end (* local *)  end (* local *)
557  end (* structure PrimEnv *)  end (* structure PrimEnv *)
   
   
   

Legend:
Removed from v.586  
changed lines
  Added in v.587

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