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

Diff of /sml/trunk/src/cm/cm-boot.sml

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

revision 369, Sun Jul 4 12:55:20 1999 UTC revision 370, Mon Jul 5 08:59:13 1999 UTC
# Line 47  Line 47 
47            structure E = ExecFn (structure PS = FullPersstate)            structure E = ExecFn (structure PS = FullPersstate)
48        in        in
49            structure Recomp = E.Recomp            structure Recomp = E.Recomp
50            structure RT = E.RecompTraversal            structure TRT = E.RecompTraversal
51              structure FRT = CompileGenericFn (structure CT = Recomp
52                                                val thinTraversal = false)
53            structure Exec = E.Exec            structure Exec = E.Exec
54        end        end
55    
56        structure ET = CompileGenericFn (structure CT = Exec)        structure ET = CompileGenericFn (structure CT = Exec
57                                           val thinTraversal = false)
58    
59        (* The StabilizeFn functor needs a way of converting bnodes to        (* The StabilizeFn functor needs a way of converting bnodes to
60         * dependency-analysis environments.  This can be achieved quite         * dependency-analysis environments.  This can be achieved quite
61         * conveniently by a "recompile" traversal for bnodes. *)         * conveniently by a "recompile" traversal for bnodes. *)
62        fun bn2statenv gp i = #1 (#stat (valOf (RT.bnode gp i)))        fun bn2statenv gp i = #1 (#stat (valOf (TRT.bnode gp i)))
63            handle Option => raise Fail "bn2statenv"            handle Option => raise Fail "bn2statenv"
64    
65        (* exec_group is basically the same as ET.group with        (* exec_group is basically the same as ET.group with
# Line 74  Line 77 
77             ET.group gp g             ET.group gp g
78             before FullPersstate.rememberShared ())             before FullPersstate.rememberShared ())
79    
80        fun recomp_runner gp g = isSome (RT.group gp g)        fun recomp_runner gp g = isSome (FRT.group gp g)
81    
82        (* This function combines the actions of "recompile" and "exec".        (* This function combines the actions of "recompile" and "exec".
83         * When successful, it combines the results (thus forming a full         * When successful, it combines the results (thus forming a full
84         * environment) and adds it to the toplevel environment. *)         * environment) and adds it to the toplevel environment. *)
85        fun make_runner gp g =        fun make_runner gp g =
86            case RT.group gp g of            case FRT.group gp g of
87                NONE => false                NONE => false
88              | SOME { stat, sym} =>              | SOME { stat, sym} =>
89                    (case exec_group gp g of                    (case exec_group gp g of
# Line 97  Line 100 
100                         end)                         end)
101    
102        fun al_loadit gp m =        fun al_loadit gp m =
103            case RT.impexpmap gp m of            case TRT.impexpmap gp m of
104                NONE => NONE                NONE => NONE
105              | SOME { stat, sym } => let              | SOME { stat, sym } => let
106                    fun exec () =                    fun exec () =
# Line 223  Line 226 
226    
227            fun reset () =            fun reset () =
228                (FullPersstate.reset ();                (FullPersstate.reset ();
229                 RT.resetAll ();                 TRT.resetAll ();
230                   FRT.resetAll ();
231                 ET.resetAll ();                 ET.resetAll ();
232                 Recomp.reset ();                 Recomp.reset ();
233                 Exec.reset ();                 Exec.reset ();
# Line 276  Line 280 
280                  | SOME { rts, core, pervasive, primitives, ... } => let                  | SOME { rts, core, pervasive, primitives, ... } => let
281                        fun get n = let                        fun get n = let
282                            val { stat = (s, sp), sym = (sy, syp), ctxt, bfc } =                            val { stat = (s, sp), sym = (sy, syp), ctxt, bfc } =
283                                valOf (RT.sbnode ginfo n)                                valOf (TRT.sbnode ginfo n)
284                            val d = Exec.env2result (valOf (ET.sbnode ginfo n))                            val d = Exec.env2result (valOf (ET.sbnode ginfo n))
285                            val env = E.mkenv { static = s, symbolic = sy,                            val env = E.mkenv { static = s, symbolic = sy,
286                                                dynamic = d }                                                dynamic = d }

Legend:
Removed from v.369  
changed lines
  Added in v.370

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