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 878, Wed Jul 18 17:43:27 2001 UTC revision 879, Thu Jul 19 18:59:38 2001 UTC
# Line 6  Line 6 
6   *   *
7   * author: Matthias Blume (blume@cs.princeton.edu)   * author: Matthias Blume (blume@cs.princeton.edu)
8   *)   *)
9  functor LinkCM (structure HostMachDepVC : MACHDEP_VC) = struct  functor LinkCM (structure HostBackend : BACKEND) = struct
10    
11    datatype envrequest = AUTOLOAD | BARE    datatype envrequest = AUTOLOAD | BARE
12    
13    local    local
14        structure E = GenericVC.Environment        structure E = Environment
15        structure DE = DynamicEnv        structure DE = DynamicEnv
16        structure SE = GenericVC.StaticEnv        structure SE = StaticEnv
17        structure ER = GenericVC.EnvRef        structure ER = EnvRef
18        structure S = GenericVC.Symbol        structure S = Symbol
19        structure EM = GenericVC.ErrorMsg        structure EM = ErrorMsg
       structure BF = HostMachDepVC.Binfile  
20        structure P = OS.Path        structure P = OS.Path
21        structure F = OS.FileSys        structure F = OS.FileSys
22        structure DG = DependencyGraph        structure DG = DependencyGraph
# Line 26  Line 25 
25    
26        val os = SMLofNJ.SysInfo.getOSKind ()        val os = SMLofNJ.SysInfo.getOSKind ()
27        val my_archos =        val my_archos =
28            concat [HostMachDepVC.architecture, "-", FilenamePolicy.kind2name os]            concat [HostBackend.architecture, "-", FilenamePolicy.kind2name os]
29    
30        structure SSV =        structure SSV =
31            SpecificSymValFn (structure MachDepVC = HostMachDepVC            SpecificSymValFn (val arch = HostBackend.architecture
32                              val os = os)                              val os = os)
33    
34        val emptydyn = E.dynamicPart E.emptyEnv        val emptydyn = E.dynamicPart E.emptyEnv
# Line 39  Line 38 
38        structure StabModmap = StabModmapFn ()        structure StabModmap = StabModmapFn ()
39    
40        structure Compile =        structure Compile =
41            CompileFn (structure MachDepVC = HostMachDepVC            CompileFn (structure Backend = HostBackend
42                       structure StabModmap = StabModmap                       structure StabModmap = StabModmap
43                       val useStream = HostMachDepVC.Interact.useStream                       val useStream = HostBackend.Interact.useStream
44                       val compile_there = Servers.compile o SrcPath.encode)                       val compile_there = Servers.compile o SrcPath.encode)
45    
46        structure BFC =        structure BFC =
47            BfcFn (structure MachDepVC = HostMachDepVC)            BfcFn (val arch = HostBackend.architecture)
48    
49        structure Link =        structure Link =
50            LinkFn (structure MachDepVC = HostMachDepVC            LinkFn (val x = 1             (* ***** *)
51                    structure BFC = BFC                    structure BFC = BFC
52                    val system_values = system_values)                    val system_values = system_values)
53    
# Line 83  Line 82 
82                val { group = c_group, ... } =                val { group = c_group, ... } =
83                    Compile.newTraversal (Link.evict, store, g)                    Compile.newTraversal (Link.evict, store, g)
84                val { group = l_group, ... } =                val { group = l_group, ... } =
85                    Link.newTraversal (g, #content o get)                    Link.newTraversal (g, #contents o get)
86            in            in
87                case Servers.withServers (fn () => c_group gp) of                case Servers.withServers (fn () => c_group gp) of
88                    NONE => false                    NONE => false
# Line 118  Line 117 
117    
118        (* Instantiate the stabilization mechanism. *)        (* Instantiate the stabilization mechanism. *)
119        structure Stabilize =        structure Stabilize =
120            StabilizeFn (structure MachDepVC = HostMachDepVC            StabilizeFn (val arch = HostBackend.architecture
121                         structure StabModmap = StabModmap                         structure StabModmap = StabModmap
122                         fun recomp gp g = let                         fun recomp gp g = let
123                             val { store, get } = BFC.new ()                             val { store, get } = BFC.new ()
# Line 145  Line 144 
144            type kernelValues = { init_group : GG.group }            type kernelValues = { init_group : GG.group }
145    
146            val fnpolicy = FilenamePolicy.colocate            val fnpolicy = FilenamePolicy.colocate
147                { os = os, arch = HostMachDepVC.architecture }                { os = os, arch = HostBackend.architecture }
148    
149            val theValues = ref (NONE: kernelValues option)            val theValues = ref (NONE: kernelValues option)
150    
# Line 228  Line 227 
227                (case Parse.parse (parse_arg (al_greg, NONE, p)) of                (case Parse.parse (parse_arg (al_greg, NONE, p)) of
228                     NONE => false                     NONE => false
229                   | SOME (g, _) =>                   | SOME (g, _) =>
230                     (AutoLoad.register (GenericVC.EnvRef.topLevel, g);                     (AutoLoad.register (EnvRef.topLevel, g);
231                      true))                      true))
232                before dropPickles ()                before dropPickles ()
233            end            end
# Line 490  Line 489 
489                    fun loop m = let                    fun loop m = let
490                        fun enter (d, pids) = let                        fun enter (d, pids) = let
491                            fun enter1 (spec, pm) = let                            fun enter1 (spec, pm) = let
492                                val fromHex = GenericVC.PersStamps.fromHex                                val fromHex = PersStamps.fromHex
493                            in                            in
494                                case String.tokens (fn c => c = #":") spec of                                case String.tokens (fn c => c = #":") spec of
495                                    [pos, hexp] =>                                    [pos, hexp] =>
# Line 594  Line 593 
593                                 system_values := SrcPathMap.empty;                                 system_values := SrcPathMap.empty;
594                                 NONE)                                 NONE)
595                          | AUTOLOAD =>                          | AUTOLOAD =>
596                                (HostMachDepVC.Interact.installCompManager                                (HostBackend.Interact.installCompManager
597                                      (SOME al_manager');                                      (SOME al_manager');
598                                      standard_preload BtNames.standard_preloads;                                      standard_preload BtNames.standard_preloads;
599                                 (* unconditionally drop all library pickles *)                                 (* unconditionally drop all library pickles *)
# Line 609  Line 608 
608              val autoload = ignore o autoload              val autoload = ignore o autoload
609              val make = ignore o make              val make = ignore o make
610              fun p (f, mk, ("sml" | "sig" | "fun")) =              fun p (f, mk, ("sml" | "sig" | "fun")) =
611                  HostMachDepVC.Interact.useFile f                  HostBackend.Interact.useFile f
612                | p (f, mk, "cm") = mk f                | p (f, mk, "cm") = mk f
613                | p (f, mk, e) = Say.say ["!* unable to process `", f,                | p (f, mk, e) = Say.say ["!* unable to process `", f,
614                                          "' (unknown extension `", e, "')\n"]                                          "' (unknown extension `", e, "')\n"]

Legend:
Removed from v.878  
changed lines
  Added in v.879

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