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/FLINT/opt/split.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/opt/split.sml

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

revision 216, Fri Feb 26 12:55:26 1999 UTC revision 217, Sun Feb 28 23:41:30 1999 UTC
# Line 154  Line 154 
154              leI, fvI, leRet)              leI, fvI, leRet)
155           | _ =>           | _ =>
156             let val fvbIs = S.members(S.diff(fvbI, benv))             let val fvbIs = S.members(S.diff(fvbI, benv))
157                   val (nfk,fkE) = OU.fk_wrap(fk, NONE)
158    
159                 (* fdecE *)                 (* fdecE *)
160                 val fE = cplv f                 val fE = cplv f
161                 val fErets = (map F.VAR fvbIs)                 val fErets = (map F.VAR fvbIs)
# Line 161  Line 163 
163                 (* val tmp = mklv()                 (* val tmp = mklv()
164                 val bodyE = bodyE(F.RECORD(F.RK_STRUCT, map F.VAR fvbIs,                 val bodyE = bodyE(F.RECORD(F.RK_STRUCT, map F.VAR fvbIs,
165                                            tmp, F.RET[F.VAR tmp])) *)                                            tmp, F.RET[F.VAR tmp])) *)
166                 val fdecE = (fk, fE, args, bodyE)                 val fdecE = (fkE, fE, args, bodyE)
167                 val fElty = LT.ltc_fct(map #2 args, map getLty fErets)                 val fElty = LT.ltc_fct(map #2 args, map getLty fErets)
168                 val _ = addLty(fE, fElty)                 val _ = addLty(fE, fElty)
169    
# Line 179  Line 181 
181                 val fdecI as (_,fI,_,_) = FU.copyfdec(fkI,f,argsI,bodyI)                 val fdecI as (_,fI,_,_) = FU.copyfdec(fkI,f,argsI,bodyI)
182    
183                 (* nfdec *)                 (* nfdec *)
                val (nfk,_) = OU.fk_wrap(fk, NONE)  
184                 val nargs = map (fn (v,t) => (cplv v, t)) args                 val nargs = map (fn (v,t) => (cplv v, t)) args
185                 val argsv = map (fn (v,t) => F.VAR v) nargs                 val argsv = map (fn (v,t) => F.VAR v) nargs
186                 val nbody =                 val nbody =
# Line 273  Line 274 
274    
275             val nargs = map (fn (v,t) => (cplv v, t)) args             val nargs = map (fn (v,t) => (cplv v, t)) args
276         in         in
277             (* (fdecE, SOME fdecI) *)             (fdecE, SOME fdecI)
278             ((fk, f, nargs,             (* ((fk, f, nargs,
279               F.FIX([fdecE],               F.FIX([fdecE],
280                     F.FIX([fdecI],                     F.FIX([fdecI],
281                           F.LET([argI],                           F.LET([argI],
282                                 F.APP(F.VAR fE, map (F.VAR o #1) nargs),                                 F.APP(F.VAR fE, map (F.VAR o #1) nargs),
283                                 F.APP(F.VAR fI, [F.VAR argI]))))),                                 F.APP(F.VAR fI, [F.VAR argI]))))),
284              NONE)              NONE) *)
285         end         end
286    
287       | _ =>       | _ =>

Legend:
Removed from v.216  
changed lines
  Added in v.217

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