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

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

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

revision 402, Fri Aug 27 07:50:43 1999 UTC revision 403, Tue Aug 31 07:44:29 1999 UTC
# Line 43  Line 43 
43    
44        structure Link =        structure Link =
45            LinkFn (structure MachDepVC = HostMachDepVC            LinkFn (structure MachDepVC = HostMachDepVC
                   val getBFC = Compile.getBFC  
46                    val system_values = system_values)                    val system_values = system_values)
47    
48          structure BFC =
49              BfcFn (structure MachDepVC = HostMachDepVC)
50    
51        structure AutoLoad = AutoLoadFn        structure AutoLoad = AutoLoadFn
52            (structure C = Compile            (structure C = Compile
53             structure L = Link)             structure L = Link
54               structure BFC = BFC)
55    
56        fun recomp_runner gp g = let        fun recomp_runner gp g = let
57            val { group, ... } = Compile.newTraversal (Link.evict, g)            fun store _ = ()
58              val { group, ... } = Compile.newTraversal (Link.evict, store, g)
59        in        in
60            isSome (group gp) before Link.cleanup gp            isSome (group gp) before Link.cleanup gp
61        end        end
# Line 60  Line 64 
64         * When successful, it combines the results (thus forming a full         * When successful, it combines the results (thus forming a full
65         * environment) and adds it to the toplevel environment. *)         * environment) and adds it to the toplevel environment. *)
66        fun make_runner gp g = let        fun make_runner gp g = let
67            val { group = c_group, ... } = Compile.newTraversal (Link.evict, g)            val { store, get } = BFC.new ()
68            val { group = l_group, ... } = Link.newTraversal g            val { group = c_group, ... } =
69                  Compile.newTraversal (Link.evict, store, g)
70              val { group = l_group, ... } = Link.newTraversal (g, get)
71            val GroupGraph.GROUP { required = rq, ... } = g            val GroupGraph.GROUP { required = rq, ... } = g
72        in        in
73            case c_group gp of            case c_group gp of
# Line 94  Line 100 
100    
101        (* Instantiate the stabilization mechanism. *)        (* Instantiate the stabilization mechanism. *)
102        structure Stabilize =        structure Stabilize =
103            StabilizeFn (val recomp = recomp_runner            StabilizeFn (structure MachDepVC = HostMachDepVC
104                         val writeBFC = Compile.writeBFC                         fun recomp gp g = let
105                         val sizeBFC = Compile.sizeBFC                             val { store, get } = BFC.new ()
106                         val getII = Compile.getII                             val { group, ... } =
107                         fun destroy_state gp i = (Compile.evict i; Link.evict gp i))                                 Compile.newTraversal (Link.evict, store, g)
108                           in
109                               case group gp of
110                                   NONE => NONE
111                                 | SOME _ => SOME get
112                           end
113                           fun destroy_state gp i =
114                               (Compile.evict i; Link.evict gp i)
115                           val getII = Compile.getII)
116    
117        (* Access to the stabilization mechanism is integrated into the        (* Access to the stabilization mechanism is integrated into the
118         * parser. I'm not sure if this is the cleanest way, but it works         * parser. I'm not sure if this is the cleanest way, but it works

Legend:
Removed from v.402  
changed lines
  Added in v.403

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