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/modules/modules.sig
ViewVC logotype

Diff of /sml/trunk/src/compiler/Semant/modules/modules.sig

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 7  Line 7 
7  type sharespec = SymPath.path list  type sharespec = SymPath.path list
8    
9  datatype Signature  datatype Signature
10    = SIG of {name : Symbol.symbol option,    = SIG of sigrec
             closed : bool,  
             fctflag : bool,  
             stamp : Stamps.stamp,  
             symbols : Symbol.symbol list,  
             elements : (Symbol.symbol * spec) list,  
             boundeps : (EntPath.entPath * PLambdaType.tkind) list option ref,  
             lambdaty : (PLambdaType.lty * DebIndex.depth) option ref,  
             typsharing: sharespec list,  
             strsharing: sharespec list}  
11    | ERRORsig    | ERRORsig
12    
13  and spec  and spec
# Line 57  Line 48 
48  (* ------------------------- structures and functors ---------------------- *)  (* ------------------------- structures and functors ---------------------- *)
49    
50  and Structure  and Structure
51    = STR of {sign : Signature, rlzn : strEntity, access : Access.access,    = STR of strrec
             info : InlInfo.inl_info}  
52    | STRSIG of {sign: Signature, entPath : EntPath.entPath}    | STRSIG of {sign: Signature, entPath : EntPath.entPath}
53    | ERRORstr    | ERRORstr
54    
55  and Functor  and Functor
56    = FCT of {sign : fctSig, rlzn : fctEntity, access: Access.access,    = FCT of fctrec
             info : InlInfo.inl_info}  
57    | ERRORfct    | ERRORfct
58    
59  (* ----------------------- entity-related definitions -------------------- *)  (* ----------------------- entity-related definitions -------------------- *)
# Line 80  Line 69 
69    = CLOSURE of {param : EntPath.entVar, body : strExp, env : entityEnv}    = CLOSURE of {param : EntPath.entVar, body : strExp, env : entityEnv}
70    
71  and stampExp  and stampExp
72    = CONST of Stamps.stamp  (* an existing stamp *)    = (* CONST of Stamps.stamp  (* an existing stamp *)
73    | GETSTAMP of strExp    | *) GETSTAMP of strExp
74    | NEW                (* generate a new stamp *)    | NEW                (* generate a new stamp *)
75    
76  and tycExp (* expression evaluating to a TYCentity *)  and tycExp (* expression evaluating to a TYCentity *)
# Line 127  Line 116 
116    | EMPTYdec    | EMPTYdec
117    
118  and entityEnv  and entityEnv
119    = MARKeenv of Stamps.stamp * entityEnv    = MARKeenv of envrec
120    | BINDeenv of entity EntPath.EvDict.map * entityEnv    | BINDeenv of entity EntPath.EvDict.map * entityEnv
121    | NILeenv    | NILeenv
122    | ERReenv    | ERReenv
123    
124  withtype strEntity = {stamp : Stamps.stamp,  and modtree =
125        TYCNODE of Types.gtrec
126      | SIGNODE of sigrec
127      | STRNODE of strrec
128      | FCTNODE of fctrec
129      | ENVNODE of envrec
130      | BRANCH of modtree list
131    
132    withtype stubinfo =
133        {owner : PersStamps.persstamp,
134         lib   : bool,
135         tree  : modtree}
136    
137    and sigrec =
138        {stamp      : Stamps.stamp,
139         name       : Symbol.symbol option,
140         closed     : bool,
141         fctflag    : bool,
142         symbols    : Symbol.symbol list,
143         elements   : (Symbol.symbol * spec) list,
144         boundeps   : (EntPath.entPath * PLambdaType.tkind) list option ref,
145         lambdaty   : (PLambdaType.lty * DebIndex.depth) option ref,
146         typsharing : sharespec list,
147         strsharing : sharespec list,
148         stub       : stubinfo option}
149    
150    and envrec =
151        {stamp : Stamps.stamp,
152         env   : entityEnv,
153         stub  : stubinfo option}
154    
155    and strEntity =
156        {stamp    : Stamps.stamp,
157                        entities : entityEnv,                        entities : entityEnv,
158                        lambdaty : (PLambdaType.lty * DebIndex.depth) option ref,                        lambdaty : (PLambdaType.lty * DebIndex.depth) option ref,
159                        rpath : InvPath.path}       rpath    : InvPath.path,
160         stub     : stubinfo option}
161    
162  and fctEntity = {stamp : Stamps.stamp,  and strrec =
163        {sign   : Signature,
164         rlzn   : strEntity,
165         access : Access.access,
166         info   : InlInfo.inl_info}
167    
168    and fctEntity =
169        {stamp    : Stamps.stamp,
170                   closure : fctClosure,                   closure : fctClosure,
171                   lambdaty : (PLambdaType.lty * DebIndex.depth) option ref,                   lambdaty : (PLambdaType.lty * DebIndex.depth) option ref,
172                   tycpath : Types.tycpath option,                   tycpath : Types.tycpath option,
173                   rpath : InvPath.path}       rpath    : InvPath.path,
174         stub     : stubinfo option}
175    
176    and fctrec =
177        {sign   : fctSig,
178         rlzn   : fctEntity,
179         access : Access.access,
180         info   : InlInfo.inl_info}
181    
182  (* the stamp and arith inside Types.tycon are critical *)  (* the stamp and arith inside Types.tycon are critical *)
183  and tycEntity = Types.tycon  and tycEntity = Types.tycon
# Line 157  Line 193 
193  val bogusFctEntity : fctEntity  val bogusFctEntity : fctEntity
194    
195  end (* signature MODULES *)  end (* signature MODULES *)
   
   

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