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

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

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

revision 197, Sun Nov 22 01:25:23 1998 UTC revision 220, Tue Mar 9 02:15:05 1999 UTC
# Line 19  Line 19 
19  (*    structure DA = Access    *)  (*    structure DA = Access    *)
20        structure LB = LtyBasic        structure LB = LtyBasic
21        structure LD = LtyDef        structure LD = LtyDef
22        structure CTRL = Control.FLINT        structure CTRL = FLINT_Control
23        open LtyKernel        open LtyKernel
24        open FLINT        open FLINT
25        open Access        open Access
# Line 220  Line 220 
220                      b                      b
221                  end                  end
222                | formed (CON(dc, ts, v, l, e), d) = formed(e, d)                | formed (CON(dc, ts, v, l, e), d) = formed(e, d)
223                | formed (TFN((l, ts, e1), e2), d) = formed(e1, d) andalso formed(e2, d)                | formed (TFN((tfk, l, ts, e1), e2), d) =
224                    formed(e1, d) andalso formed(e2, d)
225                | formed (FIX(fds, e), d) =                | formed (FIX(fds, e), d) =
226                  let                  let
227                      val b1 = formed(e, d)                      val b1 = formed(e, d)
# Line 375  Line 376 
376                                 end                                 end
377                           | _ => (e, nt, fv', hd)                           | _ => (e, nt, fv', hd)
378             end             end
379           | loope (e as TFN((v,tvs,e1),e2), env as Ienv(venv,fenvs), d, ad) =           | loope (e as TFN((tfk,v,tvs,e1),e2), env as Ienv(venv,fenvs), d, ad) =
380             (case d of             (case d of
381                 0 =>                 0 =>
382                     let                     let
# Line 389  Line 390 
390    
391                         val (e2', nt'', fv'', hd'') = loope(e2, env, d, ad)                         val (e2', nt'', fv'', hd'') = loope(e2, env, d, ad)
392                     in                     in
393                         (TFN((v,tvs,e1'),e2'), nt'', fv'@fv'', hd'@hd'')                         (TFN((tfk,v,tvs,e1'),e2'), nt'', fv'@fv'', hd'@hd'')
394                     end                     end
395               | _ =>               | _ =>
396                     let                     let
# Line 406  Line 407 
407                         val(e2', nt'', fvs', hd') = loope(e2, env, d, ad)                         val(e2', nt'', fvs', hd') = loope(e2, env, d, ad)
408                         val exp = writeLambda(freevars, e1')                         val exp = writeLambda(freevars, e1')
409                         val exp' = writeHeader(hd, exp)                         val exp' = writeHeader(hd, exp)
410                         val hd = (Tfn, v, TFN((v,tvs,exp'),RET [])) :: hd'                         val hd = (Tfn, v, TFN((tfk,v,tvs,exp'),RET [])) :: hd'
411                     in                     in
412                         (e2', nt'', fvs', hd)                         (e2', nt'', fvs', hd)
413                     end )                     end )

Legend:
Removed from v.197  
changed lines
  Added in v.220

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